我正在使用Lucene 7.x和ItalianStemmer。我已经看过ItalianStemmer类的代码,似乎需要很长时间才能理解。因此,我正在寻找一种快速(可能是标准的)方式来自定义意大利语词干分析器,而无需扩展ItalianStemmer或SnowballProgram,因为我有几天的时间。
重点是,我不理解为什么“ saluto”(问候)这个名字被冠以“ sal”的意思。它应该被源于“ salut”,因为动词“ salutare”(问候)被源于“ salut”。此外,“ sala”(房间)和“ sale”(房间)也被称为“ sal”,这令人困惑,因为它们的含义不同。
答案 0 :(得分:1)
标准方法是复制源并创建自己的源。
加粗是基于规则的启发式过程。它的设计目的是生成茎,这些茎虽然不完美,但通常足够好以利于搜索。它没有共轭词及其词干的字典供您修改。 -uto是意大利语雪球词提取者as described here从单词中删除的动词后缀之一。您可以创建自己的版本,从列表中删除该后缀,但总之,您可能会创建超出解决范围的问题。
返回正确词根的工具通常被称为 lemmatizer ,我不认为Lucene附带的任何工具都是开箱即用的。形态分析趋向于更慢和更复杂。如果这对您的用例很重要,则可能需要查找意大利语lemmatizer,并将其处理到自定义过滤器中,或者在将文本传递给分析器之前对其进行预处理。