NLTK中的pos_标记不能正确标记句子

NLTK中的pos_标记不能正确标记句子,nltk,Nltk,我使用了以下代码: # Step 1 : TOKENIZE from nltk.tokenize import * words = word_tokenize(text) # Step 2 : POS DISAMBIG from nltk.tag import * tags = pos_tag(words) 给两个句子加上标签: 约翰很好。约翰很好吗 约翰在第一句是NN,而在第二句是VB!那么,我们如何在不培训回退标签员的情况下纠正pos_标签功能呢 修改问题: 我在这里看到了NLTK标记器

我使用了以下代码:

# Step 1 : TOKENIZE
from nltk.tokenize import *
words = word_tokenize(text)

# Step 2 : POS DISAMBIG
from nltk.tag import *
tags = pos_tag(words)
给两个句子加上标签: 约翰很好。约翰很好吗

约翰在第一句是NN,而在第二句是VB!那么,我们如何在不培训回退标签员的情况下纠正pos_标签功能呢

修改问题:


我在这里看到了NLTK标记器的演示。当我尝试选择“英语标记者和Chunckers:Treebank”或“Brown标记者”时,我得到了正确的标记。那么,如何在不进行培训的情况下使用Brown Tagger呢

简短的回答:你不能。稍长一点的回答:您可以使用手动创建的UnigramTagger覆盖特定单词。有关此方法的详细信息,请参阅我的答案。

我尝试使用NLTK v3.0重现此错误。我想现在
nltk.pos\u tag()
是固定的。正如#Jacob提到的,您可以使用Brown语料库来训练标记器(python中的nltk),如下所示

from nltk.corpus import brown
train_sents = brown.tagged_sents()
unigram_tagger = nltk.UnigramTagger(train_sents)
tokens=nltk.word_tokenize("Is John very nice?")
tagged=unigram_tagger.tag(tokens)
tagged

但请注意,标记集取决于用于训练标记者的语料库。nltk.pos_tag()的默认标记器使用。

我使用来自的train_tagger.py脚本在text-processing.com上训练了所有标记器。因此,您可以自己培训贴标机,或者如果您对购买贴标机感兴趣,请通过see与我联系