use*_*743 3 nlp list nltk pos-tagger python-2.7
我正在尝试从列表中获取最常见的 POS 标签(前五个)。
pos_list = nltk.pos_tag(list)
#pos_list = [('caught', 'NN'), ('black', 'NN'), ('a', 'DT'), ('striped', 'JJ'), ('eel', 'NN')]
tag_fd = nltk.FreqDist(tag for (word, tag) in pos_list)
Run Code Online (Sandbox Code Playgroud)
我也尝试过pos_list以这种方式循环计算标签,但似乎必须有一种方法可以使用NLTK. 我还尝试从列表中创建一个字符串并尝试相同的方法,但这也不起作用。
str_of_list = " ".join(list)
tag_fd = nltk.FreqDist(tag for (word, tag) in str_of_list)
Run Code Online (Sandbox Code Playgroud)
谢谢任何帮助!
我不确定是否有办法从 NLTK 内部做到这一点,但collections.Counter肯定有办法:
import collections
pos_list = nltk.pos_tag(list)
pos_counts = collections.Counter((subl[1] for subl in pos_list))
print "the five most common tags are", pos_counts.most_common(5)
Run Code Online (Sandbox Code Playgroud)