2017-08-10 7 views
1

フランス語テキストのLucene検索を実装しています。ユーザーがアクセントを入力したかどうかにかかわらず、検索は機能しなければならず、ステミングもサポートする必要があります。私は現在、Lucene 3のSnowballベースのフランスのstemmerを使用しています。Lucene:フランス語のASCIIフォールディングとステミングを組み合わせる

インデクシング側で、私はASCIIFoldingFilterをアナライザに追加しました。

しかし、検索側では、操作は元に戻せません。ステムマーは入力内容にアクセントが含まれている場合にのみ機能します。たとえば、itéuniversitéの末尾にありますが、ユーザー検索入力がuniversiteの場合、ステマーはクエリ分析中にuniversitを返します。もちろん、インデックスには用語universが含まれているため、universitの検索結果は返されません。

解決策は、分析中のステミングおよびフォールディングの順序を変更することであるように思われます。スタミンティングおよびフォールディングの代わりに、スタミンティングの前にフォールディングを実行します。これは効果的に操作を可逆的にするが、多くの単語がもはや語幹規則に適合しないので、語幹を著しく邪魔する。あるいは、ステムマーは折り畳まれた入力で動作するように、すなわちアクセントを無視するように変更することができるが、これにより過剰なステミングが生じる可能性があるか?

ステミングアルゴリズムの動作を変更せずに効果的に折り畳まれた検索を行う方法はありますか?

答えて

0

ステップ1)網羅補題同義語マッピングファイル

ステップ2)、ASCII(ICU)lemmatizing後に折りたたみを使用してください。あなたがここに網羅フランスの補題を得ることができます

:あなたはlemmatizerを複数回適用することができます またhttp://www.lexiconista.com/datasets/lemmatization/

ためlemmatizersは、おそらくあなたのlemmatizerもアクセントのない正規化が含まれ、ステマーのような破壊的ではありません。..レマタイザーをもう一度適用してください。

関連する問題