聚类文档Lucene

神户万基诺比

我想实现一个用于聚类的算法,并在Lucene中实现它。为此,我需要表示文档的tf-idf术语向量,因此我可以以表示文档的相同方式表示质心,找到文档和聚类之间的相似性,并通过计算其新特征值来更新质心。但是我该如何在Lucene之上做到这一点?

我什至可以得到tf-idf?

我知道每个文档中的术语频率都已保存,但这是否意味着我需要为每个术语“手动”计算idf?以及如何制作向量,然后将其用于聚类。

谢谢

maksim07

您可以为该字段存储术语向量。然后对于特定文档,您可以得到术语向量:

Terms termFreqVector = indexReader.getTermVector(doc, field);
TermsEnum te = termFreqVector.iterator(null);

然后遍历每个术语的枚举,您可以使用以下方法:

long df = te.docFreq(); // df of the term
long tf = te.totalTermFreq(); // tf of the term

要获得idf,您可以将df除以indexReader.numDocs()并应用Math.log

当然,您也可以使用Mahout工具对Lucene文档进行矢量化处理:http : //mahout.apache.org/users/basics/creating-vectors-from-text.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章