在我的数据中,我有一个喜欢列表的用户,我已将这些喜欢转储到每个用户的单独文件中,并希望将它们聚集在一起。一切正常,除了输出在多个集群中具有相同的喜好。我的理解是 k-means 应该是排他的。我认为问题可能在于我如何转储数据。在我可以编写自定义标记器之前,我也暂时放弃了所有没有空格的喜欢。这是我正在运行的(来自 ruby 脚本)。
system("#{MAHOUT_CMD} seqdirectory -c UTF-8 -i data/users -o data/kmeans/converted")
system("#{MAHOUT_CMD} seq2sparse -i data/kmeans/converted -o data/kmeans/vectors")
system("#{MAHOUT_CMD} kmeans -i data/kmeans/vectors/tfidf-vectors -c data/kmeans/initial_clusters -o data/kmeans/kmeans_clusters -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -cd 0.1 -k 20 -x 20")
last_cluster_folder = Dir["data/kmeans/kmeans_clusters/*"].last.gsub("data/kmeans/kmeans_clusters/", "")
system("#{MAHOUT_CMD} clusterdump -s data/kmeans/kmeans_clusters/#{last_cluster_folder}/ -d data/kmeans/vectors/dictionary.file-0 -dt sequencefile -o data/kmeans/clusters.txt -n 1000")
输出列出了每个集群中的“顶级术语”,但是每个集群中都会出现许多类似的词(尽管权重不同)。是clusterdumper的正常输出,我是否需要通过权重找出每个单词所属的簇?
谢谢