java - 在 Lucene 中使用向量空间模型而不是 BM25
问题描述
如何更改 Lucene 中的评分并使用向量空间模型而不是 BM25?
解决方案
您可以通过使用IndexWriterConfig.setSimilarity和IndexSearcher.setSimilarity设置相似度来更改用于对文档进行评分的算法。请注意,您在编写和搜索时应该使用相同的相似性实现,并且通常需要在您想要尝试不同的相似性时重新索引。
有许多开箱即用的相似性实现。
Lucene 的旧默认相似性是ClassicSimilarity,它是一个 TFIDF(即 VSM)实现,如此处所述。
但是,它不会根据您的评论完成您正在寻找的内容。它也不会为您提供一种有意义的方式来标准化分数,或建立有用的阈值,并且分数没有上限。
推荐阅读
- django - Django on_delete=CASCADE 不起作用,无法使用原始 SQL 删除父行
- python-3.x - 例外:布局必须是破折号组件或返回破折号组件的函数
- android - 在 espresso 测试中使用 MockWebServer 的调度程序来响应来自另一个模块的异步调用
- ios - 如何查看我的用户在哪些设备上的百分比?
- cloud-foundry - 关于 Pivotal Cloud Cache 的多个问题
- javascript - 移动到另一个列表时更改 div 的颜色
- vb.net - 如何获得自定义笔颜色?
- reactjs - React Bootstrap 中的列宽度
- javascript - 拆分字符串并获取数值
- node.js - 从函数获取返回值后的Node.JS回调