Python-LDAトピックモデル

自然言語処理




Python-LDAトピックモデル

潜在ディリクレ配分(Latent Dirichlet Allocation)

ラベルなしのテキストにトピックを割り当てます。
教師なし学習になります。

Sklearn

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation

#==== LDAトピックモデル ====
#n_componentsでトピック数を指定する
lda = LatentDirichletAllocation(n_components=10,
                                random_state=2020,
                                learning_method='online')
lda = lda.fit(X)
X_topics = lda.transform(X)

#==== トピックとトップワード ====
n_top_words = 5
feature_names = X.columns
for topic_idx, topic in enumerate(lda.components_):
    print(f"Topic: {topic_idx+1}")
    print(" ".join([feature_names[i] for i in topic.argsort()[:-n_top_words - 1: -1]]))

参考

sklearn.decomposition.LatentDirichletAllocation

gensim:LDAでブログ記事のトピックを抽出・分類する

タイトルとURLをコピーしました