NLTK数据过期-Python3.4

2024-05-23 17:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为Python 3.4安装NLTK。实际的NLTK模块似乎安装得很好。然后我跑了

import nltk

nltk.download()

选择下载所有内容。但是,完成后,窗口只会显示“过时”。我尝试了刷新和下载,但它仍然“过时”,如下所示: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

Tags: to方法packagedatadownload手动open解决方案
2条回答

简而言之:

不要使用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')

注意:如果任何文件可能由于中断的internet连接而损坏,只需找到存储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']

不要太担心图形用户界面上显示的内容。一旦nltk.download('all')没有错误地完成,就意味着您拥有NLTK支持的所有语料库和模型。

但是作为一个好的实践,请在https://github.com/nltk/nltk_data/issues中提出一个问题,以便开发人员可以检查该问题是否可以复制。显示错误的更多打印屏幕。在提出解决方案之前和之后

别担心“过时”的信息,这是浪费你的时间。继续使用nltk。

NLTK的数据资源几乎完全相互独立。您可能永远没有理由使用标记为“过期”的任何一个软件包,但即使使用了,它们也很可能已完全安装并可用。

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

但正如我所说,“问题”并不真正值得解决。享受NLTK!

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

相关问题 更多 >