Soundex算法

Soundex 是一种 20 世纪在美国人口普查中归档姓氏的方法。它把听起来相似的姓氏归在一起,使得在即便错误拼写的情况下调查者仍能查找到。 Soundex 今天仍然因差不多的原因被应用着,当然现在用计算机数据库服务器了。 大部分的数据库服务器都有 Soundex 函数。

 

Soundex算法是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用Soundex做类似模糊匹配的效果。例如Knuth和Kant二个字符串,它们的Soundex值都是 K530。更详细的说明参考Donald Knuth大师的名著:电脑程序设计的艺术 (The Art Of Computer Programming) 第三卷排序和搜寻。

 

算法简要说明:

1) 将英文字按以下规则替换(除保留第一个字符外):

   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

2) 去除0,对于重复的字符只保留一个

3) 返回前4个字符,不足4位以0补足

 

以Knuth和Kant为例:

Knuth -> K5030 -> K53 -> K530
Kant  -> K053  -> K53 -> K530

 

你可能感兴趣的:(C++,c,算法,C#,F#)