在Windows下,python-Lev
(1)首先下载python-Levenshtein 网址:https://pypi.python.org/pypi/python-Levenshtein/0.10.2
(2)在切换到第三方包所在目录下,执行pip setup.py install 的命令后,报错“microsoft visual c++ 9.0 is required“,这是因为:Windows下使用pip安装包的时候,需要机器装有VS2008或VS2010才行, 如果不想装VS,可以安装一个Micorsoft Visual C++ Compiler for Python 2.7的包。下载网址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266
(3)然后再cd /d +文件目录 执行pip setup.py install 命令。
(4)验证Levenshtein是否安装成功。from Levenshtein import*;看是否报错。
(5)简单的实现代码
注意若使用”from Levenshtein import*“导入,则在调用函数时,不用加Levenshtein;
Levenshtein.distance(str1,str2)函数
计算编辑距离是描述一个字符串转化成另一个字符串最少的操作次数,在其中的操作包括插入、删除、替换。
>>>distance('abc','ac')
>1 由abc删除b得到ac操作一次
>distance('kitten','sitting')
>3 kitten(k先替换为s)sitten(e替换为i)sittin(最后添加g)sitting
>>>ratio('abc','ac')
>0.8
Levenshtein.hamming(str1,str2)函数
计算汉明距离。要求str1和str2必须长度一致。是描述两个等长字符串之间对应位置上不同字符的个数。
>>>hamming('abc','cba')
>2
>>>hamming('abc','cam')
>3
Levenshtein.distance(str1,str2)
计算莱文斯坦比。计算公式r = (sum-Idist)/sum, 其中sum是指str1和str2字串的长度总和,Idist是类编辑距离:这里的类编辑距离不是1中所说的编辑距离,1中三种操作中每个操作+1,而此处,删除,插入依然+1,但是替换+2
这样设计的目的:ratio(‘a’,’c’), sum = 2,按1中的计算为(2-1)/2 = 0.5, 但是‘a’,’c’显然没有重合,不合算,但是替换操作+2,就可以解决这个问题。
>>>ratio('abc','abc') (6-0)/6=1
>1.0
>>>ratio('abc','ab') (6-1)/6=0.8
>0.8
>>>ratio('abc','abd') (6-2)/6=0.6666666666
>0.66666666666
(6)编辑距离实现要动态规划:参考:https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341