【发布时间】:2014-01-08 10:35:31
【问题描述】:
我正在为基线标记器编写代码。基于布朗语料库,它为单词分配最常见的标签。因此,如果单词“works”被标记为动词 23 次,并且被标记为复数名词 30 次,那么基于用户输入句子中的内容,它将被标记为复数名词。如果在语料库中找不到该词,则默认将其标记为名词。 到目前为止,我的代码会返回单词的每个标签,而不仅仅是最常见的标签。我怎样才能实现它只返回每个单词的频繁标签?
import nltk
from nltk.corpus import brown
def findtags(userinput, tagged_text):
uinput = userinput.split()
fdist = nltk.FreqDist(tagged_text)
result = []
for item in fdist.items():
for u in uinput:
if u==item[0][0]:
t = (u,item[0][1])
result.append(t)
continue
t = (u, "NN")
result.append(t)
return result
def main():
tags = findtags("the quick brown fox", brown.tagged_words())
print tags
if __name__ == '__main__':
main()
【问题讨论】:
-
哇哈哈,如果我回答了你所有的 nltk 问题,我很快就会开始要求付款。哈哈,开个玩笑,给我一分钟打字。
-
抱歉去吃午饭了,下面是你需要的
most_frequent_pos_tagger()。