我对文本语料库进行了硬聚类(使用tf-idf权重),并获得了约200个聚类。如果我想获取每个群集的主题,该怎么做?
我尝试在原始文本语料库(预聚类)上使用LDA,并获得了许多主题,但是我不确定如何将这些主题映射到我现有的每个集群上。 还有其他建议方法还是LDA是正确的方法,我该如何进行呢?
在线材料仅显示如何将lda主题映射到文档句子上,而不显示现有的群集。如果这样做,并根据其分配的主题对这些句子进行细分,我将得到与原始聚类不同的结果(这不理想)。
在此先感谢您的帮助,如果有任何概念错误,请原谅我是NLP的新手。
答案 0 :(得分:0)
我的方法是按分配的簇将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)