请帮我讲解如何在java中使用k-means算法进行单词聚类。从文档集中,我得到了单词及其频率计数。然后我不知道如何开始聚类。我已经搜索谷歌。但不知道。请告诉我执行单词聚类的步骤。现在非常需要。提前谢谢。
答案 0 :(得分:0)
"Programming Collective Intelligence"有一个关于如何做到这一点的精彩章节。示例在Python中,但它们应该很容易移植到Java。
答案 1 :(得分:0)
在聚类中,最重要的是构建一个方法,它检查事物(例如)如何“关闭”在一起。例如。你是否对使用相同语言的字符串感兴趣,这可能是:
int calculateDistance(String s1, String s2) {
return Math.abs(s1.length() - s2.length());
}
然后我不太确定,但是可以这样: 1.选择(可以随机)第一个k字符串, 2.迭代所有字符串,并将它们与“最近的”字符串相关联。
然后可以是某种东西,比如从中间的每个“群集”中选择,然后重新开始。我不记得100%,但我认为这是开始的好方法。
请记住,最重要的是方法calculateDistance()!