如何使用NLTK pos标签获得更好的结果

Syn*_*ter 7 python nltk pos-tagger

我只是在学习使用Python的nltk.我试着在各种句子上做pos_tag.但获得的结果并不准确.我如何即兴表达结果?

broke = NN
flimsy = NN
crap = NN
Run Code Online (Sandbox Code Playgroud)

此外,我还有很多额外的词被归类为NN.如何过滤这些以获得更好的结果.

Max*_* Li 10

给出上下文,您获得了这些结果.就像例子一样,我在上下文短语"他们打破了攀爬废话"中使用pos_tag获得了其他结果:

import nltk
text=nltk.word_tokenize("They broke flimsy crap")
nltk.pos_tag(text)
Run Code Online (Sandbox Code Playgroud)

[('他们','PRP'),('破碎','VBP'),('脆弱','JJ'),('废话','NN')]

无论如何,如果您认为在您看来很多词被错误地组织为'NN',您可以特别应用其他技术来标记为'NN'.例如,您可以使用一些适当的标记语料库并使用trigram标记器对其进行分类.(实际上,作者在http://nltk.googlecode.com/svn/trunk/doc/book/ch05.html上用bigrams做同样的事情).

像这样的东西:

pos_tag_results=nltk.pos_tag(your_text) #tagged sentences with pos_tag
trigram_tagger=nltk.TrigramTagger(tagged_corpora) #build trigram tagger based on your tagged_corpora
trigram_tag_results=trigram_tagger(your_text) #tagged sentences with trigram tagger
for i in range(0,len(pos_tag_results)):
    if pos_tag_results[i][1]=='NN':
        pos_tag_results[i][1]=trigram_tag_results[i][1]#for 'NN' take trigram_tagger instead
Run Code Online (Sandbox Code Playgroud)

如果它能改善您的结果,请告诉我.