// Refined Soundex - 複数バリアントに対応した高度な音声エンコード
標準的な Soundex アルゴリズムよりも高い精度を実現します。
Refined 版、Apache 版、SQL Server 版をサポートします。
似た音の子音をインテリジェントにグループ化します。
Refined Soundex は、より高度な文字マッピングを用いることで元の Soundex アルゴリズムを改良し、音声的な類似性をより正確に捉えます。先頭の文字をそのまま保持し、その後の子音を音の特徴に基づいた数字グループとしてエンコードします。アルゴリズムは標準の Refined 版、Apache Commons 実装、SQL Server の SOUNDEX 関数と互換性のあるバリアントの 3 種類を提供します.
Encoding process:
1. Keep first letter
2. Map consonants to digits
3. Remove duplicates
4. Pad with zeros to length
Refined mappings:
B,P � 1
F,V � 2
C,K,S � 3
G,J � 4
Q,X,Z � 5
D,T � 6
L � 7
M,N � 8
R � 9
Examples:
THOMPSON � T81938
T-H[0]-O-M[8]-P[1]-S[9]-O-N[3][8]
JACKSON � J23938
J-A-C[2]-K[3]-S[9]-O-N[3][8]
Apache variant:
Additional mappings for W,Y
SQL variant:
Original Soundex mappings
Refined Soundex は元の Soundex アルゴリズムを拡張したもので、名前に対してより正確な音声エンコードを提供します。実際の発音をよりよく表現するよう改良された子音マッピングを利用します。
Refined Soundex はより多くの数字グループ (0–9) を使用し、より洗練された子音マッピングを採用します。例えば M と N を別のコードとして扱い、元のアルゴリズムより多くの子音の違いを区別します。
最高の精度が必要な場合は標準の Refined バリアントを使用してください。Apache Commons Codec ライブラリとの互換性が必要な場合は Apache バリアントを、SQL Server の SOUNDEX 関数と照合する場合は SQL Server バリアントを選択してください。
Refined Soundex は一般に英語の名前、とくに微妙な発音の違いがある場合により良い精度を提供します。ただし非英語の名前や特定の用途では、Double Metaphone や Daitch-Mokotoff など別のアルゴリズムの方が適している場合もあります。