如何从现有文本集群中提取主题?

时间:2019-12-16 10:06:49

标签: nlp cluster-analysis lda topic-modeling

我对文本语料库进行了硬聚类(使用tf-idf权重),并获得了约200个聚类。如果我想获取每个群集的主题,该怎么做?

我尝试在原始文本语料库(预聚类)上使用LDA,并获得了许多主题,但是我不确定如何将这些主题映射到我现有的每个集群上。 还有其他建议方法还是LDA是正确的方法,我该如何进行呢?

在线材料仅显示如何将lda主题映射到文档句子上,而不显示现有的群集。如果这样做,并根据其分配的主题对这些句子进行细分,我将得到与原始聚类不同的结果(这不理想)。

在此先感谢您的帮助,如果有任何概念错误,请原谅我是NLP的新手。

1 个答案:

答案 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)