// MRA - 面向智能姓名匹配的 Match Rating Approach 算法
计算姓名之间的数值相似度分数。
使用前 3 位和后 3 位生成紧凑编码。
根据姓名长度自动调整匹配阈值。
Match Rating Approach(MRA)是 Western Airlines 在 1977 年提出的姓名语音匹配算法。它先通过删除元音(首字母除外)、去重连续辅音,并将结果压缩为最多 6 个字符(长度超过 6 时取前 3 + 后 3),得到姓名的 MRA 代码;在比较阶段,则从首尾两个方向对代码进行字符比对,根据两个代码的总长度动态计算匹配阈值,从而判断是否“匹配”。
编码步骤:
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 年提出。它将编码阶段与比较阶段结合起来,为每个姓名生成语音代码,并给出两个姓名之间的相似度评分。
与只生成代码的 Soundex 或 Metaphone 不同,MRA 包含一套更复杂的比较算法,用于计算相似度分数;它会根据姓名长度自动调整匹配阈值,因此在不同类型姓名上更灵活、更准确。
相似度评分是指对两个 MRA 代码从首尾进行比对时,匹配字符的数量。所需的最低分数取决于代码总长度——越短的姓名,需要越高的相似度才能被视为“匹配”。
MRA 非常适合需要精细姓名匹配的场景,例如客户数据库去重、家谱和族谱研究、欺诈检测以及跨系统记录关联,尤其适合识别不同拼写形式下的潜在重复记录。