使用nltk库提取关键字

时间:2011-06-08 10:27:24

标签: python tags cloud nltk

我正在开发一个应用程序,它要求我从对话流中提取关键字(最后生成这些单词的标签云)。我正在考虑以下步骤:

  1. 对每个原始对话进行标记(输出存储为字符串列表列表)
  2. 删除停用词
  3. 使用stemmer(Porter词干算法)
  4. 到此为止,nltk提供了我需要的所有工具。之后,我需要以某种方式“排名”这些词并提出最重要的词。任何人都可以建议我使用nltk可以使用哪些工具?

    由于 Nihit

1 个答案:

答案 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])