我正在尝试为Python 3.4安装NLTK。实际的NLTK模块似乎安装得很好。然后我跑了
import nltk
nltk.download()
并选择下载所有内容。然而,在完成后,窗口只是说'过时'。我尝试过刷新和下载,但它仍然“过时”,如下所示:NLTK Window 1
我在线查看并尝试了各种修复,但我还没有发现任何有助于我的情况。
我还试图手动找到缺失的部分,结果证明是“打开多语言Wordnet”和“Wordnet”。以下是我发现缺少哪些部分的方法:Open Multilingual Wordnet。
我该怎么办?我应该卸载并重新安装NLTK吗?我还没有找到删除软件包的方法(手动删除它除外)。
编辑:关于解决方案2和解决方案3: 有关解决方案2问题的更多说明:
如果已成功下载某些内容,则输出结果为:
>>> nltk.download('subjectivity')
[nltk_data] Downloading package subjectivity to
[nltk_data] C:\Users\Shane\AppData\Roaming\nltk_data...
[nltk_data] Package subjectivity is already up-to-date!
True
然而,对于'wordnet'和'omw',这是我重新下载时发生的事情:
>>> nltk.download('omw')
[nltk_data] Downloading package omw to
[nltk_data] C:\Users\Shane\AppData\Roaming\nltk_data...
[nltk_data] Unzipping corpora\omw.zip.
True
答案 0 :(得分:12)
简而言之:
不要使用GUI,在python解释器中添加所有包。
$ python3
>>> import nltk
>>> nltk.download('all')
长期:
可能是因为最近添加了Open Multilingual WordNet
,并且某些内容无法正常使用NLTK下载GUI界面和索引。
解决方案1:
只需使用nltk.download()
GUI并下载两个软件包而不选择全部。 (可能不行,但值得一试)
解决方案2:
通过python解释器单独安装包:
>>> import nltk
>>> nltk.download('wordnet')
>>> nltk.download('omw') # Open Multilingual WordNet
解决方案3:
让nltk.download('all')
检查其索引中的所有包,如果它们不可用,请下载它们。
>>> import nltk
>>> nltk.downlad('all')
注意:如果任何文件可能因互联网连接中断而损坏,只需找到存储NLTK数据的目录,然后继续解决方案3.
要查找存储nltk_data
的位置,nltk.data.path
会存储可能的位置:
>>> import nltk
>>> nltk.data.path
['/home/alvas/nltk_data', '/usr/share/nltk_data', '/usr/local/share/nltk_data', '/usr/lib/nltk_data', '/usr/local/lib/nltk_data']
由于数据下载的目的是使用它们,要知道您没有错过所需的组件,如果是wordnet
和omw
,那么可以试试这个:
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('bank')[0]
Synset('bank.n.01')
>>> wn.synsets('bank')[0].lemma_names('spa')
['margen', 'orilla', 'vera']
>>> wn.synsets('bank')[0].lemma_names('fre')
['rive', 'banque']
不要担心GUI上显示的内容。一旦nltk.download('all')
完成且没有错误,这意味着您拥有NLTK支持的所有语料库和模型。
但作为一种良好做法,请在https://github.com/nltk/nltk_data/issues中提出问题,以便开发人员可以检查问题是否可以复制。显示更多错误的打印屏幕。建议的解决方案之前和之后也是=)
答案 1 :(得分:1)
不要担心"过时"消息,这是浪费你的时间。继续使用nltk。
NLTK的数据资源几乎完全相互独立。您可能永远没有理由使用标记为"过时"的任何一个软件包,但即使您这样做,它们实际上可能已完全安装并可用。
但是,它也发生在我身上,这就是我发现的:看起来下载者会认为资源过时了#34;如果它检测到其下载文件夹中不在资源清单中的文件。也许这有时是由配置错误的资源引起的,但是如果您使用目录浏览器访问了相关资源,则可能是由于GUI或编辑器遗留的杂散文件或者谁知道什么导致的不匹配。例如,在Mac上,Finder会在其访问的目录中留下.DS_Store
个文件。
但正如我所说,"问题"不值得修理。享受NLTK!
PS。据我所知,刷新nltk_data
目录的最佳(也是唯一)方法是删除整个内容并重新下载。