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

Posted

技术标签:

【中文标题】找不到资源 u\'tokenizers/punkt/english.pickle\'【英文标题】:Resource u'tokenizers/punkt/english.pickle' not found找不到资源 u'tokenizers/punkt/english.pickle' 【发布时间】:2014-12-21 15:37:02 【问题描述】:

我的代码:

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 选项下载了所有可用的东西,但问题仍然存在。

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

【问题讨论】:

Failed loading english.pickle with nltk.data.load的可能重复 【参考方案1】:

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

import nltk
nltk.download('punkt')

【讨论】:

【参考方案2】:

对我来说,它通过使用“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')

【讨论】:

【参考方案3】:

尽管导入了以下内容,但我收到了错误,

import nltk
nltk.download()

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

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

【讨论】:

【参考方案4】:

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

import nltk

nltk.download()

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

然后重新运行您的代码。

【讨论】:

【参考方案5】:

添加这行代码后,问题就解决了:

nltk.download('punkt')

【讨论】:

【参考方案6】:

我遇到了同样的问题。下载所有内容后,仍然存在“punkt”错误。我在我的 Windows 机器上的 C:\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers 上搜索了包,我可以在那里看到“punkt.zip”。我意识到不知何故 zip 没有被提取到 C:\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers\punk。 一旦我提取了 zip,它就像音乐一样工作。

【讨论】:

【参考方案7】:
import nltk
nltk.download('punkt')

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

sent_tokenize 函数使用 PunktSentenceTokenizer 的实例 nltk.tokenize.punkt 模块。此实例已经过训练并且适用于 许多欧洲语言。所以它知道什么标点符号和字符标志着一个结束 句子和新句子的开头。

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

如果您只想下载punkt 模型:

import nltk
nltk.download('punkt')

如果您不确定自己需要哪个数据/模型,您可以安装来自 NLTK 的流行数据集、模型和标记器:

import nltk
nltk.download('popular')

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

【讨论】:

【参考方案10】:

    执行以下代码:

    import nltk
    nltk.download()
    

    之后会弹出NLTK下载器。

    选择所有包。 下载 punkt。

【讨论】:

【参考方案11】:

对我来说,上述方法都不起作用,所以我只是从网站http://www.nltk.org/nltk_data/ 手动下载了所有文件,然后我也手动将它们放入“nltk_data”文件夹内的“tokenizers”文件中。不是一个很好的解决方案,但仍然是一个解决方案。

【讨论】:

【参考方案12】:

键入

转到 python 控制台

$蟒蛇

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

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

这解决了我的问题。

【讨论】:

【参考方案13】:

您需要重新排列文件夹 将您的 tokenizers 文件夹移动到 nltk_data 文件夹中。 如果您的 nltk_data 文件夹包含 corpora 文件夹,则此文件夹包含 tokenizers 文件夹

【讨论】:

【参考方案14】:

简单的 nltk.download() 不会解决这个问题。我尝试了以下方法,它对我有用:

在 nltk 文件夹中创建一个 tokenizers 文件夹并将您的 punkt 文件夹复制到 tokenizers 文件夹中。

这行得通。! the folder structure needs to be as shown in the picture

【讨论】:

【参考方案15】:

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

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

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

【讨论】:

【参考方案16】:

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

nltk.download('punkt')

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

【讨论】:

感谢 nltk 语料库名称。 我必须升级到最新的 nltk 版本 3.2.5 才能使 nltk.download('punkt') 工作。 这是我运行上面的代码后得到的:[nltk_data] 加载 punkt 时出错: 关于我之前的问题,我所要做的就是关闭我的***。【参考方案17】:

我得到了解决方案:

import nltk
nltk.download()

NLTK 下载器启动后

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

下载器>d

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

【讨论】:

【参考方案18】:

我最近也发生了同样的事情,你只需要下载“punkt”包就可以了。

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

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

如果你看到这条带星号的行,就表示你拥有它,nltk 应该可以加载它。

【讨论】:

嘿@supreeth-meka,我很高兴你找到了解决方案,这是我建议你的,你能把我的答案标记为“接受”吗?

以上是关于找不到资源 u'tokenizers/punkt/english.pickle'的主要内容,如果未能解决你的问题,请参考以下文章

IDEA启动失败,好像是找不到一些资源,可以怎么解决?之前不小心在程序与应用那删过C++

笔记本找不到资源路径怎么整

点击IE游览器显示找不到映像文件中指定的资源语言标识McShield

设置 switchStyle - 找不到错误资源 - 为啥?

找不到具有名称/键 X 的资源

VS2012:“找不到资源编译器 DLL。请确保路径正确。”