如何从现有文本集群中提取主题?
How to extract topics from existing text clusters?
我对文本语料库进行了硬聚类(使用 tf-idf 权重)并获得了 ~= 200 个聚类。如果我想获取每个集群的主题,我该怎么做?
我已经尝试在原始文本语料库(预聚类)上使用 LDA 并获得了很多主题,但是我不确定如何将这些主题映射到我现有的每个聚类上。
有没有其他推荐的方法或者 LDA 是正确的方法,我该如何进行?
在线 material 仅显示如何将 lda 主题映射到文档句子,而不是预先存在的集群。如果我这样做,并根据分配的主题对这些句子进行分割,我将得到与原始聚类不同的结果(这并不理想)。
预先感谢您的帮助,如果有任何概念上的错误,请原谅,因为我是 NLP 的新手。
我的方法是将您的 TFIDF 文档术语矩阵按分配的集群拆分,然后将术语的 tfidf 分数相加(基本上将所有行相加)。这将为您提供每个集群的热门词。
如果我们假设 dtm
是您的文档术语矩阵,则 'features' 是按 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)
我对文本语料库进行了硬聚类(使用 tf-idf 权重)并获得了 ~= 200 个聚类。如果我想获取每个集群的主题,我该怎么做?
我已经尝试在原始文本语料库(预聚类)上使用 LDA 并获得了很多主题,但是我不确定如何将这些主题映射到我现有的每个聚类上。 有没有其他推荐的方法或者 LDA 是正确的方法,我该如何进行?
在线 material 仅显示如何将 lda 主题映射到文档句子,而不是预先存在的集群。如果我这样做,并根据分配的主题对这些句子进行分割,我将得到与原始聚类不同的结果(这并不理想)。
预先感谢您的帮助,如果有任何概念上的错误,请原谅,因为我是 NLP 的新手。
我的方法是将您的 TFIDF 文档术语矩阵按分配的集群拆分,然后将术语的 tfidf 分数相加(基本上将所有行相加)。这将为您提供每个集群的热门词。
如果我们假设 dtm
是您的文档术语矩阵,则 'features' 是按 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)