首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用向量空间模型代替Lucene中的BM25

用向量空间模型代替Lucene中的BM25
EN

Stack Overflow用户
提问于 2018-12-01 04:12:34
回答 2查看 695关注 0票数 0

如何更改Lucene中的评分并使用向量空间模型而不是BM25?

EN

回答 2

Stack Overflow用户

发布于 2018-12-02 19:12:00

您可以通过使用IndexWriterConfig.setSimilarityIndexSearcher.setSimilarity设置相似度来更改用于对文档进行评分的算法。请注意,在编写和搜索时,您应该使用相同的相似性实现,并且当您想尝试不同的相似性时,通常需要重新建立索引。

有许多开箱即用的Similarity implementations

Lucene的旧的默认相似度是ClassicSimilarity,它是一个TFIDF (即。VSM)实现为documented here

然而,根据你的评论,它不会实现你想要的东西。它也不会为您提供一种有意义的方式来归一化分数,或者建立有用的阈值,并且分数没有上限。

票数 1
EN

Stack Overflow用户

发布于 2020-02-04 08:48:41

要使用不同的相似性,请使用以下命令在indexSearcher中设置相似性:

代码语言:javascript
复制
IndexSearcher indexSearcher;

IndexReader reader = DirectoryReader.open(indexDirectory);
indexSearcher = new IndexSearcher(reader);

...

indexSearcher.setSimilarity(new BM25Similarity());    //default in newer versions and above
//or
indexSearcher.setSimilarity(new ClassicSimilarity());
//or any other similarity
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53564274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档