串的Soundex值


在学习文本函数的时候,碰到了这样一个函数

Soundex()这个函数是返回串的Soundex值,那什么是Soundex值呢?

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

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

那么如何得出串的Soundex值呢?

其实Soundex()函数的算法是这样的:

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

例如hello实行第一部后得到的结果是H0440。

2.把第一步得到的结果去掉0,对于紧挨着并且重复的字符只保留一个。

例如第一步得到的H0440就变成了H4。

3.返回至少四个字符(多于四个字符全部返回),不足四位的补0

则hello的Soundex值为H400。

再例如quaddratically,经过第一步变成Q003603020440,经过第二步变成Q36324(虽然有两个3,但是没有紧挨着),第三步,Q36324大于四个字符,则全部返回,则quaddratically的soundex值是Q36324。

在这里插入图片描述

在数据库的处理中为什么会需要Soundex( )函数呢?

假设对于某个数据,本来的内容是Y.Lie,但是由于输入错误,输成了Y.Lee,这个时候我们就可以使用Soundex()函数。
在这里插入图片描述

例如在第一个例子中我们查找Y.Lie,但是没有检索结果,因为Y.Lie 和Y.Lee发音相似。如果我们找和Y.Lie的Soundex值相同的列,就很有可能检索出我们想要的结果的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值