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

Sup*_*eka 90 python unix nltk

我的代码:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
Run Code Online (Sandbox Code Playgroud)

错误信息:

[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''
Run Code Online (Sandbox Code Playgroud)

我正试图在Unix机器上运行这个程序:

根据错误消息,我从我的unix机器登录到python shell然后我使用了以下命令:

import nltk
nltk.download()
Run Code Online (Sandbox Code Playgroud)

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

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

ypr*_*rez 163

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

nltk.download('punkt')
Run Code Online (Sandbox Code Playgroud)

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


alv*_*vas 58

如果您只想下载该punkt型号:

import nltk
nltk.download('punkt')
Run Code Online (Sandbox Code Playgroud)

如果您不确定需要哪种数据/模型,可以从NLTK 安装流行的数据集,模型和标记:

import nltk
nltk.download('popular')
Run Code Online (Sandbox Code Playgroud)

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


Sup*_*eka 31

我得到了解决方案:

import nltk
nltk.download()
Run Code Online (Sandbox Code Playgroud)

一旦NLTK下载器启动

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

下载器> d

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


Fra*_*urt 25

从shell中你可以执行:

sudo python -m nltk.downloader punkt 
Run Code Online (Sandbox Code Playgroud)

如果您想安装流行的NLTK语料库/模型:

sudo python -m nltk.downloader popular
Run Code Online (Sandbox Code Playgroud)

如果要安装所有 NLTK语料库/模型:

sudo python -m nltk.downloader all
Run Code Online (Sandbox Code Playgroud)

列出您下载的资源:

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"))'
Run Code Online (Sandbox Code Playgroud)


小智 9

最近我发生了同样的事情,你只需要下载"punkt"软件包就可以了.

在"下载了所有可用的东西"之后执行"list"(l)时,是否所有内容都标记为以下行?:

[*] punkt............... Punkt Tokenizer Models
Run Code Online (Sandbox Code Playgroud)

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


Ram*_*eja 9

import nltk
nltk.download('punkt')
Run Code Online (Sandbox Code Playgroud)

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

sent_tokenize函数使用的一个实例PunktSentenceTokenizernltk.tokenize.punkt模块。该实例已经过培训,并适用于许多欧洲语言。因此,它知道标点符号和字符标记了句子的结尾和新句子的开头。


Raj*_*Raj 5

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

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

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
Run Code Online (Sandbox Code Playgroud)


小智 5

通过键入转到python控制台

$ python

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

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

这解决了我的问题.


小智 5

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

nltk.download('punkt')
Run Code Online (Sandbox Code Playgroud)


sar*_*pta 5

I was getting an error despite importing the following,

import nltk
nltk.download()
Run Code Online (Sandbox Code Playgroud)

but for google colab this solved my issue.

   !python3 -c "import nltk; nltk.download('all')"
Run Code Online (Sandbox Code Playgroud)