Lucene:结合ASCII折叠和词干生成用于法语

Lucene:结合ASCII折叠和词干生成用于法语,lucene,Lucene,我正在实现对法语文本的Lucene搜索。无论用户是否键入重音符号,搜索都必须有效,并且还必须支持词干分析。我目前正在Lucene 3中使用基于雪球的法语词干分析器 在索引方面,我在分析器中添加了一个ascifoldingfilter,它在词干分析器之后运行 但是,在搜索端,操作是不可逆的:只有在输入内容包含重音的情况下,词干分析器才能工作。例如,它将ité从université的末尾派生出ité,但当用户搜索输入为universite时,在查询分析期间,词干分析器返回universit。当然,由

我正在实现对法语文本的Lucene搜索。无论用户是否键入重音符号,搜索都必须有效,并且还必须支持词干分析。我目前正在Lucene 3中使用基于雪球的法语词干分析器

在索引方面,我在分析器中添加了一个
ascifoldingfilter
,它在词干分析器之后运行

但是,在搜索端,操作是不可逆的:只有在输入内容包含重音的情况下,词干分析器才能工作。例如,它将
ité
université
的末尾派生出
ité
,但当用户搜索输入为
universite
时,在查询分析期间,词干分析器返回
universit
。当然,由于索引包含术语
univers
,因此搜索
universit
不会返回任何结果

一个解决方案似乎是在分析器中更改词干和折叠的顺序:而不是词干和折叠,而是在词干之前进行折叠。这有效地使操作可逆,但也大大阻碍了词干分析器,因为许多单词不再符合词干规则

或者,可以修改词干分析器以对折叠输入进行操作,即忽略重音,但这会导致词干过多吗

有没有一种方法可以在不改变词干算法行为的情况下有效地进行折叠搜索?

步骤1。)使用详尽的引理同义词映射文件

步骤2.)柠檬化后ASCII(ICU)折叠

你可以在这里得到详尽的法国引理:

此外,由于柠檬化程序不像词干分析器那样具有破坏性,因此您可以多次应用柠檬化程序,也许您的柠檬化程序还包含无重音规范化。。。只需再次应用lemmatizer。

步骤1。)使用详尽的lemma同义词映射文件

步骤2.)柠檬化后ASCII(ICU)折叠

你可以在这里得到详尽的法国引理:

此外,由于柠檬化程序不像词干分析器那样具有破坏性,因此您可以多次应用柠檬化程序,也许您的柠檬化程序还包含无重音规范化。。。再涂一次柠檬水就行了