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

标签 python nltk pos-tagger

我正在使用 Python 学习 nltk。我尝试在各种句子上做 pos_tag。但得到的结果并不准确。我如何即兴创作结果?

broke = NN
flimsy = NN
crap = NN

我也得到了很多额外的词被归类为 NN。我怎样才能过滤掉这些以获得更好的结果。?

最佳答案

给出上下文,你就得到了这些结果。举个例子,我在上下文短语“They broke climsy crap”上使用 pos_tag 获得了其他结果:

import nltk
text=nltk.word_tokenize("They broke flimsy crap")
nltk.pos_tag(text)

[('They', 'PRP'), ('broke', 'VBP'), ('flimsy', 'JJ'), ('crap', 'NN')]

无论如何,如果你发现在你看来有很多词被错误地归类为“NN”,你可以对那些标记为“NN”的词应用一些其他技术。 例如,您可以采用一些适当的标记语料库并使用三元组标记器对其进行分类。 (实际上与作者在 http://nltk.googlecode.com/svn/trunk/doc/book/ch05.html 上使用双字母组的方式相同)。

像这样:

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

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

关于python - 如何使用 NLTK pos 标签获得更好的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146748/

相关文章:

python - 为 beutifulsoup4 python 添加延迟

Python - NLTK 中的三元组概率分布平滑技术 (Kneser Ney) 返回零

java - 在Java中使用POSTagger将不同的POS(词性)保存在不同的文件中?

nlp - 词性标注后对单词进行词形还原会产生意想不到的结果

python - 如何将 tweepy 流 json 转储到文本文件中?

python - 带有 Flask 'mongoengine.errors.NotRegistered' 问题的 mongoengine

python - 我如何在 nltk 中使用正则表达式标记器?

python - 用于 POS 标记和 Lemmatizer 的多语言 NLTK

python - 为什么NLTK中的pos_tag将 "please"标记为NN?

python - python3中的段错误(C)