// MRA - 賢い氏名照合のための Match Rating Approach アルゴリズム
名前同士の数値的な類似度を計算します。
先頭 3 文字と末尾 3 文字を使った最適化コード。
名前の長さに応じて閾値を自動調整します。
Match Rating Approach (MRA) は、1977 年に Western Airlines によって開発された音声アルゴリズムです。名前のエンコードでは、最初の文字を除く母音を削除し、連続する同じ子音を取り除き、結果を 6 文字(長い場合は先頭 3 文字 + 末尾 3 文字)に短縮します。比較フェーズでは、コードの先頭と末尾から文字を比較して類似度を計算し、2 つのコードの合計長に応じてマッチの閾値を調整します。
エンコード手順:
1. 最初の文字を除き、母音を削除
2. 連続する同じ子音を削除
3. 長さが 6 を超える場合は、先頭 3 文字 + 末尾 3 文字のみ保持
例:
CATHERINE → CTHRN
C[a]TH[e]R[i]N[e] → CTHRN
KATHERINE → KTHRN
K[a]TH[e]R[i]N[e] → KTHRN
SMITH → SMTH
SM[i]TH → SMTH
マッチ閾値:
合計長 ≤ 4: 5 文字一致が必要
合計長 5–7: 4 文字一致が必要
合計長 8–11: 3 文字一致が必要
合計長 ≥ 12: 2 文字一致が必要
CTHRN vs KTHRN:
合計長 = 10、必要一致数 = 3
実際: 4 文字一致 → MATCH!
Match Rating Approach (MRA) は、Western Airlines が 1977 年に旅客氏名のマッチングのために開発した音声アルゴリズムです。エンコードと比較の 2 つのフェーズを組み合わせ、名前に対する音声コードと類似度スコアの両方を提供します。
Soundex や Metaphone がコードのみを生成するのに対し、MRA には類似度スコアを計算する高度な比較アルゴリズムが含まれています。名前の長さに応じてマッチング閾値を調整するため、さまざまな種類の名前に対して柔軟かつ高精度です。
類似度スコアは、2 つの MRA コードを先頭と末尾から比較したときに一致する文字数を表します。必要となる最小スコアはコードの合計長によって変化し、短い名前ほどマッチと見なされるために高い類似度が必要になります。
MRA は、きめ細かな氏名マッチングが必要なユースケースに最適です。例えば、顧客データベース、家系調査、不正検知、レコードリンクなどです。異なる綴りを持つ重複候補を見つける際に特に効果的です。