找不到资源 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 时出错:我得到了解决方案:
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