0
点赞
收藏
分享

微信扫一扫

python-Levenshtein几个计算字串相似度的函数解析

清冷的蓝天天 2022-03-12 阅读 92


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

pip install python_Levenshtein


Python代码

import Levenshtein

distance = Levenshtein.distance('abc','acb')
print(distance)

#result is 2



python-Levenshtein几个计算字串相似度的函数解析_算法

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

1. Levenshtein.hamming(str1, str2)

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

python-Levenshtein几个计算字串相似度的函数解析_python_02

2. Levenshtein.distance(str1, str2)

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

python-Levenshtein几个计算字串相似度的函数解析_python_03

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

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,就可以解决这个问题。

python-Levenshtein几个计算字串相似度的函数解析_jar_04

4. Levenshtein.jaro(s​1​, s​2​)

计算jaro距离

python-Levenshtein几个计算字串相似度的函数解析_算法_05

其中的​m​为s​1​, s​2​的匹配长度,当某位置的认为匹配 当该位置字符相同,或者在不超过python-Levenshtein几个计算字串相似度的函数解析_jar_06

         t是调换次数的一半

5. Levenshtein.jaro_winkler(s​1​, s​2​)

计算Jaro–Winkler距离python-Levenshtein几个计算字串相似度的函数解析_算法_07

​​Levenshtein全部函数链接​​

​​Jaro–Winkler distance链接​​


时间会记录下一切。


举报

相关推荐

NLP:文本相似度计算

hanlp词语相似度计算_CodingPark

0 条评论