资源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')
这为我解决了这个问题。
-
执行以下代码:
import nltk nltk.download()
-
之后,NLTK下载器将popup。
- select所有包。
- 下载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,但仍是一个解