我已经对文本语料库进行了硬聚类(使用tf-idf权重,并获得了〜= 200个聚类。如果我想获得每个群集的主题,我该怎么做?
我曾尝试在原始文本语料库(预聚类)上使用LDA,并获得了许多主题,但是我不确定如何将这些主题映射到我现有的每个集群上。还有其他建议方法还是LDA是正确的方法,我该如何进行呢?
在线材料仅显示如何将lda主题映射到文档句子上,而不显示预先存在的群集。如果这样做,并根据其分配的主题对这些句子进行细分,我将获得与原始聚类不同的结果(这不理想)。
感谢您的帮助,如果有任何概念错误,请原谅,因为我是NLP的新手。
我的方法是按分配的簇将您的TFIDF文档术语矩阵分开,然后将这些术语的tfidf得分相加(基本上将所有行相加)。这将为您提供每个群集的热门词汇。
如果我们假设dtm
是您的文档术语矩阵,则“功能”是按dtm
列的顺序列出的术语列表,clusters
是您的聚类标签列表,其顺序与其中的行相同您的dtm
,那么这应该为您提供每个分类的热门单词
import pandas as pd
def top_terms(df, top_n=5):
return df.sum().sort_values(ascending=False).head(top_n)
df = pd.DataFrame(dtm, columns=features)
df['labels'] = clusters
df.groupby('labels').apply(top_terms, top_n=10)