首页 / 知识
关于模糊搜索:基于Levenshtein距离的方法与Soundex
2023-04-14 02:20:00

Levenshtein distance based methods Vs Soundex根据相关主题中的注释,我想知道为什么基于Levenshtein距离的方法比Soundex更好。 Soundex相当原始-它最初是为手动计算而开发的。它导致可以比较的键。 Soundex最初是为美国人口普查数据开发的,因此与西方名称配合得很好。用于语音比较。 Levenshtein距离查看两个值,并根据它们的相似性产生一个值。它正在寻找丢失或替换的字母。 基本上,Soundex更好地发现" Schmidt"和" Smith"可能是同一个姓。 Levenshtein距离更适合于发现用户输入了错误的" Levnshtein";-) 我建议使用Metaphone,而不是Soundex。如前所述,Soundex是在19世纪为美国名字开发的。在检查"说出来"并以语音进行拼写的不良拼写者的工作时,Metaphone会给您一些结果。 编辑距离擅长捕捉重复的字母,换位的字母或敲错键等拼写错误。 考虑Metaphone补充Levenshtein提出的建议,然后由应用程序决定最适合您的用户(或同时使用)。 关于原始问题,我已经在信息检索应用程序中成功使用了n-gram。 我对Daitch-Mokotoff表示同意,Soundex有偏见,因为最初的美国人口普查人员想要"美国化"名称。 也许有一个区别的例子会有所帮助: Soundex将附加值放在单词的开头-实际上,它仅考虑前4种语音。因此,尽管" Schmidt"和" Smith"将与" Smith"和" Wmith"匹配。 Levenshtein的算法更适合查找错别字-一个或两个丢失或替换的字母产生较高的相关性,而这些丢失字母的语音影响则不那么重要。 我认为这两者都不是更好的选择,并且我会考虑一种距离算法和一种语音算法,以帮助用户纠正键入的输入。 @Keith: 正如我在另一个问题上发布的那样,戴奇-莫科托夫(Daitch-Mokotoff)对我们欧洲人更好(我会说美国)。 我也阅读了Levenshtein上的Wiki。但是我不明白为什么(在现实生活中)对于用户而言,它比Soundex更好。 |
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python中字典合并的实现方法
Python中字典合并的实现方法,培训,结果,以上,版本,字典,方法,函数,下面,背景,发现,TableofContents背景Methon1:适用于Python3.5及以上版本呢M学习python的三种方法
学习python的三种方法,项目,代码,公司,时间,工程,培训,中级,初级,资料,第一,Python的用途十分广泛,不同的程序员将其用于不用的领域,不同的程序Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python 多线程死锁问题的巧妙解决
Python 多线程死锁问题的巧妙解决方法,异常,持有,代码,情况,信息,管理,数据,包装,策略,预期,死锁死锁的原理非常简单,用一句话就可以描述完。列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_Python自定义模块导入方法
Python自定义模块导入方法,位置,代码,培训,模块,目录,方法,语句,函数,实例,以上,Python模块是一个Python文件,以.py结尾,包括了Python对象定义