有没有办法可以将新位置添加到 nltk 查找 wordnet 语料库的位置列表中?

有没有办法可以将新位置添加到 nltk 查找 wordnet 语料库的位置列表中?

我无法使用 nltk wordnet 词形还原器,因为由于访问权限问题,我无法在我的大学计算机上下载 wordnet 语料库。

当我尝试这样做时出现以下错误:

**********************************************************************   
Resource 'corpora/wordnet' not found. Please use the NLTK Downloader
to obtain the resource: >>> nltk.download() Searched in:
    - '/home/XX/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
**********************************************************************

当我在家里遇到同样的问题时,我可以通过两种方法解决:

  1. 使用nltk.download()标准方式和
  2. 在位置创建一个新文件夹/home/XX/nltk_data ,并将语料库目录粘贴到其中。

现在在大学里我只能访问/home/XX/bin但不能/home/XX直接访问。那么我是否可以将 wordnet 语料库粘贴进去/home/XX/bin,然后以某种方式让 nltk 在该文件夹中查找语料库?

答案1

import nltk;

现在,nltk.data.path是搜索模块的位置列表。您可以执行以下操作:

nltk.data.path.append("your location/directory");

答案2

看来您需要设置环境变量“NLTK_DATA”来告诉 NLTK 在哪里查找。http://nltk.org/data.html

答案3

我通过编辑 pyinstaller nltk-hook 解决了问题。经过大量研究,我决定在代码结构中单独行动。我通过注释以下行解决了我的问题:

datas=[]

'''for p in nltk.data.path: datas.append((p, "nltk_data"))'''

hiddenimports = ["nltk.chunk.named_entity"]

另外,您需要将文件: pyi_rth__nltk.cpython-36.pyc 重命名为 pyi_rth_nltk.cpython-36.pyc 。此文件多了一个下划线。python 版本警告。

相关内容