如何修改SOLR tf idf相似度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改SOLR tf idf相似度?相关的知识,希望对你有一定的参考价值。

我正在尝试搜索标题因此只是单词的存在就足够了,其频率至少与我的用例无关。

例如:搜索查询是:“早点登上我的宠物”

我得到的结果是:结果1:宠物2.3924026

结果2:宠物计算机舱宠物限制2.0538325

结果3:宠物预售允许1.6092906

理想情况下,我希望结果3位于顶部,需要一些外部工作。然而,结果1是显而易见且可接受的,但结果2的得分为2.05,因为其“宠物”被提及两次,暗示tf值更高[2/4(在删除停止词之后)]。我的要求只是检测单词的存在而不是单词的频率。

怎么做到这一点?

答案

如果您不需要短语搜索或其他依赖于索引位置数据的功能,则可以将omitTermFreqAndPositions="true"用于相关字段。在这种情况下,不会存储条款的位置或频率。

如果这不是一个选项,您可以创建一个扩展DefaultSimilarity的虚拟相似度类,并为tf返回1.0f。这样的例子可以在Solr Custom Similarity找到。

您还可以为每个字段配置不同的相似度类,允许您删除单个字段的tf评分。

第三种选择是使用the constant scoring operator作为您希望获得常量分数的查询部分。不确定edismax解析器是否支持此功能。

以上是关于如何修改SOLR tf idf相似度?的主要内容,如果未能解决你的问题,请参考以下文章

使用 sklearn 如何计算文档和查询之间的 tf-idf 余弦相似度?

Python:tf-idf-cosine:查找文档相似度

NLP文本相似度(TF-IDF)

从 tf-idf 计算余弦相似度

文本相似度算法

比 tf/idf 和余弦相似度更好的文本文档聚类?