【发布时间】:2014-03-14 00:58:12
【问题描述】:
我了解 VSM、TFIDF 和余弦相似度的概念,但是,在阅读 lucene 网站后,我仍然对 lucene 如何构建 VSM 和计算每个查询的相似度感到困惑。
据我了解,VSM 是一个矩阵,其中填充了每个术语的 TFIDF 值。当我尝试从一组文档中构建 VSM 时,这个工具花了很长时间 http://sourceforge.net/projects/wvtool/ 这与编码并没有真正的关系,因为直观地构建大数据的 VSM 矩阵非常耗时,但对于 lucene 似乎并非如此。
此外,通过预先构建的 VSM,找到最相似的文档,这基本上是计算两个文档之间的相似度,或者查询与文档之间的相似度通常很耗时(假设有数百万个文档,因为必须计算与其他所有人的相似度),但 lucene 似乎真的很快。我想这也与它如何在内部构建 VSM 有关。如果可能的话,有人也可以解释一下吗?
所以请帮助我理解这里的两点: 1. lucene是如何快速构建VSM的,可以用来计算相似度。 2. 百万文档之间的lucene相似度计算怎么这么快。
如果能给出一个真实的例子,我将不胜感激。 谢谢
【问题讨论】:
标签: lucene indexing data-mining similarity tf-idf