如何在python

时间:2017-11-15 13:02:30

标签: python nlp gensim tf-idf

我使用genism计算我的tf-idf值如下。

texts = [['human', 'interface', 'computer'],
 ['survey', 'user', 'computer', 'system', 'response', 'time'],
 ['eps', 'user', 'interface', 'system'],
 ['system', 'human', 'system', 'eps'],
 ['user', 'response', 'time'],
 ['trees'],
 ['graph', 'trees'],
 ['graph', 'minors', 'trees'],
 ['graph', 'minors', 'survey']]

dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
tfidf = models.TfidfModel(corpus)

现在,我想获得具有最高tf-idf值的3个单词。请帮帮我!

1 个答案:

答案 0 :(得分:0)

经过一些搜索,看起来你可能想要这个 - 它不是最具可读性但可能有效。

top_3 = [t[0] for t in
         sorted([(word, i, j) for j, text in enumerate(texts) for i, word in enumerate(text)],
                key=lambda t: tfidf[t[2]][t[1]])[:3]]

我从文本中获取单词,并使用(word, i, j)形式的元组跟踪其行(作为i)和列(作为j)。然后我根据tfidf中的值对单词进行排序。然后我进入前三名(使用[:3]),并使用t[0] for t in ...从单元格中取出单词。

可以很容易地修改它以按顺序存储任意数量的单词。