Soundex语音算法

在看《编程珠玑》变位词程序的时候看到签名算法的思想非常好...

Soundex是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用Soundex做类似模糊匹配的效果。

之前做过模糊匹配,用的是正则表达式。但显然,用签名算法的效率更高。

 

算法简要说明

  • 将英文字按以下规则替换(除第一个字符外):
   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

 http://zh.wikipedia.org/wiki/Soundex

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值