为什么流行的搜索引擎不遵循通常的 AND、OR 查询逻辑?

数据挖掘 信息检索 搜索 搜索引擎
2021-10-02 18:04:06

我正在从 Christopher Manning 的书中自学信息检索(PDF 链接: http: //nlp.stanford.edu/IR-book/pdf/01bool.pdf)。我尝试了练习 1.13:

“尝试在几个主要的网络搜索引擎上使用布尔搜索功能。例如,选择一个词,例如 burglar,然后提交查询 (i) burglar, (ii) burglar AND burglar, and (iii) burglar OR burglar . 看看估计的结果和热门点击数。它们在布尔逻辑方面是否有意义?通常它们对于主要搜索引擎没有意义。你能理解发生了什么吗?

根据我对布尔逻辑的了解,结果的数量应该是这样的:

防盗 AND 防盗 <= 防盗 OR 防盗 = 防盗

但事实并非如此。事实上,在谷歌上,它是:

防盗 > 防盗 OR 防盗 > 防盗和防盗

那么,幕后究竟发生了什么?任何指针?

注意:这不是一个家庭作业问题,即使它来自教科书的练习。

2个回答

好问题!

应该通过查看搜索引擎源代码来给出确切的答案,但这里有一个可能的解释。

我在 Google 上运行查询

  • 窃贼 33,800,000
  • 窃贼和窃贼 29,200,000
  • 窃贼或窃贼 26,500,000

结果确实不尊重预期的布尔关系 burglar AND burglar <= burglar OR burglar = burglar

但是,这是因为搜索引擎不会将“and”和“or”作为二元运算符处理,而只是作为搜索标记处理。寻找他们,我们得到

  • 还有 25,270,000,000
  • 或 16,320,000,000

一个词单独出现的次数最多。“and”比“or”更常见,因此带有“and”的术语比带有“or”的术语更常见

注意

  • 窃贼 窃贼 29,000,000

显然是在寻找该术语出现两次的文档。

顺便说一句,Google 的搜索运算符文档声称“OR”确实应该充当二元运算符。你发现了一个他们没有这样做的案例。

请注意,此行为非常特定于搜索引擎。在 Bing 中,您会得到以下结果:

  • 窃贼 4,400,000
  • 窃贼和窃贼 1,610,000
  • 窃贼或窃贼 1,610,000

  • 和 10,400,000,000

  • 或 3,750,000,000

  • 窃贼 窃贼 1,610,000

“防盗与防盗”、“防盗或防盗”和“防盗防盗”的结果数量相似,尽管我们看到“与”比“或”更受欢迎。似乎 Bing 处理是删除“And”和“OR”,可能是停用词

Bing 文档建议使用运算符“&&”来表示“and”和“||” 为“或”。- 窃贼 || 防盗 4,400,000 = 防盗 - 防盗 && 防盗 1,610,000 = 防盗防盗

这些结果符合这样的说法,即当一个词在搜索查询中出现两次时,它也应该在文档中至少出现两次。

在某种程度上,谷歌曾经这样做过。长期以来,使用 +word 可以用来要求一个词的存在。所以“a AND b”将是“+a +b”,而“a OR b”将是“a b”(优先考虑两者都发生)。

但是人们并没有太多使用它,所以他们最终将其删除。

谷歌认为能够处理自然语言查询比一些不到 0.1% 的用户理解的数学形式更重要。

尽管还有其他一些假设为什么它被删除:为什么加号 (+) 作为搜索运算符被删除?