3

我在 chaquopy Android 应用程序的 Python 代码的主要方法中导入了 nltk 库。它要求我实施nltk.download('punkt')我的处理。所以我想知道:代码在哪个目录中查找包,以便我可以在所需文件夹中下载它们的副本,以便我的代码正常工作?

编辑:我实现了@mhsmith 提供的解决方案,但 nltk.download('punkt') 仍然给出查找错误。附上截图:

第一行是 nltk.download('punkt') 正在下载数据的 download_dir

第一行是 nltk.download('punkt') 正在下载数据的 download_dir

这是我在@mhsmith 实施解决方案后遇到的错误

这是我在@mhsmith 实施解决方案后遇到的错误

这是我的代码片段

这是我的代码片段

4

1 回答 1

1

Chaquopy 4.0.0 和更新版本

这些版本将HOME环境变量设置为您的应用程序的文件目录,nltk 将自动在nltk_data那里创建一个子目录。所以不需要特别行动。


Chaquopy 3.3.2 及更早版本

我认为最干净的解决方案是为您的下载创建一个单独的目录,如下所示:

from com.chaquo.python import Python
download_dir = "{}/nltk".format(Python.getPlatform().getApplication().getFilesDir())
if not os.path.exists(download_dir):
    os.mkdir(download_dir)
nltk.download(..., download_dir=download_dir)

(该getPlatform方法需要 Chaquopy 3.2.0 或更高版本。)

NLTK 文档看来,您必须将NLTK_DATA 环境变量设置为此目录。这可能应该在您之前import nltk完成。

于 2018-06-18T10:37:56.033 回答