k-means用于文本聚类

问题描述 投票:0回答:2

我正在尝试为文本聚类实现k-means,特别是英语句子。到目前为止,我正处于每个文档(句子)都有一个术语频率矩阵的位置。我对文本数据的k-means的实际实现有点困惑。这是我对它应该如何工作的猜测。

  1. 弄清楚所有句子中的唯一单词数量(大数字,称之为n)。
  2. 创建k n维向量(簇)并用一些随机数填充k向量的值(我如何确定这些数字的界限是什么?)
  3. 确定从每个q句子到随机k簇,重新定位簇等的欧几里德距离(如果n像英语一样非常大,那么计算这些向量的欧几里德距离会非常昂贵吗?)

感谢您的任何见解!

algorithm k-means
2个回答
1
投票

评论有点长。

如果您有文档术语矩阵,则找到(协方差矩阵的)主成分。确定主成分空间中原始数据的系数。您可以在此空间中进行k-means聚类。

对于文本数据,您通常需要一堆维度--20,50,100甚至更多。另外,我会推荐高斯混合模型/期望最大化聚类而不是k均值,但这是另一个故事。


1
投票

在这里复活一个稍微陈旧的问题,但值得将两者联系起来......

通常,您使用某种局部敏感的散列而不是依赖于单词出现的频率。但无论哪种方式,手动组装特征矩阵都是一个巨大的麻烦。

这个SO answer为您提供了如何使用scikit-learn和解释步骤从文档列表创建特征矩阵的指南。我认为这有助于向您展示所需的步骤顺序。

© www.soinside.com 2019 - 2024. All rights reserved.