8
我正在通過LDA(潛在Dirichlet分配)主題建模方法來幫助從一組文檔中提取主題。從我從下面的鏈接中瞭解到的情況來看,這是一種無監督的學習方法,將每個文檔與提取的主題進行分類/標記。主題建模 - 將具有前2個主題的文檔分配爲類別標籤 - sklearn潛在Dirichlet分配
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,從中我們可以得到文檔 - 主題關聯?
例如,我需要找到與每個doc關聯的前2個主題作爲Doc的文檔標籤/類別。是否有任何組件可以查找文檔中的主題分佈,類似於在主題內查找單詞分佈的model.components_
。
由於輸入數據!像魅力一樣工作 – prashanth
我對這個解決方案有點困惑。我希望能得到一個顯示與每個文檔關聯的主題的輸出。像這樣的文檔#1:主題:[1,2,3] – moku
你得到的是每個文檔的主題分佈。所以每一行對應一個文檔,每一列對應一個主題。爲了得到你想要的結果,你可以做的就是查看每一行並獲得三個最大值的列索引。這會給你每個文件三個最重要的話題。 – clemgaut