【问题标题】:Search Engine Stopwords - Best Practices [closed]搜索引擎停用词 - 最佳实践 [关闭]
【发布时间】:2012-11-16 00:46:30
【问题描述】:

在为搜索引擎分析文档时,通常不索引所谓的停用词。停用词是语言中经常出现的常用词,例如athethis。这个想法是,如果停用词被编入索引,它们会在索引中占用太多空间,并且对搜索结果的质量几乎没有影响。

我想知道是否总是这样。

在现代搜索引擎中,索引停用词是否会使索引大小爆炸?还是只是微幅增长。

另外,移除停用词对词组搜索有何影响?搜索“beatles”和“the beatles”似乎是两个截然不同的东西。

我正在使用 elasticsearch 构建应用,但这个问题同样适用于 Solr、直接 lucene 或任何其他变体。

【问题讨论】:

  • 用谷歌“披头士”和“披头士”(没有“”)给出相同的结果,所以我猜“the”确实被忽略了。
  • 当我测试相同的东西时,它会得到 382.000.000 和 232.000.000 的结果。所以有区别。但是,不知道它值多少钱。
  • @TysHTTP:作为一般说明:“命中”的数量不可靠(由于搜索引擎优化,当确定前 K 应该是什么时 - 它停止搜索并停止对“找到的结果”)。虽然我不知道是不是这样,但我认为不是。

标签: algorithm search-engine elasticsearch information-retrieval stop-words


【解决方案1】:
  1. 停用词的主要问题不是索引大小,而是答案的质量。它们往往占主导地位(具有非常高的tf 值,因此可能使返回的结果错误),而不是索引的大小。
    无论如何,索引停用词不会显着增加索引的大小(而且它绝对不会“爆炸”)

  2. 克服它的一种方法是在索引n-grams 时使用停用词(而不是完全省略它们)。我不知道它是否真的完成了,但它肯定可以帮助改善返回的结果。

另外:停用词不会总是*被省略。例如,在讽刺检测器中 - 似乎(根据经验)停用词对答案非常重要。

【讨论】:

    【解决方案2】:

    我认为所有搜索引擎都以不同的方式处理这个问题。 您可以在以下位置阅读这些内容:http://searchenginewatch.com

    但是,如果您只是一个正在构建(小型)应用程序的人,我认为您不应该专注于这些小细节,而忽略这些词并专注于更相关的词。

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多