导致这种情况的原因有很多,下面是几个可能的方面:
验证方法就是 聚类完成之后 ,找到个数为0的分类,找到实际上属于这个分类的文本,手动的计算其距离其他几个分类中心点的距离,看看是不是太近。
1.数据本身的问题
比如虽然 有一组体育类的新闻 ,但是这组数据实际上 距离娱乐类的距离比较近 ,那么很有可能 导致结果体育类的分类个数为0。验证方法就是 聚类完成之后 ,找到个数为0的分类,找到实际上属于这个分类的文本,手动的计算其距离其他几个分类中心点的距离,看看是不是太近。
2.算法上的问题
相似度的计算方法有很多种 ,一定要选择一种适合当前场景的,比如新闻相似度可能用TF-IDF+欧式距离,决定好算法之后, 抽几个样本算一下是不是合理 ,比如找两个同分类的算一下,再找不同分类的算一下,看是不是距离符合逻辑 (同一类的相似度应该高,不同类别的相似度应该低) ,否则就在考虑换算法,或加入新的条件。额外的建议是,可以使用开源的K-Means工具来测试一下,看看结果与你的有何不同,目前开源的Python框架有很多,比如scikit-learn。