我想在python中使用k表示执行句子聚类。我不是用矢量形式表示句子。我使用nltk执行了句子分割并且有一个句子列表。现在我如何表示初始聚类质心(比方说我想要k = 3)?
答案 0 :(得分:0)
顾名思义,必须能够计算卑鄙。
你如何计算" apple"的平均值?和"橙"?
此外, mean 还必须最小化目标函数。对于数值数据,均值是最小二乘估计,它最小化平方和。因此,具有平方欧几里德距离的k均值很好;但是其他距离可能无法收敛(有关这种情况的例子,请参阅其他问题)。
K-means是方差最小化。这是一个仅适用于连续数值变量的概念。它对整数或二元变量已经有疑问(它会在那里工作,但结果往往毫无意义)。在文字上 - 没办法。
您不能将文本投入到聚类算法中,并期待魔法发生。要获得有意义的结果,您需要非常明确地表达您的假设和目标。仔细检查它们,让它们进入算法,运行算法,并再次非常仔细地评估结果。
没有假设的聚类算法是无用的。它为什么要聚集" apple" " orange",而不是" apple"和"三星"? 您需要为指明是一个很好的群集。这非常依赖于用户和数据。