トピックモデリングにgensimでLDAを使用しています。私のデータには23のドキュメントがあり、ドキュメントごとに個別のトピック/単語が必要ですが、gensimはドキュメントのセット全体のトピックを一緒に提供しています。個々のドキュメント用に入手するにはどうすればよいですか?
dictionary = corpora.Dictionary(doc_clean)
# Converting list of documents (corpus) into Document Term Matrix using
#dictionary prepared above.
corpus = [dictionary.doc2bow(doc) for doc in doc_clean]
# Creating the object for LDA model using gensim library
Lda = gensim.models.ldamodel.LdaModel
# Running and Trainign LDA model on the document term matrix.
ldamodel = Lda(corpus, num_topics=3, id2word = dictionary, passes=50)
result=ldamodel.print_topics(num_topics=3, num_words=3)
これは私が得ている出力です:
[(0, '0.011*"plex" + 0.010*"game" + 0.009*"racing"'),
(1, '0.008*"app" + 0.008*"live" + 0.007*"share"'),
(2, '0.015*"device" + 0.009*"file" + 0.008*"movie"')]
print_topics()
トピックのリスト、そのトピックにロードされている単語、およびそれらの単語を返します。
ドキュメントごとにトピックを読み込む場合は、代わりにを使用する必要がありますget_document_topics()
。
get_document_topics(bow, minimum_probability=None, minimum_phi_value=None, per_word_topics=False)
指定されたドキュメントのトピック分布を取得します。
パラメータ: bow (corpus : list of (int, float))
–BOW形式のドキュメント。minimum_probability (float)
–このしきい値よりも低い確率が割り当てられたトピックは破棄されます。minimum_phi_value (float)
-もしがper_word_topics
ありTrue
、これは下含まれている用語の確率にバインドさを表します。に設定するNone
と、値は1e-8
0を防ぐために使用されます。per_word_topics (bool)
–の場合True
、この関数は、「返品」セクションで説明されているように、2つの追加リストも返します。
戻り値:
list of (int, float)
–ドキュメント全体のトピック分布。リスト内の各要素は、トピックのIDとそれに割り当てられた確率のペアです。
list of (int, list of (int, float)
、オプション–単語ごとに最も可能性の高いトピック。リスト内の各要素は、単語のIDのペアと、この単語との関連性でソートされたトピックのリストです。per_word_topics
に設定されてTrue
いる場合にのみ返されます。
list of (int, list of float)
、オプション–Phi
単語とトピックの組み合わせごとに、関連性の値に長さを掛けたもの。リスト内の各要素は、単語のIDと、この単語と各トピックの間のphi値のリストのペアです。per_word_topics
に設定されてTrue
いる場合にのみ返されます。
get_term_topics()
またget_topic_terms()
、あなたにとって潜在的に興味深いかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加