【问题标题】:Sphinx and wordforms狮身人面像和词形
【发布时间】:2010-02-17 20:08:25
【问题描述】:

如何让 Sphinx 将“auto”和“car”识别为相似词?

让我们想象一下我有三个数据库记录

Andy likes to drive auto.
Mary don't like to drive car.
Bob is going to buy automobile.

这是示例查询及其结果...

query: car
result: Mary don't like to drive car.
-------------------------------------
query: auto
result: Andy likes to drive auto.
-------------------------------------
query: automobile
Bob is going to buy automobile.

..但我希望狮身人面像返回...

query: car
result:
Andy likes to drive auto.
Mary don't like to drive car.
Bob is going to buy automobile.
-------------------------------------
query: auto
result:
Andy likes to drive auto.
Mary don't like to drive car.
Bob is going to buy automobile.
-------------------------------------
query: automobile
result:
Andy likes to drive auto.
Mary don't like to drive car.
Bob is going to buy automobile.

我知道 Sphinx 有 stowords,但是我应该在 stopwords 字典中加入什么才能让 Sphinx 这么想呢?

谢谢。

【问题讨论】:

  • 小观察...我认为您的意思是说“玛丽不喜欢开车”。作为“汽车”查询下的第一个结果。

标签: sphinx


【解决方案1】:

您所要做的就是在您的 .conf 文件中为 sphinx 提供格式正确的 wordforms 文本文件。

在此处找到的文档:http://www.sphinxsearch.com/docs/manual-0.9.9.html#conf-wordforms

auto > car
automobile > car
four-wheeled-vehicle-intended-for-public-roads > car
cars > car

【讨论】:

  • 是的,我已经查看了有关 wordforms 的手册。但我不明白我应该做什么来等同于这个词。我应该把汽车>汽车,汽车>汽车,汽车>汽车,汽车>汽车,汽车>汽车,汽车>汽车吗?或者更简单的方法?谢谢。
  • 语法是[考虑这个词] > [作为这个词]。正如我试图在我的示例代码中演示的那样,您希望使用 car 作为其他每个单词的形式,以便它们都等同于 sphinx。请记住,词干不会在词形上执行,因此必须明确指定复数等。
  • 我在sphinxsearch.com/forum/view.html?id=5134 上问过同样的问题,你也同时回答了。 :)
【解决方案2】:

让我举一个词形形态的例子,其中包含“gearing”和“leverage”这两个词,因为这两个词在金融领域是相同的术语,应该被视为同义词(两个词的含义都是“金融杠杆”)。

最初,您的“wordforms.txt”文件应该包含它们,如下所示:

gear > gear
geared > gear
gearing > gear
gears > gear
……
leverage > leverage
leveraged > leverage
leverages > leverage
leveraging > leverage

表示原来这两个词没有联系。为了解决这个问题,您应该以这种方式修改“wordforms.txt”的内容:

gear > leverage
geared > leverage
gearing > leverage
gears > leverage
……
leveraged > leverage
leverages > leverage
leveraging > leverage

此编辑将它们(以及它们的所有形式)联系起来。编辑“wordforms.txt”文件后,您必须保存它并重新索引您的索引以应用更改。

现在,当您搜索“gearing”或“leverage”时,您的结果将包含这两个词及其所有形态形式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多