音韻一致
音韻一致アルゴリズムは、トークンをエンコードして、発音が似ている異なるスペルが一致するように使用できます。
アルゴリズムの概要と比較については、http://en.wikipedia.org/wiki/Phonetic_algorithm と http://ntz-develop.blogspot.com/2011/03/phonetic-algorithms.html を参照してください。
Beider-Morse 音韻一致 (BMPM)
アナライザでのこのエンコーディングの使用方法の例については、「フィルタの説明」セクションのBeider Morse フィルタを参照してください。
Beider-Morse 音韻一致 (BMPM) は、新しい音韻一致システムを使用して検索できる「類似音」ツールです。BMPM は、Solr インデックスで個人名(または姓のみ)を検索するのに役立ち、Soundex、Metaphone、Caverphone などの既存の音韻コーデックよりもはるかに優れています。
一般的に、音韻一致を使用すると、目的の名前と音韻的に等価な名前を名前リストから検索できます。BMPM は、正確なスペルは必要ないという点で Soundex 検索に似ています。Soundex とは異なり、大量の誤検出が発生しません。
BMPM は、名前のスペルから言語を特定しようとします。次に、その特定の言語の phonetic rules を適用して、名前を phonetic alphabet に転写します。ある程度の確実性で言語を特定できない場合は、代わりに汎用 phonetic を使用します。最後に、有声子音と無声音子音、母音などの言語に依存しないルールを適用して、一致の信頼性をさらに高めます。
例えば、データベースでStephenを検索した結果見つかった一致が、「Stefan」、「Steph」、「Stephen」、「Steve」、「Steven」、「Stove」、「Stuffin」だったとします。「Stefan」、「Stephen」、「Steven」はおそらく関連性があり、表示したい名前です。「Stuffin」はおそらく関連性がないでしょう。「Steph」、「Steve」、「Stove」も拒否されました。そのうち「Stove」はおそらく表示したくないものです。しかし、「Steph」と「Steve」は、興味を持つ可能性のあるものです。
Solrでは、以下の言語に対してBMPM検索が利用可能です。
-
英語
-
フランス語
-
ドイツ語
-
ギリシャ語
-
ヘブライ語(ヘブライ文字表記)
-
ハンガリー語
-
イタリア語
-
ポーランド語
-
ルーマニア語
-
ロシア語(キリル文字表記)
-
ロシア語(英語文字表記のラテン文字転写)
-
スペイン語
-
トルコ語
この名前照合は、これらの言語が話されている国のユダヤ系ではない姓にも適用可能です。
詳細は、こちらを参照してください:http://stevemorse.org/phoneticinfo.htm と http://stevemorse.org/phonetics/bmpm.htm。
Daitch-Mokotoff Soundex
アナライザでこのエンコーディングを使用するには、「フィルタの説明」セクションのDaitch-Mokotoff Soundexフィルタを参照してください。
Daitch-Mokotoff Soundexアルゴリズムは、RusselとAmerican Soundexアルゴリズムを改良したもので、特に発音は似ているがスペルが異なるスラヴ系やイディッシュ系の姓の一致精度を高めています。
他のSoundexのバリアントと比較した主な違いは次のとおりです。
-
コード化された名前は6桁です。
-
名前の最初の文字がコード化されます。
-
複数文字のn-gramをコード化するルールがあります。
-
同じ名前に対して複数のエンコーディングが可能(分岐)です。
注:Solrで使用されている実装(commons-codecのDaitchMokotoffSoundex
)には、アルゴリズムの元の説明と比較して、追加の分岐ルールがあります。
Double Metaphone
アナライザでこのエンコーディングを使用するには、「フィルタの説明」セクションのDouble Metaphoneフィルタを参照してください。
または、Phoneticフィルタでencoder="DoubleMetaphone"
を指定することもできますが、Phoneticフィルタのバージョンでは、一部のトークンに対してDouble Metaphoneフィルタによって生成される2番目の(「代替」)エンコーディングは**提供されません**。
Lawrence Philipsによるダブルメタフォンアルゴリズムを使用してトークンをエンコードします。http://www.drdobbs.com/the-double-metaphone-search-algorithm/184401251?pgno=2で元の論文を参照してください。
Metaphone
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="Metaphone"
を指定します。
Lawrence PhilipsによるMetaphoneアルゴリズムを使用してトークンをエンコードします。これは、Computer Language誌1990年12月号の「Hanging on the Metaphone」で説明されています。
詳細については、Lawrence PhilipsによるDouble Metaphone Search Algorithmも参照してください。
Soundex
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="Soundex"
を指定します。
Soundexアルゴリズムを使用してトークンをエンコードします。これは、類似の名前を関連付けるために使用されますが、同様のフォネムを持つ単語を見つけるための汎用スキームとしても使用できます。
http://en.wikipedia.org/wiki/Soundexも参照してください。
Refined Soundex
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="RefinedSoundex"
を指定します。
Soundexアルゴリズムの改良版を使用してトークンをエンコードします。
http://en.wikipedia.org/wiki/Soundexを参照してください。
Caverphone
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="Caverphone"
を指定します。
Caverphoneは、オタゴ大学のCavershamプロジェクトによって作成されたアルゴリズムです。このアルゴリズムは、ニュージーランド、ダニーデン市南部のアセントに最適化されています。
http://en.wikipedia.org/wiki/Caverphoneと、http://caversham.otago.ac.nz/files/working/ctp150804.pdfにあるCaverphone 2.0仕様を参照してください。
Kölner Phonetik(別名Cologne Phonetic)
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="ColognePhonetic"
を指定します。
1969年にHans Joachim Postelによって発表されたKölner Phonetikアルゴリズムは、ドイツ語に最適化されています。
NYSIIS
アナライザでこのエンコーディングを使用するには、Phoneticフィルタでencoder="Nysiis"
を指定します。
NYSIISは、類似の名前を関連付けるために使用されるエンコーディングですが、同様のフォネムを持つ単語を見つけるための汎用スキームとしても使用できます。