gpt4 book ai didi

language-agnostic - 使用 Lucene 搜索单词的替代形式的最佳实践

转载 作者:行者123 更新时间:2023-12-04 07:48:28 24 4
gpt4 key购买 nike

我有一个可以使用 Lucene 搜索的站点。我从日志中注意到,用户有时找不到他们要查找的内容,因为他们输入了单数术语,但站点上只使用了该术语的复数形式。我希望搜索也能找到一个词的其他形式的用法。这是一个我确信已经解决了很多次的问题,那么最佳实践是什么?

请注意:本站只有英文内容

我想到的一些方法:

  • 在某种同义词文件中查找单词以确定给定单词的替代形式。
  • 一些例子:
  • 搜索“汽车”,还将“汽车”添加到查询中。
  • 搜索“carry”,还将“carries”和“carried”添加到查询中。
  • 搜索“small”,还将“smaller”和“smallest”添加到查询中。
  • 搜索“can”,还将“can't”、“cannot”、“cans”和“canned”添加到查询中。
  • 并且它应该反向工作(即搜索“carries”应该添加“carry”和“carried”)。
  • 缺点:
  • 不适用于许多新的技术词,除非经常更新词典/同义词库。
  • 我不确定搜索同义词文件的性能。
  • 基于一些启发式算法生成替代形式。
  • 一些例子:
  • 如果单词以“s”或“es”或“ed”或“er”或“est”结尾,则去掉后缀
  • 如果单词以“ies”或“ied”或“ier”或“iest”结尾,则转换为“y”
  • 如果单词以“y”结尾,则转换为“ies”、“ied”、“ier”和“iest”
  • 尝试在单词中添加“s”、“es”、“er”和“est”。
  • 缺点:
  • 为大多数输入生成大量非单词。
  • 感觉像一个黑客。
  • 看起来像你会在 TheDailyWTF.com 上找到的东西。 :)
  • 更复杂的东西?

  • 我正在考虑对前两种方法进行某种组合,但我不确定在哪里可以找到同义词文件(或它的名称,因为“同义词库”不太正确,但“字典”也不是) )。

    最佳答案

    考虑在您的分析管道中包含 PorterStemFilter 。确保对构建索引时使用的查询执行相同的分析。

    我还使用了 Lancaster stemming 算法,效果很好。以 PorterStemFilter 为指导,很容易与 Lucene 集成。

    关于language-agnostic - 使用 Lucene 搜索单词的替代形式的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893436/

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