gpt4 book ai didi

solr - solr 是否使用余弦相似度?

转载 作者:行者123 更新时间:2023-12-04 22:20:29 39 4
gpt4 key购买 nike

我写了一个小型搜索引擎作为我的每周项目。它基于查询向量和文档向量之间的余弦相似度。向量是使用 tf-idf 标记的疮计算的。
我开始了解 Apache Solr,它是一个全文搜索引擎。我的问题是 solr 在对搜索结果进行排名时是否在内部使用余弦相似度?

最佳答案

不。Solr 使用类似于余弦相似度的东西,但并不完全相同 - 存在一些关键差异。

如果您访问相同的链接 ( https://lucene.apache.org/core/4_10_0/core/org/apache/lucene/search/similarities/TFIDFSimilarity.html ) 并进一步向下滚动,您将看到“Lucene 概念评分公式”和“Lucene 实用评分公式”,其中提供了更多详细信息。

忽略任何索引/查询时间提升,以下是一些主要区别:

1.不同的文档归一化因子

它不是通过其 tf-idf 向量的欧几里得范数来规范化每个文档,而是使用“doc-len-norm”。对于默认的相似性度量(DefaultSimilairty),这只是 1/sqrt(文档中的术语数),它基本上等于 1/sqrt(sum(tf)) - 即,其中 tf 是文档中术语计数的总和 -没有像欧几里得范数那样进行平方,并且每个项的 idf 被排除在外。此外,该值四舍五入为一个字节以节省空间。这通常会得到与用于余弦相似度的归一化因子不同的值。

2.额外的“坐标”提升

还有一个额外的值乘以分数等于:
文档中匹配的查询词数/查询中的词总数。

这为匹配更多查询词的字段(文档)提供了额外的提升,并且可能具有可疑的值(value)。这本质上是将 tf-idf 向量分数与另一个内积相乘 - 这些向量的内积转换为 bool 向量(如果没有给定的术语,则为 0,如果有,则为 1)与仅由其欧几里得归一化的查询向量规范。

关于solr - solr 是否使用余弦相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24661594/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com