我刚开始使用词性标注器,我遇到了很多问题.
我用以下内容开始了POS标记:
import nltk
text=nltk.word_tokenize("We are going out.Just you and me.")
Run Code Online (Sandbox Code Playgroud)
当我想要打印时'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:
- …Run Code Online (Sandbox Code Playgroud) 我用过这段代码:
# Step 1 : TOKENIZE
from nltk.tokenize import *
words = word_tokenize(text)
# Step 2 : POS DISAMBIG
from nltk.tag import *
tags = pos_tag(words)
Run Code Online (Sandbox Code Playgroud)
标记两句话:约翰非常好.约翰非常好吗?
第一句中的约翰是NN,而第二句中是约翰!那么,如何在不训练后退标记的情况下纠正pos_tag函数呢?
修改后的问题
我在这里看到了NLTK标记器的演示http://text-processing.com/demo/tag/.当我尝试选择"English Taggers&Chunckers:Treebank"或"Brown Tagger"时,我得到了正确的标签.那么如何使用Brown Tagger而不进行培训呢?