首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Windows下,python-Lev

在Windows下,python-Lev

作者头像
py3study
发布2020-01-09 10:11:29
4930
发布2020-01-09 10:11:29
举报
文章被收录于专栏:python3python3

(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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档