NLTK词性标注器让我下载什么?

32 投票
7 回答
49083 浏览
提问于 2025-04-17 08:46

我刚开始使用一个词性标注工具,但遇到了很多问题。

我用以下代码开始进行词性标注:

import nltk
text=nltk.word_tokenize("We are going out.Just you and me.")

当我想打印 'text' 时,出现了以下情况:

print nltk.pos_tag(text)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "F:\Python26\lib\site-packages\nltk\tag\__init__.py", line 63, in pos_tag
tagger = nltk.data.load(_POS_TAGGER)
File "F:\Python26\lib\site-packages\nltk\data.py", line 594, in load
resource_val = pickle.load(_open(resource_url))
File "F:\Python26\lib\site-packages\nltk\data.py", line 673, in _open
 return find(path).open()
 File "F:\Python26\lib\site-packages\nltk\data.py", line 455, in find
   raise LookupError(resource_not_found)`  
LookupError:
 Resource 'taggers/maxent_treebank_pos_tagger/english.pickle' not
 found.  Please use the NLTK Downloader to obtain the resource:

>>> nltk.download().

 Searched in:
    - 'C:\\Documents and Settings\\Administrator/nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - 'F:\\Python26\\nltk_data'
    - 'F:\\Python26\\lib\\nltk_data'
    - 'C:\\Documents and Settings\\Administrator\\Application Data\\nltk_data'

我用了 nltk.download(),但是没有成功。

7 个回答

5

在命令行/终端中,你可以使用:

python -m nltk.downloader maxent_treebank_pos_tagger

(在Linux上可能需要加上sudo)

这条命令会安装 maxent_treebank_pos_tagger(也就是NLTK中的标准树库词性标注器),这样就能解决你的问题了。

31

当你在Python中输入 nltk.download() 时,会自动弹出一个NLTK下载器的界面。
点击“模型”,然后选择 maxent_treebank_pos_。它会自动安装上。

import nltk 
text=nltk.word_tokenize("We are going out.Just you and me.")
print nltk.pos_tag(text)
[('We', 'PRP'), ('are', 'VBP'), ('going', 'VBG'), ('out.Just', 'JJ'),
 ('you', 'PRP'), ('and', 'CC'), ('me', 'PRP'), ('.', '.')]
37

对于高于 v3.2 版本的 NLTK,请使用:

>>> import nltk
>>> nltk.__version__
'3.2.1'
>>> nltk.download('averaged_perceptron_tagger')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /home/alvas/nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-date!
True

对于使用旧的 MaxEnt 模型的 NLTK 版本,也就是 v3.1 及以下版本,请使用:

>>> import nltk
>>> nltk.download('maxent_treebank_pos_tagger')
[nltk_data] Downloading package maxent_treebank_pos_tagger to
[nltk_data]     /home/alvas/nltk_data...
[nltk_data]   Package maxent_treebank_pos_tagger is already up-to-date!
True

关于 pos_tag 默认值变化的更多细节,请查看 https://github.com/nltk/nltk/pull/1143

撰写回答