luceneインデックスで使用するのに最適な言語間アナライザー

StackOverflow https://stackoverflow.com/questions/1001003

  •  05-07-2019
  •  | 
  •  

質問

複数の言語のドキュメントを含むインデックスで使用するアナライザーについてのフィードバックを探しています。現在、私は、simpleanalyzerを使用しています。これは、最も広範な言語を処理するようです。索引付けされるドキュメントのほとんどは英語ですが、時折ダブルバイト言語も索引付けされます。

他に何か提案がありますか、それともsimpleanalyzerのみを使用する必要があります。

ありがとう

役に立ちましたか?

解決

SimpleAnalyzerは本当にシンプルで、用語が小文字であるだけです。 StandardAnalyzerは、英語以外の言語データであってもSimpleAnalyzerよりも良い結果が得られると思っていました。デフォルトの英語の単語に加えて、ストップワードのカスタムリストを提供することで、おそらく少し改善できます。

他のヒント

あなたの説明から、あなたは複数の言語のドキュメントを持っていると思いますが、各ドキュメントには1つの言語のテキストしかありません。

この場合、Nutchの言語識別を使用してドキュメントの言語を取得できます。次に、それぞれの言語アナライザーを使用してインデックスを作成します。検索の正しい結果を取得するには、検索クエリに言語識別を適用し、そのアナライザーを使用する必要があります。

ここでの利点は、言語固有のステマー&を使用できることです。検索の質を向上させるストップワード。インデックス作成中の余分なオーバーヘッドは許容できるはずです。ただし、言語の識別が正しい言語の識別に失敗する検索クエリは、苦しむ可能性があります。私はこの数年前に使用しましたが、結果は予想よりも優れていました。

CJKの場合、同様の手法を適用できますが、ツールが異なる場合があります。

StandardAnalyzerを英語以外の単語で使用しましたが、正常に機能します。アクセント記号付きの文字も扱います。言語がCJK(中国語、日本語、韓国語)、ロシア語、またはドイツ語の場合、問題があるかもしれませんが、問題のほとんどは単語の語幹に関連していると思われます。ステミングを有効にしていない場合は、おそらく適切です。

純粋に逸話的な証拠ですが、システムには StandardAnalyzer の(カスタマイズされていますが、関連する方法ではありません)バージョンを使用しています。私たちのドキュメントは互いに異なる言語であるだけでなく、ドキュメントが異なる言語のチャンクを含んでいる場合があります(たとえば、英語でコメント付きの日本語で書かれた記事を想像してください)。したがって、言語スニッフィングは困難です。

ドキュメントの大半は英語ですが、かなりの数が中国語と日本語であり、フランス語、スペイン語、ポルトガル語、韓国語では少数です。

最終結果?私たちは StandardAnalyzer を使用していますが、ローマ字以外の言語でこのシステムを使用しているユーザーからは、検索の動作に関する苦情はほとんどありません。ちなみに、私たちのシステムはユーザーに対してやや「強制」されているため、人々が不平を言っているのではなく、別の場所に移動しているというわけではありません。彼らが不幸なら、私たちは一般的に知っています。

ユーザーの苦情(主に中国語に関するものですが、深刻なことはなく、簡単に説明されます)に苦しんでいないという事実に基づいて、多くの場合「十分に良い」ようです

正解は、メイン言語(ある場合)によって異なります。

最高の言語間IRパフォーマンスを得るには、4/5グラムのアナライザーを使用します。多くの言語で優れた機能を発揮します。英語のSimpleAnalyzerよりもうまく動作するかもしれません。 http://www.eecs.qmul.acを参照してください。 uk /〜christof / html / publications / inrt142.pdf など。

これを調べましたが、別の角度。包括的アナライザーはないようです-最高の結果を得るには、各言語に独自のアプローチが必要です。

最初に、あなたの言語が何であるかを見つける必要がありますか?たとえば、私のドキュメントは 英語、日本語、またはペルシャ語。文書の言語は、プロセスごとに UTF-8文字。

それから、あなたの文書がどの言語であることがわかったら、それを使って分析することができます 特定のアナライザー。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top