Python中的句子聚类不使用Vector表示

时间:2015-02-27 11:27:05

标签: cluster-analysis

我想在python中使用k表示执行句子聚类。我不是用矢量形式表示句子。我使用nltk执行了句子分割并且有一个句子列表。现在我如何表示初始聚类质心(比方说我想要k = 3)?

1 个答案:

答案 0 :(得分:0)

k-means仅适用于矢量数据

顾名思义,必须能够计算卑鄙

你如何计算" apple"的平均值?和"橙"?

此外, mean 还必须最小化目标函数。对于数值数据,均值是最小二乘估计,它最小化平方和。因此,具有平方欧几里德距离的k均值很好;但是其他距离可能无法收敛(有关这种情况的例子,请参阅其他问题)。

K-means是方差最小化。这是一个仅适用于连续数值变量的概念。它对整数或二元变量已经有疑问(它会在那里工作,但结果往往毫无意义)。在文字上 - 没办法。

不要期望聚类算法能够发挥作用。

您不能将文本投入到聚类算法中,并期待魔法发生。要获得有意义的结果,您需要非常明确地表达您的假设和目标。仔细检查它们,让它们进入算法,运行算法,并再次非常仔细地评估结果。

没有假设的聚类算法是无用的。它为什么要聚集" apple" " orange",而不是" apple"和"三星"? 您需要为指明是一个很好的群集。这非常依赖于用户和数据。