【问题标题】:k-means for text clustering用于文本聚类的 k-means
【发布时间】:2017-03-16 12:49:25
【问题描述】:

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

  1. 算出所有句子中唯一词的数量(很大,称之为n)。

  2. 创建k n 维向量(簇)并用一些随机数填充k 向量的值(我如何确定这些数字的界限是什么?)

  3. 确定每个q 句子到随机k 簇、重新定位簇等的欧几里得距离(如果n 像英语一样非常大,则不会计算欧几里得这些向量的距离非常昂贵?)

感谢您的任何见解!

【问题讨论】:

    标签: algorithm k-means


    【解决方案1】:

    评论有点长。

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

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

    【讨论】:

      【解决方案2】:

      在这里复活一个有点老的问题,但值得将两者联系起来......

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

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

      【讨论】:

        猜你喜欢
        • 2016-08-14
        • 2019-04-06
        • 2018-01-18
        • 2015-04-11
        • 2018-02-26
        • 2011-08-13
        • 2013-08-08
        • 2013-02-14
        • 2018-01-14
        相关资源
        最近更新 更多