2009-09-14 25 views
13

私は過去数日間、soundex、メタフォン、その他の文字列検索技術を研究していましたが、私の理解では両方のアルゴリズムが英語に翻訳された英語以外の単語をうまく処理します。英語以外の文字にsoundex/metaphoneを有効にする

しかし、このような検索は、ドイツ語、ノルウェー語、さらにはシラミルのアルファベットなどのアルファベットを収容した元の翻訳されていない言語で動作するようにする必要があります。

これらのアルファベットを完全に処理できる検索アルゴリズムはありますか?あるいはLuceneのようなサードパーティのフルテキスト検索ライブラリを使うのがよいですか?その結果、質問は「Luceneは英語以外のアルファベットを扱うのですか?」という質問になります。

+1

英語以外の言語のテキスト検索のユースケースの場合、soundexは必要ありません。 ire_and_cursesは言ったように、適切なAnalyzerでLuceneが必要です。同じ単語の異なる筆記体を扱いたい場合は、音韻的なマッチングアルゴリズムが必要です。あなたのユースケースについてもっと詳しく言うことができますか? –

答えて

15

私はこの分野の専門家ではありませんが、あなたの要件は私にとってはかなり難しいようです。 Soundexは、英語のサウンドと文字のために特別に設計されました。私はそれが英語以外の言語ではうまくいくとは思わない。たとえば、this related questionへの応答を参照してください。

Double-Metaphoneは、SoundexやMetaphoneよりもはるかに複雑なバリエーションを扱う試みであり、さまざまな言語の不規則性を処理するように設計されています。あなたのニーズには十分かもしれません。リンクされたページには、ライブラリの実装のリストがあります。

Luceneの他の言語のサポートは、Analyzersという概念に基づいています。 Luceneには、さまざまな言語のアナライザが付属しています(デフォルトリストは見つかりませんでした)が、品質はquite variableです。

+0

Lucene + analyserのように見えますが、本当にありがとうございます。 :) –

+0

中国語、日本語、アラビア語、インド語はどうですか? – Sharique

0

Soundexの記事から始まるWikipediaの参考文献がいくつかあります。このような多種多様な言語を扱うように設計された既存のライブラリがあるかどうかはわかりません。

+0

そこに引用されているすべての情報は、ヨーロッパ名の英和スペルを処理するアルゴリズムを指しています。私は間違って理解しない限り、実際に特殊文字をそのまま扱うものは見ていません。 –

+1

私は、Soundexの亜種の中には、他の言語とうまく機能するように設計されているものもあるかもしれないと思っていましたが、英語やアンリライズのスペルに集中しています。 これらの言語のそれぞれについて、Soundexのようなものを書くのは難しくありませんが、ネイティブスピーカーでなければ、おそらく言語学者の助けが必要です。 –

関連する問題