资源u'tokenizers / punkt / english.pickle'找不到

我的代码:

import nltk.data tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle') 

错误信息:

 [ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py Traceback (most recent call last): File "mapper_local_v1.0.py", line 16, in <module> tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle') File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load opened_resource = _open(resource_url) File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open return find(path_, path + ['']).open() File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find raise LookupError(resource_not_found) LookupError: Resource u'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: >>>nltk.download() Searched in: - '/home/ec2-user/nltk_data' - '/usr/share/nltk_data' - '/usr/local/share/nltk_data' - '/usr/lib/nltk_data' - '/usr/local/lib/nltk_data' - u'' 

我试图在Unix机器上运行这个程序:

根据错误消息,我从我的Unix机器login到python shell,然后我使用下面的命令:

 import nltk nltk.download() 

然后我使用d-down loader和l-list选项下载了所有可用的东西,但问题仍然存在。

我尽最大努力在互联网上find解决scheme,但我得到了同样的解决scheme,就像我在上述步骤中所提到的那样。

要添加到alvas的答案 ,你只能下载punkt语料库:

 nltk.download('punkt') 

下载all声音,像矫枉过正给我。 除非这是你想要的。

如果您只想下载punkt模型:

 import nltk nltk.download('punkt') 

如果您不确定需要哪种数据/模型,则可以从NLTK安装stream行的数据集,模型和标记器:

 import nltk nltk.download('popular') 

使用上述命令,不需要使用GUI下载数据集。

我得到的解决scheme:

 import nltk nltk.download() 

一旦NLTK下载程序启动

d)下载l)列表u)更新c)configurationh)帮助q)退出

Downloader> d

下载哪个软件包(l = list; x = cancel)? 标识符> punkt

从shell可以执行:

 sudo python -m nltk.downloader punkt 

如果你想安装stream行的NLTK语料库/模型:

 sudo python -m nltk.downloader popular 

如果你想安装所有的 NLTK语料库/模型:

 sudo python -m nltk.downloader all 

要列出您已经下载的资源:

 python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))' python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))' 

最近同样的事情发生在我身上,你只需要下载“punkt”包,它应该工作。

在“下载所有可用的东西”之后执行“列表”(l)时,是否标记如下所示?

 [*] punkt............... Punkt Tokenizer Models 

如果你看到明星的这条线,就意味着你有它,并且nltk应该能够加载它。

通过键入转到python控制台

$ python

在你的terminal。 然后,在python shell中input以下两个命令来安装相应的包:

>> nltk.download('punkt')>> nltk.download('averaged_perceptron_tagger')

这为我解决了这个问题。

  1. 执行以下代码:

     import nltk nltk.download() 
  2. 之后,NLTK下载器将popup。

  3. select所有包。
  4. 下载punkt。

我的问题是,我以root用户的身份调用了nltk.download('all') ,但最终使用nltk的进程是另一个用户,他们无法访问下载内容的/ root / nltk_data。

所以我简单地recursion复制了从下载位置到NLTK正在寻找的path之一:

 cp -R /root/nltk_data/ /home/ubuntu/nltk_data 

简单的nltk.download()不会解决这个问题。 我试了下面,它为我工作:

在nltk文件夹中创build一个tokenizers文件夹,并将你的punkt文件夹复制到tokenizers文件夹中。

这将工作。 文件夹结构需要如图所示

您需要重新排列文件夹将tokenizers文件夹移动到nltk_data文件夹中。 如果您的nltk_data文件夹包含包含tokenizers nltk_data文件夹的corpora文件夹,这不起作用

对于我来说,上面没有任何工作,所以我只是从网站http://www.nltk.org/nltk_data/手动下载所有的文件,我也把它们放在一个文件“tokenizers”内的“nltk_data “文件夹。 不是一个漂亮的解决scheme,但仍是一个解