信息检索:使用tf-idf时如何组合不同的单词结果?

Ala*_*air 5 search information-retrieval search-engine tf-idf

假设我有一个用户搜索查询,如下所示: "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
Run Code Online (Sandbox Code Playgroud)

我有两个问题关于下一步该怎么做。

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

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

jks*_*snw 1

  1. 您应该重新考虑您的 TF 和 IDF 值,它们看起来不正确。TF 值通常就是单词出现的频率,因此如果单词“the”出现 20 次,则它的 tf 值将为 20。像“the”这样的单词应该具有非常低的 IDF 值(可能约为小数点后 4 位,0.000) ...)。如果不需要像 the 这样的词,您可以使用停用词删除,它们将被删除,而不是仅仅给出低分。

  2. 为此可以使用向量空间模型