NLTK 数据已过时 - Python 3.4

NLTK data out of date - Python 3.4

我正在尝试为 Python 3.4 安装 NLTK。实际的 NLTK 模块似乎安装正常。然后我运行

import nltk

nltk.download()

并选择下载所有内容。然而,完成后,window 只是显示 'out of date'。我尝试刷新和下载,但它仍然是 'out of date',如下所示:NLTK Window 1

我在网上查看并尝试了各种修复方法,但还没有找到任何对我的情况有帮助的方法。

我也试过手动找缺失的部分,结果是'Open Multilingual 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

简而言之:

不要使用 GUI,在 python 解释器中添加所有包。

$ python3
>>> import nltk
>>> nltk.download('all')

长:

这可能是因为最近添加了 Open Multilingual WordNet 并且 NLTK 下载 GUI 界面和索引无法正常工作。

方案一:

只需使用nltk.download() GUI 并下载这两个包,无需全选。 (可能行不通但值得一试)

方案二:

通过 python 解释器单独安装包:

>>> import nltk
>>> nltk.download('wordnet')
>>> nltk.download('omw') # Open Multilingual WordNet

方案三:

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']

由于数据下载的目的是使用它们,要知道您没有缺少所需的组件,如果是 wordnetomw,您可以试试这个:

>>> 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 中提出问题,以便开发人员可以检查问题是否可以重现。显示更多错误的打印屏幕。在建议的解决方案之前和之后 =)

不要担心 "out of date" 消息,那是在浪费您的时间。继续使用 nltk。

NLTK的数据资源几乎完全相互独立。您可能永远没有理由使用任何标记为 "out of date" 的软件包,但即使您这样做,它们实际上也可能已完全安装并可用。

不过,这也发生在我身上,这就是我发现的:如果下载器检测到其下载文件夹中的文件不在资源清单中,它似乎会将资源视为 "out of date" .也许这有时是由错误配置的资源引起的,但如果您使用目录浏览器访问了有问题的资源,则可能是由于 GUI、编辑器或谁知道是什么留下的杂散文件导致了不匹配。例如,在 Mac 上,Finder 将在其访问的目录中留下一个 .DS_Store 文件。

但正如我所说,"problem" 真的不值得修复。享受 NLTK!

PS。据我所知,刷新 nltk_data 目录的最佳(也是唯一)方法是删除整个目录并重新下载。