2017-11-15 12 views
1

genfを使って次のようにtf-idfの値を計算しています。pythonでgensimの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つの単語を取得します。私を助けてください!

答えて

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]] 

Iがテキストからの単語を取り、フォーム(word, i, j)のタプルと(私のように)それらの行を追跡し、(Jなど)カラム。私はtfidfの値に基づいて単語を並べ替えます。私は([:3]を使用して)トップ3を取って、t[0] for t in ...でタプルから単語を取り出します。

これは、任意の数の単語を順番に格納するように簡単に変更できます。

関連する問題