如何从 NLTK 标记化的结果中获取前三个词
How to get top three words from the results tokenized in NLTK
我正在尝试获取在 NLTK 中标记化的结果中的前三个单词。这是按单词的使用频率排序的。
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
raw = open('sample.txt').read()
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
tokens_l = [w.lower() for w in tokens]
pos = nltk.pos_tag(tokens_l)
only_nn = [x for (x,y) in pos if y in ('NN')]
freq = nltk.FreqDist(only_nn)
print(freq.items())
结果:
dict_items([('everyone', 1), ('work', 15), ('ability', 7), ('determination', 3), ('ingredient', 2), ('understood', 1)])
我想要 work
、ability
和 determination
。如何从结果中得到这三个词?
只需调用 freq.most_common(3)
,并收集元组中的第一项。
for word, frequency in freq.items().__reversed__():
print("Word:", word, "Frequency:", frequency)
这是一个字典,所以它由键值对组成。循环只是遍历它。
'reversed'部分按降序排列。
我正在尝试获取在 NLTK 中标记化的结果中的前三个单词。这是按单词的使用频率排序的。
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
raw = open('sample.txt').read()
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
tokens_l = [w.lower() for w in tokens]
pos = nltk.pos_tag(tokens_l)
only_nn = [x for (x,y) in pos if y in ('NN')]
freq = nltk.FreqDist(only_nn)
print(freq.items())
结果:
dict_items([('everyone', 1), ('work', 15), ('ability', 7), ('determination', 3), ('ingredient', 2), ('understood', 1)])
我想要 work
、ability
和 determination
。如何从结果中得到这三个词?
只需调用 freq.most_common(3)
,并收集元组中的第一项。
for word, frequency in freq.items().__reversed__():
print("Word:", word, "Frequency:", frequency)
这是一个字典,所以它由键值对组成。循环只是遍历它。
'reversed'部分按降序排列。