我正在使用 Lucene 7.x 和 ItalianStemmer。看过ItalianStemmer类的代码,好像要花很长时间才能理解。因此,我正在寻找一种快速(可能是标准的)方式来自定义意大利语词干分析器,而不需要扩展 ItalianStemmer 或 SnowballProgram,因为我只有几天时间。关键是我不明白为什么“saluto”(问候)这个名字来源于“sal”。它应该词干为“salut”,因为动词“salutare”(问候)词根为“salut”。而且,“sala”(房间)和“sale”(房间)也都源于“sal”,这很容易混淆,因为它们的含义不同。
1 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
标准方法是复制源代码,然后创建自己的源代码。
Stemming 是一个基于规则的启发式过程。它旨在生成虽然不完美,但通常足以促进搜索的词干。它没有共轭词及其词干词典供您修改。-uto 是意大利雪球词干分析器从单词中删除的动词后缀之一,如此处所述。您可以创建自己的版本,从列表中删除该后缀,但总而言之,您可能会创造出比解决的更多的问题。
返回正确词根的工具通常称为lemmatizer,我不相信 Lucene 附带任何开箱即用的工具。形态学分析往往更慢且更复杂。如果这对您的用例很重要,您可能需要查找意大利词形还原器,并将其处理到自定义过滤器中,或者在将其传递给分析器之前预处理您的文本。
添加回答
举报
0/150
提交
取消