gpt4 book ai didi

Solr 词缀,以及带或不带空格的单词

转载 作者:行者123 更新时间:2023-12-02 04:41:58 27 4
gpt4 key购买 nike

匈牙利语比英语要复杂一些。单词可以被非常奇怪地更改,这意味着如果我们想为用户提供良好的体验,我们需要微调搜索。

我已经做了很长时间的研究,并且遇到了一些可能的解决方案,但我不确定它们是否适合我们的需求。这就是为什么我想向在使用 solr 方面更有经验的你们寻求一些帮助。

我。带空格或不带空格的单词

无论输入的单词有无空格,怎么可能得到相同的结果?

假设我正在寻找一个玻璃花瓶(匈牙利语中的“üveg váza”)。在匈牙利语中,将这样的词写在一起也很常见。怎么可能得到相同的如果有人键入不带空格的词:“üvegváza”,结果如何?反之亦然,对于搜索词“üvegváza”,我如何获得其中包含“üvegváza”的项目?

二。处理词缀、变形

在匈牙利语中,词形变化可以改变单词本身。例如,如果您正在寻找“带花卉装饰的花瓶”,您可以说:

  • virágos váza”= 带花的花瓶(最接近英语的含义)

  • váza virággal”=花瓶

  • váza virágokkal”= 花瓶

处理变形的最佳方法是什么?例如,如果我输入“virág”,怎么可能同时给出“virágos”、“virággal”的结果?反之亦然:键入关键字“virágos”并获取包含“virág”的项目?

您有什么建议/想法可以让我们发挥作用吗?

最佳答案

这可以实现,并且有解决方案,您可以使用 NGramTokenizerFactory 将单词分解成更小的标记。

像这样使用它

<analyzer>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="4" maxGramSize="15"/>
</analyzer>

如果您在此处输入"bicycle"

那么创建的token就Out了:

"bicy", "bicyc", "icyc", "icycl", "cycl", "cycle", "ycle"

你可以为你的领域尝试这个 NGramTokenizerFactory 并在 solr 分析工具中检查它。如果它与您的查询文本匹配。

您还可以查看 EdgeNGramTokenizerFactory,它读取字段文本并生成给定范围内大小的边缘 n-gram 标记。

这可以像这样使用

<analyzer>
<tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="2" maxGramSize="5"/>
</analyzer>

它还有一个属性side: ("front" or "back", default is "front") 是从文本的开头 (front) 还是从结尾 (back) 计算 n-gram。

输入文本:“babaloo”输出文本:"ba", "bab", "baba", "babal"

关于Solr 词缀,以及带或不带空格的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620173/

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