我正在使用mahout来集群使用solr索引的文本文档。
我已经使用文档中的“text”字段来形成向量。然后我在mahout中使用k-means驱动程序进行聚类,然后使用clusterdumper实用程序来转储结果。
我很难理解翻斗车的输出结果。我可以看到在这些聚类中用术语向量形成的聚类。 但是如何从这些集群中提取文档。我希望结果是出现在不同集群中的输入文档。
答案 0 :(得分:1)
我也有这个问题。我们的想法是群集转储器使用点转储所有群集数据,依此类推。你有两个选择:
String clusterInfo = String.format("Cluster %d (%d) with %d points.\n", value.getId(), clusterCount, value.getNumPoints());
writer.write(clusterInfo);
writer.write('\n');
// list all top terms
if (dictionary != null) {
String topTerms = getTopFeatures(value.getCenter(), dictionary, numTopFeatures);
writer.write("\tTop Terms: ");
writer.write(topTerms);
writer.write('\n');
}
// list all the points in the cluster
List points = clusterIdToPoints.get(value.getId());
if (points != null) {
writer.write("\tCluster points:\n\t");
for (Iterator iterator = points.iterator(); iterator.hasNext();) {
WeightedVectorWritable point = iterator.next();
writer.write(String.valueOf(point.getWeight()));
writer.write(": ");
if (point.getVector() instanceof NamedVector) {
writer.write(((NamedVector) point.getVector()).getName() + " ");
}
}
writer.write('\n');
}