gpt4 book ai didi

search - 信息检索 : How to combine different word results when using tf-idf?

转载 作者:行者123 更新时间:2023-12-02 05:17:16 26 4
gpt4 key购买 nike

假设我有一个用户搜索查询,如下所示:"the happy bunny"
我已经计算了 tf-idf 并且对于我正在搜索的每个文档(当然 idf 总是相同的)有这样的东西(以下是组成示例值):

        tf      idf    score
the 0.06 1 0.06 * 1 = 0.06
happy 0.002 20 0.002 * 20 = 0.04
bunny 0.0005 60 0.0005 * 60 = 0.03

我有两个关于下一步要做什么的问题。

首先, the仍然是最高分,即使它被 idf 调整为稀有度,但它仍然不是很重要 - 你认为我应该平方 idf稀有词的权重值,否则会产生不好的结果?不然我担心 thehappy 同等重要和 bunny ,而且应该很明显 bunny是搜索中最重要的词。只要稀有总是等于重要,那么就稀有性进行加权总是一个好主意,但如果情况并非总是如此,那么这样做可能真的会弄乱结果。

其次,更重要的是:将每个单词的分数组合在一起以给每个文档一个表示它反射(reflect)整个搜索查询的程度的单个分数的最佳/首选方法是什么?我正在考虑添加它们,但很明显,这将给予包含 10,000 happy 的文档更高的优先级。但只有 1 bunny而不是另一个带有 500 的文档快乐和500 bunny (这将是一个更好的匹配)。

最佳答案

首先,确保您正在计算正确的 TF-IDF 值。正如其他人指出的那样,它们看起来不对。 TF 与特定文档相关,我们通常不需要为查询计算它们(因为查询中的原始词频几乎总是 1)。有不同类型的 TF 函数可供选择(查看 tf-idf 上的维基百科页面,它有很好的覆盖面)。日志归一化是常见且最有效的方案,因为它节省了额外的磁盘访问以获取双归一化等所需的各个文档的总频率 maxF。当您处理大量文档时,这可能会很昂贵,尤其是当您无法将这些文档放入内存时。对倒置文件的一些了解可以在理解一些潜在的复杂性方面大有帮助。对数归一化是一种高效的非线性函数,因此优于原始频率。

一旦您确定了您的加权方案,那么您可能需要考虑 停止列表摆脱非常常见/嘈杂的词。这些不会影响文档的等级。一般建议使用高频、非常常用的词的停用词表。进行搜索,您会发现许多可用的,包括 Lucene 使用的。

剩下的取决于您的排名策略,这取决于您的实现/模型。向量空间模型 (VSM) 很简单,并且可以通过 Lucene、Lemur 等库轻松获得。VSM 计算查询和文档之间常见术语权重的点积或标量。术语权重通过向量长度归一化(这解决了您的第二个问题)进行了归一化,并且应用该模型的结果是一个介于 0 和 1 之间的值。这也被证明/解释为平面图中两个向量之间夹角的余弦,或欧氏距离除以两个向量的欧氏向量长度。

最早关于 VSM 加权方案和排名的综合研究之一是 article by Salton (pdf)如果您对信息检索感兴趣,这是一本很好的读物。可能有点过时(请注意文章中没有提到日志规范化)。

我相信你最好读的书是这本书 Christopher Manning 的信息检索简介 .它将带你了解你需要知道的一切,从索引到排名方案等。排名模型有点缺乏(不包括一些更复杂的概率方法)。

关于search - 信息检索 : How to combine different word results when using tf-idf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028519/

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