模糊字符串匹配

时间:2014-09-08 22:24:34

标签: string algorithm search fuzzy-search

我的应用程序中要求模糊匹配用户输入的字符串值与数据存储区。

我基本上试图在将数据添加到系统的过程中找到可能的重复项。

我看过Metaphone,Double Metaphone和SoundEx,我得出的结论是,在处理单个字输入字符串时它们都很好用;但是我试图匹配一个未定义的单词数量(它们实际上是地名)。

我确实考虑过从字符串中拆分每个单词(删除我定义为噪声字的任何单词),然后实现一些逻辑,这些逻辑将决定我的数据存储中哪些地名最匹配(基于算法中的键)我选择);我在这里看到的优势是,我可以选择性地收紧,或者放松匹配标准以适应应用:但是这对我来说似乎有点脏。

所以我的问题是:

1:我是否以正确的方式解决了这个问题,是的,我知道它会非常昂贵;但是(没有深入到实现中)这些信息将来自memcache数据库。

2:那里有没有算法,已经专门用于拼音匹配多个单词?如果是的话,请你提供一些关于它们的信息,如果可能的话,还有它们的优点和局限。

1 个答案:

答案 0 :(得分:0)

您可能需要查看Locality-sensitive Hash,例如Nilsimsa Hash。我使用Nilsimsa在各个城市“散布”craigslists帖子以搜索重复项(注意:我不是CL员工,只是我正在处理的个人项目)。

这些方法中的大多数都不像你想要的那样可调(基本上你可以得到一些松散定义的“编辑距离”度量标准),而且它们不是语音,只是基于字符的。