是否有一种简单而标准的方法来自定义 Lucene 雪球词干分析器?

我正在使用 Lucene 7.x 和 ItalianStemmer。看过ItalianStemmer类的代码,好像要花很长时间才能理解。因此,我正在寻找一种快速(可能是标准的)方式来自定义意大利语词干分析器,而不需要扩展 ItalianStemmer 或 SnowballProgram,因为我只有几天时间。

关键是我不明白为什么“saluto”(问候)这个名字来源于“sal”。它应该词干为“salut”,因为动词“salutare”(问候)词根为“salut”。而且,“sala”(房间)和“sale”(房间)也都源于“sal”,这很容易混淆,因为它们的含义不同。


翻阅古今
浏览 157回答 1
1回答

开心每一天1111

标准方法是复制源代码,然后创建自己的源代码。Stemming 是一个基于规则的启发式过程。它旨在生成虽然不完美,但通常足以促进搜索的词干。它没有共轭词及其词干词典供您修改。-uto 是意大利雪球词干分析器从单词中删除的动词后缀之一,如此处所述。您可以创建自己的版本,从列表中删除该后缀,但总而言之,您可能会创造出比解决的更多的问题。返回正确词根的工具通常称为lemmatizer,我不相信 Lucene 附带任何开箱即用的工具。形态学分析往往更慢且更复杂。如果这对您的用例很重要,您可能需要查找意大利词形还原器,并将其处理到自定义过滤器中,或者在将其传递给分析器之前预处理您的文本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java