加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在lucene中的两个文档之间获得余弦相似性

发布时间:2020-12-14 04:19:14 所属栏目:大数据 来源:网络整理
导读:我已经在Lucene建了一个索引.我想没有指定一个查询,只是为了获得索引中两个文档之间的得分(余弦相似性或另一个距离?). 例如,我从以前打开的IndexReader中获取ir和具有ids 2和4的文档. 文件d1 = ir.document(2); 文件d2 = ir.document(4); 我如何得到这两个
我已经在Lucene建了一个索引.我想没有指定一个查询,只是为了获得索引中两个文档之间的得分(余弦相似性或另一个距离?).

例如,我从以前打开的IndexReader中获取ir和具有ids 2和4的文档.
文件d1 = ir.document(2);
文件d2 = ir.document(4);

我如何得到这两个文件之间的余弦相似?

谢谢

解决方法

索引时,有一个存储术语频率向量的选项.

在运行时,使用IndexReader.getTermFreqVector()查找两个文档的术语频率向量,并使用IndexReader.docFreq()查找每个术语的文档频率数据.这将给你所有必要的组件来计算两个文档之间的余弦相似度.

更简单的方法可能是将文档A作为查询提交(将查询中的所有单词添加为OR术语,按术语频率提升每个单词),并在结果集中查找文档B.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读