博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python-Levenshtein几个计算字串相似度的函数解析
阅读量:6916 次
发布时间:2019-06-27

本文共 803 字,大约阅读时间需要 2 分钟。

linux环境下,没有首先安装python_Levenshtein,用法如下:

pip install python_Levenshtein

Python代码

import Levenshteindistance = Levenshtein.distance('abc','acb')print(distance)#result is 2

 

重点介绍几个该包中的几个计算字串相似度的几个函数实现。

1. Levenshtein.hamming(str1, str2)

计算汉明距离。要求str1和str2必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数。如

2. Levenshtein.distance(str1, str2)

计算编辑距离(也成Levenshtein距离)。是描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括插入删除替换。如

算法实现 参考动态规划整理:。

3. Levenshtein.ratio(str1, str2)

计算莱文斯坦比。计算公式  r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的长度总和,ldist是类编辑距离

注意:这里的类编辑距离不是2中所说的编辑距离,2中三种操作中每个操作+1,而在此处,删除、插入依然+1,但是替换+2

这样设计的目的:ratio('a', 'c'),sum=2,按2中计算为(2-1)/2 = 0.5,’a','c'没有重合,显然不合算,但是替换操作+2,就可以解决这个问题。

4. Levenshtein.jaro(s1, s2)

计算jaro距离,

其中的m为s1, s2的匹配长度,当某位置的认为匹配 当该位置字符相同,或者在不超过

         t是调换次数的一半

5. Levenshtein.jaro_winkler(s1, s2)

计算Jaro–Winkler距离

转载地址:http://bqxcl.baihongyu.com/

你可能感兴趣的文章
SD卡分区及取消分区
查看>>
创建VLAN、中继链路和参与以太网捆绑的详细配置和截图
查看>>
健康的办公族作息时刻表
查看>>
新博客地址此博客不再更新baishuchao.github.io
查看>>
Git问题Everything up-to-date解决
查看>>
淘宝Tengine安装指南
查看>>
nginx-mysql-php安装配置
查看>>
div加链接 html给div加超链接实现点击div跳转的方法
查看>>
layer 旋转
查看>>
写一个算法计算n的阶乘末尾0的个数
查看>>
Java正则表达式语法大全
查看>>
apache设置自定义header
查看>>
WPS田字格的做法
查看>>
Linux账号登录安全
查看>>
Linux 基础命令 – watch
查看>>
我的友情链接
查看>>
snavigator安装步骤
查看>>
python抓取jenkins slave信息写道mysql并展现到grafana
查看>>
debian 常用的源
查看>>
博为峰Java技术题-JavaSE 之标识符、注释
查看>>