gpt4 book ai didi

python-2.7 - 文本聚类和主题提取

转载 作者:行者123 更新时间:2023-12-03 06:52:40 29 4
gpt4 key购买 nike

我正在使用优秀的 scikit-learn 模块进行一些文本挖掘。我正在尝试对科学摘要进行聚类和分类。

我正在寻找一种方法来对我的一组 tf-id 表示进行聚类,而不必提前指定聚类的数量。我还没有找到一个可以做到这一点的好的算法,并且仍然可以很好地处理大型稀疏矩阵。我一直在研究简单地使用 scikit-learn 的 kmeans,但它没有办法确定最佳集群数量(例如使用 BIC)。我也尝试过使用高斯混合模型(使用最佳 BIC 分数来选择模型),但它们非常慢。

在对文档进行聚类后,我希望能够查看每个聚类的主题,即他们倾向于使用的词。给定数据矩阵和集群标签,有没有办法提取这些信息?也许取集群的平均值并使用 tf-id-vectorizer 对其进行逆变换?我之前曾尝试使用卡方和随机森林来对特征重要性进行排名,但这并没有说明哪个标签类使用什么。

我尝试使用 NMF 分解方法(仅使用 scikit-learns 网站上的示例代码)进行主题检测。它工作得很好,并且很快就产生了非常有意义的主题。但是,我没有找到一种方法来使用它将每个数据点分配给一个集群,也没有自动确定集群的“最佳”数量。但这是我正在寻找的东西。

我还在某处读到可以直接从拟合的 LDA 模型中提取主题信息,但我不明白它是如何完成的。由于我已经实现了 LDA 作为基线分类器和可视化工具,这可能是一个简单的解决方案。

如果我设法产生有意义的集群/主题,我会将它们与一些人造标签(不是基于主题)进行比较,看看它们是如何对应的。但这是另一个线程的主题:-)

最佳答案

您可以尝试使用低 max_df 的 TF-IDF ,例如max_df=0.5然后是k-means(或MiniBatchKMeans)。要为 K 找到一个好的值,您可以尝试以下启发式方法之一:

  • 差距统计
  • 预测强度

  • 此博客文章中提供了执行说明: http://blog.echen.me/2011/03/19/counting-clusters/

    这些方法都没有在 sklearn 中实现。如果您发现其中任何一个对您的问题有用,我会非常感兴趣。如果是这样,讨论如何最好地在 scikit-learn 中贡献默认实现可能会很有趣。

    关于python-2.7 - 文本聚类和主题提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831532/

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