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

时间:2014-10-26 07:52:51

标签: python unix nltk

我的代码:

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机器登录到python shell,然后我使用了以下命令:

import nltk
nltk.download()

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

我尽力在互联网上找到解决方案,但我得到了与我在上述步骤中提到的相同的解决方案。

18 个答案:

答案 0 :(得分:159)

要添加到alvas' answer,您只能下载punkt语料库:

nltk.download('punkt')

下载all听起来有点矫枉过正。除非那是你想要的。

答案 1 :(得分:53)

如果您只想下载punkt型号:

import nltk
nltk.download('punkt')

如果您不确定所需的数据/型号,可以从NLTK安装热门数据集,模型和标记:

import nltk
nltk.download('popular')

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

答案 2 :(得分:30)

我得到了解决方案:

import nltk
nltk.download()

一旦NLTK Downloader启动

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

下载&GT; d

下载哪个包(l = list; x =取消)?   标识符&GT; PUNKT

答案 3 :(得分:24)

从shell中你可以执行:

sudo python -m nltk.downloader punkt 

如果您想安装流行的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"))'

答案 4 :(得分:9)

最近我发生了同样的事情,你只需要下载&#34; punkt&#34;包,它应该工作。

执行&#34; list&#34; (l)在&#34;下载了所有可用的东西&#34;之后,所有内容都标记为以下行?:

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

如果你看到这一行与星号,这意味着你拥有它,并且nltk应该能够加载它。

答案 5 :(得分:7)

import nltk
nltk.download('punkt')

打开Python提示并运行上述语句。

sent_tokenize 功能使用来自 PunktSentenceTokenizer 的实例 nltk.tokenize.punkt 模块。这个实例已经过训练,效果很好 许多欧洲语言。所以它知道标点符号和字符标记的结尾 句子和新句子的开头。

答案 6 :(得分:5)

输入

进入python控制台
  

$ python

在您的终端中。然后,在python shell中键入以下两个命令以安装相应的包:

  

&GT;&GT; nltk.download( 'PUNKT')   &GT;&GT; nltk.download( 'averaged_perceptron_tagger')

这解决了我的问题。

答案 7 :(得分:3)

尽管导入了以下内容,我还是出错了,

import nltk
nltk.download()

但是对于Google colab,这解决了我的问题。

   !python3 -c "import nltk; nltk.download('all')"

答案 8 :(得分:2)

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

所以我只是递归地将所有内容从下载位置复制到NLTK希望找到它的路径之一:

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

答案 9 :(得分:2)

  1. 执行以下代码:

    import nltk
    nltk.download()
    
  2. 此后,NLTK下载程序将弹出。

  3. 选择所有包裹。
  4. 下载punkt。

答案 10 :(得分:1)

将以下行添加到您的脚本中。这将自动下载朋克数据。

import nltk
nltk.download('punkt')

答案 11 :(得分:1)

对我来说,没有任何上述工作,所以我只是手动从网站http://www.nltk.org/nltk_data/下载了所有文件,我也将它们手工放在一个文件&#34; tokenizers&#34;在&#34; nltk_data&#34;内部夹。不是一个漂亮的解决方案,但仍是一个解

答案 12 :(得分:1)

您需要重新排列文件夹 将您的tokenizers文件夹移至nltk_data文件夹。 如果您的nltk_data文件夹包含corpora文件夹包含tokenizers文件夹

,则此操作无效

答案 13 :(得分:1)

简单的nltk.download()不会解决此问题。我尝试了下面的内容,它对我有用:

在nltk文件夹中

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

这将有效。 the folder structure needs to be as shown in the picture

答案 14 :(得分:0)

我遇到了同样的问题。下载完所有内容后,仍然可以“下载”。有错误。我在我的Windows机器上搜索了C:\ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers中的包,我可以看到&#39; punkt.zip&#39;在那里。我意识到拉链还没有被提取到C:\ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk中。 一旦我解开拉链,就像音乐一样。

答案 15 :(得分:0)

添加以下代码行后,该问题将得到解决:

nltk.download('punkt')

答案 16 :(得分:0)

只需确保您使用的是Jupyter笔记本,请在笔记本中执行以下操作:

import nltk

nltk.download()

然后将出现一个弹出窗口(显示信息https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml) 从那里,您必须下载所有内容。

然后重新运行代码。

答案 17 :(得分:0)

对我来说,它可以通过使用“ nltk:”解决。

http://www.nltk.org/howto/data.html

Failed loading english.pickle with nltk.data.load

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