我正在开发一个应用程序,它要求我从对话流中提取关键字(最后生成这些单词的标签云)。我正在考虑以下步骤:
到此为止,nltk提供了我需要的所有工具。之后,我需要以某种方式“排名”这些词并提出最重要的词。任何人都可以建议我使用nltk可以使用哪些工具?
由于 Nihit
答案 0 :(得分:3)
我想这取决于你对“重要”的定义。 如果您正在谈论频率,那么您可以使用单词(或词干)作为键来构建字典,然后计为值。之后,您可以根据字数对字典中的键进行排序。
像(未经测试)的东西:
from collections import defaultdict
#Collect word statistics
counts = defaultdict(int)
for sent in stemmed_sentences:
for stem in sent:
counts[stem] += 1
#This block deletes all words with count <3
#They are not relevant and sorting will be way faster
pairs = [(x,y) for x,y in counts.items() if y >= 3]
#Sort (stem,count) pairs based on count
sorted_stems = sorted(pairs, key = lambda x: x[1])