我无法使用 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'
**********************************************************************
当我在家里遇到同样的问题时,我可以通过两种方法解决:
- 使用
nltk.download()
标准方式和 - 在位置创建一个新文件夹
/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 版本警告。