私はLDA(Latent Dirichlet Allocation)のトピックモデリングメソッドを使用して、一連のドキュメントからトピックを抽出します。私が下のリンクから理解していることから、これは抽出されたトピックで各文書を分類/ラベル付けするための教師なし学習アプローチです。そのリンクに与えられたサンプルコードでトピックモデリング - カテゴリ2のトピックを含むドキュメントをカテゴリラベルとして割り当てる - sklearn潜在ディリクレ割り当て
Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation
、識別されたトピックのそれぞれに関連付けられたトップの単語を取得するために定義された関数があります。
sklearn.__version__
アウト[41]: '0.17'
from sklearn.decomposition import LatentDirichletAllocation
def print_top_words(model, feature_names, n_top_words):
for topic_idx, topic in enumerate(model.components_):
print("TopiC#%d:" % topic_idx)
print(" ".join([feature_names[i]
for i in topic.argsort()[:-n_top_words - 1:-1]]))
print()
print("\nTopics in LDA model:")
tf_feature_names = tf_vectorizer.get_feature_names()
print_top_words(lda, tf_feature_names, n_top_words)
私の質問はこれです。 ビルドモデルLDAのコンポーネントまたはマトリックスドキュメントトピックの関連を入手できますか?
たとえば、各文書に関連付けられている上位2トピックが、文書の文書ラベル/カテゴリとしてであることが必要です。トピック内の単語の分布を見つけるためのmodel.components_
と同様に、文書内にトピックの分布を見つけるためのコンポーネントはありますか?
感謝を変換したいです!魅力のように働いた – prashanth
私はこの解決策で少し混乱しています。私は各文書に関連するトピックを示す出力を得ることを望んでいました。ドキュメント1:トピック:[1、2、3] – moku
あなたが得るのは、各ドキュメントのトピックの配布です。したがって、各行はドキュメントに対応し、各列はトピックに対応します。あなたが望む結果を得るには、それぞれの行を見て、3つの最大値の列インデックスを取得します。これは、ドキュメントごとに3つの最も重要なトピックを提供します。 – clemgaut