2017-01-20 11 views
1

Gensimを使用してLDAメソッドを適用し、ドキュメントからキーワードを抽出しています。 トピックを抽出し、これらのトピックとトピックに関連するキーワードを割り当てることができます。Python、LDA:Gensimでキーワードの代わりにキーワードのIDを取得する方法は?

私は、用語そのものではなく、これらの用語(またはキーワード)のIDを取得したいと考えています。私はcorpus[i]が文書iのカップルのリスト((term_id、term_frequency)...]を抽出することを知っていますが、私はコード内でこれを使ってIDだけを抽出し、結果に割り当てることはできません。次のように

私のコードは次のとおりです。

ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics=num_topics, id2word = dictionary, passes=passes, minimum_probability=0) 

# Assinging the topics to the document in corpus 
lda_corpus = ldamodel[corpus] 

# Find the threshold, let's set the threshold to be 1/#clusters, 
# To prove that the threshold is sane, we average the sum of all probabilities: 
scores = list(chain(*[[score for topic_id,score in topic] \ 
        for topic in [doc for doc in lda_corpus]])) 

threshold = sum(scores)/len(scores) 
print(threshold) 

for t in range(len(topic_tuple)): 

    key_words.append([topic_tuple[t][j][0] for j in range(num_words)]) 
    df_key_words = pd.DataFrame({'key_words' : key_words}) 

    documents_corpus.append([j for i,j in zip(lda_corpus,doc_set) if i[t][1] > threshold]) 
    df_documents_corpus = pd.DataFrame({'documents_corpus' : documents_corpus}) 

    documents_corpus_id.append([i for d,i in zip(lda_corpus, doc_set_id) if d[t][1] > threshold]) 
    df_documents_corpus_id = pd.DataFrame({'documents_corpus_id' : documents_corpus_id}) 


result.append(pd.concat([df_key_words, df_documents_corpus, df_documents_corpus_id ], axis=1)) 

は、事前にありがとうとより多くの情報が必要な場合は私に尋ねます。

答えて

0

誰かが私が持っていた同じ問題を持っている場合は、ここでは逆のマップの答えは次のとおりです。bigdeeperadvisors

reverse_map = dict((ldamodel.id2word[id],id) for id in ldamodel.id2word) 

感謝

関連する問題