编码 | 音素 | 匹配

> metaphone | 音素 | 声音 <

// Metaphone —— 按单词发音建立索引的英文字词音素算法

0 字符
0 字符
[PHONETIC]

基于读音

根据发音而不是拼写对单词进行编码。

[FUZZY]

模糊匹配

找到读音相近、拼写不同的单词。

[ENGLISH]

针对英语优化

专为英语发音规则设计的算法。

>> 技术说明

Metaphone 的工作原理

Metaphone 是一种基于英语发音的音素编码算法。它通过一系列转换规则,将字母及字母组合映射为音素代码。读音相似的单词会产生相同的代码,非常适合用于模糊匹配、拼写检查以及在数据库中按读音匹配人名。

为什么使用 Metaphone

  • 在数据库中按读音匹配人名,即使拼写不同
  • 拼写检查与自动纠错建议
  • 应用中的模糊搜索和相似查询
  • 家谱与族谱研究中处理姓氏变体
  • 语音识别与语音处理相关场景

Metaphone 示例

常见转换:\nPH → F (phone → FON)\nCH → X (church → XRCH)\nC+E/I/Y → S (center → SNTR)\nG+E/I/Y → J (george → JRJ)\n\n读音相近的单词:\nSmith → SM0\nSmythe → SM0\nSchmidt → XMT\n\nKnight → NT\nNight → NT\n\nCough → KF\nCoffee → KF

>> 常见问题

Metaphone 是什么?

Metaphone 是 Lawrence Philips 于 1990 年提出的一种音素编码算法。相比 Soundex,它使用了更复杂的规则,更贴合英语的实际发音模式。

Metaphone 与 Soundex 有何不同?

Metaphone 使用更精细的规则,并考虑字母的位置和组合。相较于最初为姓氏设计、使用简单数字代码的 Soundex,Metaphone 在英语单词上的匹配效果更准确。

Metaphone 编码通常用在什么场景?

Metaphone 编码常用于拼写检查、搜索引擎、数据库去重、家谱研究,以及任何需要将“读音相似但拼写不同”的单词匹配在一起的应用。

Metaphone 是否只适用于一种语言?

是的,Metaphone 主要针对英语发音设计。对于其他语言,更适合的可能是 Cologne phonetic(德语)或 Caverphone(新西兰英语)等算法。

// 速查表

LettersCode说明
PHFPH → F
TH0TH → 0 (zero = “th”)
SH, CHXSH, CH → X
KN GN PN AE WR—drop first letter at word start
WHWWH → W at word start
C + I/E/YSC → S, otherwise K
DG + I/E/YJDG → J
A E I O U—vowels kept only at word start

// algo

word -> upper-case letters only
1. apply initial-letter rules (KN, GN, PN, AE, WR, WH, X)
2. scan left to right, mapping letters by the rule table
3. skip duplicate adjacent letters (except C)
4. drop vowels unless first letter
5. output = remaining codes

>> 更多问题

问:什么是 Metaphone 算法?

答:Metaphone 由 Lawrence Philips 于 1990 年提出,按英语发音规则把单词转换为语音编码,发音相近的词得到相同编码。

问:Metaphone 与 Soundex 有何区别?

答:Soundex 只用字母分组,得到固定 4 位编码;Metaphone 使用上下文规则(如 PH → F、KN → N),生成变长字母编码,对英文名字区分更精确。

问:Metaphone 编码中的“0”是什么意思?

答:0 传统上表示“th”音(如 think),用来区分 TH 与 T,并不是 Soundex 那样的数字。

已复制!