gpt4 book ai didi

python - 根据文本与 LDA 主题/特征簇的相似性对文本进行分组

转载 作者:行者123 更新时间:2023-11-30 09:09:14 24 4
gpt4 key购买 nike

我正在开发一个包含论坛主题内容(第一篇文章+回复)的数据库。我想根据第一篇文章的主题对这些文档进行分组/聚类。

我计算了 LDA/LSI 主题并尝试了 K-means 聚类,但我找不到有关如何从集群中获取相关文本文档的文档。我只获得每个集群的主要特征,但我想要整个文档或每个集群与其关联的一些 ID。

我还尝试了具有已知机器学习算法的分类器和推荐器,但它们的结果并不是真正有用。我也尝试过使用word2vec和doc2vec计算相似度,结果也不是很精确。

总而言之,我想根据相似的功能/主题对文本文档进行分组,而不会丢失其内容的链接(如 ID)。我还想到了更高级的方法,但我希望它首先起作用。目标是将使用软件时遇到相同问题以及这些问题的原因可能相同的用户发布的帖子进行分组。

最佳答案

您可以使用lda Python 中的库来创建文档的 LDA 表示,如下所示:

import lda
model = lda.LDA(n_topics=20, n_iter=1500, random_state=1)
model.fit(X)
lda_representation = model.doc_topic_

假设 X 是大小为 n_doc x n_vocab 的文档矩阵,并且您的 lda 表示大小为 n_doc x n_topics

然后将 lda_representations 聚类为 k-means algorithm from sklearn :

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=10, random_state=0)
kmeans.fit(lda_representation)
clusters = kmeans.labels_

其中簇的大小为n_docs x 1,是每个文档的簇分配,例如簇[0]0之间的数字强>到n_clusters - 1它告诉您 document_0 属于集群 n。

关于python - 根据文本与 LDA 主题/特征簇的相似性对文本进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com