Resource u'tokenizers/punkt/english.pickle' not found

我的准则:

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 加载器和 l-list 选项下载了所有可用的内容,但问题仍然存在。

我尽最大努力在网上找到解决方案,但我得到了相同的解决方案,我做了我在上述步骤中提到。

145847 次浏览

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

当你在“下载了所有可用的东西”之后执行“ list”(l)时,是否所有东西都标记如下行:

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

如果您看到带有星号的这条线,这意味着您已经拥有了它,nltk 应该能够加载它。

I got the solution:

import nltk
nltk.download()

一旦 NLTK 下载程序启动

d) Download l) List u) Update c) Config h) Help q) Quit

下载 > d

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

如果你只想下载 punkt型号:

import nltk
nltk.download('punkt')

如果您不确定需要哪些数据/模型,可以从 NLTK 安装 受欢迎数据集、模型和标记器:

import nltk
nltk.download('popular')

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

要添加到 Alvas 的回答,您只能下载 punkt语料库:

nltk.download('punkt')

下载 all对我来说太过分了,除非你想这样。

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

因此,我只是递归地将所有内容从下载位置复制到 NLTK 寻找它的路径之一,如下所示:

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

简单的 nltk.download ()不能解决这个问题:

在 nltk 文件夹中创建一个 tokenizer 文件夹,并将 punk 文件夹复制到 tokenizer 文件夹中。

会成功的! 文件夹结构需要如图所示

你需要重新整理你的文件夹 将 tokenizers文件夹移动到 nltk_data文件夹。 This doesn't work if you have nltk_data folder containing corpora folder containing tokenizers folder

从 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"))'

键入以下命令转到 python 控制台

$巨蟒

然后,在 python shell 中键入以下两个命令来安装相应的软件包:

> > nltk.download (’Punkt’) > > nltk.download (‘ average _ pertron _ tagger’)

这对我来说解决了问题。

对于我来说,上面的方法都不管用,所以我只是从网站 http://www.nltk.org/nltk_data/手动下载了所有的文件,并且我把它们也手动放到了“ nltk _ data”文件夹中的一个文件“ tokenizer”中。虽然不是个好办法,但还是个办法。

  1. 执行以下代码:

    import nltk
    nltk.download()
    
  2. After this, NLTK downloader will pop out.

  3. Select All packages.
  4. Download punkt.
import nltk
nltk.download('punkt')

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

The < em > sent _ tokenize function uses an instance of [ em > PunktSentenceTokenizer ] from the Punkt 模块 所以它知道什么标点和字符标志着一个欧洲语言的结束 和一个新句子的开头。

我也面临同样的问题。在下载了所有东西之后,仍然存在“朋克”错误。我在 Windows 机器上搜索了 C: Users vaibhav AppData Roaming nltk _ data tokenizer 的软件包,在那里我可以看到‘ Punkt.zip’。我意识到,不知何故,压缩文件没有被提取到 C: 用户 vaibhav AppData 漫游 nltk _ data 标记朋克。 一旦我拉上拉链,它就像音乐一样奏效了。

在添加这一行代码之后,问题将得到解决:

nltk.download('punkt')

只要确保你正在使用 Jupyter笔记本电脑,在笔记本电脑上,做以下事情:

import nltk


nltk.download()

然后会出现一个弹出窗口(显示信息 https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml) 从那里你必须下载一切。

然后重新运行代码。

尽管导入了以下内容,但我还是得到了一个错误,

import nltk
nltk.download()

但对于谷歌实验室,这解决了我的问题。

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

我用“ nltk:”解决了这个问题

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

加载带有 nltk.data.load 的 english.pickle 失败

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

在脚本中添加以下代码行。这将自动下载 punk 数据。

import nltk
nltk.download('punkt')