python Levenshtein—计算字符串相似性
参考:https://maxbachmann.github.io/Levenshtein/
Levenshtein 距离,也称编辑距离,是一种字符串度量,用于衡量两个序列之间的差异。通俗地说,两个字符串之间的 Levenshtein 距离是将一个字符串更改为另一个字符串所需的最小单字符编辑(插入、删除或替换)次数。python Levenshtein中包括以下module:
1. distance—计算将一个序列更改为另一个序列所需的最少插入、删除和替换次数
Levenshtein.distance(s1, s2, *, weights=(1, 1, 1), processor=None, score_cutoff=None)
参数解释:
- s1,s2:表示要比较的两条序列
- weights: 插入、删除或替换操作的权重。默认是(1, 1, 1)
- score_cutoff: 设置s1和s2之间的最大距离。如果距离大于score_cutoff,则返回score_cutoff+1
返回两个序列整数类型的距离值
>>> import Levenshtein
>>> Levenshtein.distance("abdcderg","adcg")
4
2. ratio—计算 [0, 1] 范围内的归一化插入缺失相似度
Levenshtein.ratio(s1, s2, *, processor=None, score_cutoff=None)
参数解释:
- s1,s2:表示要比较的两条序列
- score_cutoff: 分数阈值的可选参数,0 到 1.0 之间的浮点数。对于 norm_sim < score_cutoff ,则返回0
返回两个序列[0,1]范围的标准化相似性,其值等于1 - normalized_distance
>>> Levenshtein.ratio("abdcderg","adcg")
0.6666666666666667
>>> Levenshtein.ratio("abdcderg","adcg",score_cutoff=0.7)
0.0
3. hamming—计算两个长度相同的字符串之间的汉明距离
汉明距离是指两个序列不同的位置个数。它描述了将s1 转换为 s2 所需的最小替换量。
Levenshtein.hamming(s1, s2, *, pad=True, processor=None, score_cutoff=None)
参数解释:
- s1,s2:表示要比较的两条序列
- score_cutoff: 设置s1和s2之间的最大距离。如果距离大于score_cutoff,则返回score_cutoff+1
- pad(bool ,可选):如果长度不同,是否应填充字符串。如果 pad 为 False 且字符串长度不同,则会引发 ValueError。默认值为 True。
>>> Levenshtein.hamming("abdcd","adged")
3
>>> Levenshtein.hamming("abdcderg","adcg")
7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人