将Text::Metaphone用于“音似”的文本匹配操作

ZDNet软件频道 时间:2003-12-12 作者:ZDNet China |  我要评论()
本文关键词:Metaphone
Metaphone Algorithm为输入的文字提供了一个英语语音发声散列。它会根据字的发音而不是拼写生成代码。这就让发音类似但是拼写不同的字实现“模糊匹配”成为可能。
本文译自Builder.com,未经许可请勿转载

Metaphone Algorithm为输入的文字提供了一个英语语音发声散列(hash)。换句话说,它会根据字的发音而不是拼写生成代码。这就让发音类似但是拼写不同的字(比如Smith和Smythe)实现“模糊匹配(fuzzy matches)”成为可能。Metaphone Algorithm在概念上和Soundex像似,但是前者在发音的处理(方法)上要丰富得多。

Text::Metaphone模块简单易用。你输入一个要被编码的字,它就会返回编码的结果。你可以将最大音位*长度作为第二个参数,从而选择限制编码结果的长度。普遍接受的方案是,一个四字符的代码最适合于匹配大多数名字和英语字。

下面的例子会从命令行里读取一个或者多个字,并返回每个字的Metaphone散列:

use Text::Metaphone;

for (@ARGV)
{
    print "$_ = " . Metaphone($_) . " ";
}

由于Metaphone会把所有的字都映射进一个相对较小的散列空间里,所以如果有一大串类似的字,它就会开始分解。

必须匹配文本的任何应用程序都可以从Metaphone Algorithm受益。一个允许“模糊”文本匹配的系统,将有助于提供用户支持、字典(词条)查询、Web搜索,或者建立系谱等。

Metaphone Algorithm让发音相像但是拼写不同词进行匹配变容易了。

*译者注:音位或者叫音素,语言中最小的语音单位,可以表达意义上的区别,如英语里 mat中的m和bat中的b。


本文作者:James Brown具有20年的行业开发专长和经验,拥有多重工作背景,包括数字硬件设计,网络操作系统开发和分布式计算等。




责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134