Soundex
维基百科,自由的百科全书
Soundex是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用Soundex做类似模糊匹配的效果。例如Knuth和Kant二个字符串,它们的Soundex值都是 K530。更详细的说明参考Donald Knuth大师的名著:电脑程序设计的艺术 (The Art Of Computer Programming) 第三卷排序和搜寻。
[编辑] 算法简要说明
- 将英文字按以下规则替换(除第一个字符外):
a e h i o u w y -> 0 b f p v -> 1 c g j k q s x z -> 2 d t -> 3 l -> 4 m n -> 5 r -> 6
- 去除0,对于重复的字符只保留一个
- 返回前4个字符,不足4位以0补足
以Knuth和Kant为例:
Knuth -> K5030 -> K53 -> K530 Kant -> K053 -> K53 -> K530