4

我最近开始在 python 中使用 SciKit 模块进行文档聚类。但是,我很难理解文档聚类的基础知识。

我知道的 ?

  • 文档聚类通常使用 TF/IDF 完成。它本质上将文档中的单词转换为向量空间模型,然后输入到算法中。
  • 有许多算法,如 k-means、神经网络、层次聚类来实现这一点。

我的资料:

  • 我正在尝试使用linkedin 数据,每个文档都是linkedin 个人资料摘要,我想看看类似的工作文档是否聚集在一起。

当前挑战:

  • 我的数据有大量的摘要描述,当我应用 TF/IDF 时,这些描述最终变成了 10000 字。是否有任何适当的方法来处理这些高维数据。
  • K - 均值和其他算法需要我指定编号。集群(质心),在我的情况下,我不知道预先集群的数量。我相信这是一种完全无监督的学习。是否有可以确定否的算法。集群本身?
  • 我以前从未使用过文档聚类,如果您知道解决此问题的教程、教科书或文章,请随时提出建议。

我浏览了 SciKit 网页上的代码,它包含太多我不明白的技术词汇,如果你们有任何解释或评论的代码,请分享。提前致谢。

4

3 回答 3

8

我的数据有大量的摘要描述,当我应用 TF/IDF 时,这些描述最终变成了 10000 字。是否有任何适当的方法来处理这些高维数据。

我的第一个建议是,除非由于内存或执行时间问题而绝对必须这样做,否则不要这样做。

如果您必须处理它,您应该使用降维(例如PCA )或特征选择(在您的情况下可能更好,例如参见chi2 )

K - 均值和其他算法需要我指定编号。集群(质心),在我的情况下,我不知道预先集群的数量。我相信这是一种完全无监督的学习。是否有可以确定否的算法。集群本身?

如果您查看scikit-learn 中可用的聚类算法,您会发现并非所有算法都需要您指定聚类的数量。

另一个没有的是层次聚类,在 scipy 中实现。另请参阅此答案

我还建议您使用 KMeans 并尝试手动调整集群的数量,直到您对结果满意为止。

我以前从未使用过文档聚类,如果您知道解决此问题的教程、教科书或文章,请随时提出建议。

Scikit 有很多处理文本数据的教程,只需使用他们网站上的“文本数据”搜​​索查询。一个用于 KMeans,其他用于监督学习,但我建议您也阅读这些以更熟悉该库。在我看来,从编码、风格和语法 POV 来看,无监督学习和有监督学习在 scikit-learn 中非常相似。

文档聚类通常使用 TF/IDF 完成。它本质上将文档中的单词转换为向量空间模型,然后输入到算法中。

这里的小修正:TF-IDF 与聚类无关。它只是一种将文本数据转换为数值数据的方法。它不关心你之后如何处理这些数据(聚类、分类、回归、搜索引擎等)。

我理解您试图传达的信息,但说“集群是使用 TF-IDF 完成的”是不正确的。它是使用聚类算法完成的,TF-IDF 仅在文档​​聚类中起预处理作用。

于 2015-03-11T21:23:26.360 回答
0
  1. 对于TF/IDF变换后的大矩阵,考虑使用稀疏矩阵。
  2. 您可以尝试不同的 k 值。我不是无监督聚类算法方面的专家,但我敢打赌,使用这样的算法和不同的参数,你最终也可能得到不同数量的聚类。
于 2015-03-11T20:53:47.250 回答
0

这个链接可能有用。k-means clustering它通过视觉输出http://brandonrose.org/clustering提供了大量的解释

于 2016-04-21T05:03:42.640 回答