按照这个在相关的线程评论,我想知道为什么基于Levenshtein距离方法比探测法更好.
Soundex相当原始 - 它最初是为手工计算而开发的.它产生了一个可以比较的密钥.
Soundex适用于西方名称,因为它最初是为美国人口普查数据开发的.它用于语音比较.
Levenshtein距离看两个值并根据它们的相似性产生一个值.它正在寻找丢失或替换的字母.
基本上Soundex更适合发现"施密特"和"史密斯"可能是同一个姓氏.
Levenshtein距离更好地发现用户输错了"Levnshtein";-)
我建议使用Metaphone,而不是Soundex.如上所述,Soundex是在19世纪为美国名字开发的.Metaphone会在检查"正在发声"的拼写错误的拼写者的工作时发音,并拼音拼写.
编辑距离很好地捕捉拼写错误,例如重复的字母,转置的字母或敲错键.
考虑使用Metaphone补充Levenshtein提出的建议,确定最适合您的用户的应用程序或同时使用它们的应用程序.
关于原始问题,我在信息检索应用程序中成功使用了n-gram.