首页 > 编程语言 >python Levenshtein—计算字符串相似性

python Levenshtein—计算字符串相似性

时间:2023-05-28 20:35:10浏览次数:44  
标签:cutoff python s2 s1 Levenshtein 序列 score 相似性

参考:https://maxbachmann.github.io/Levenshtein/

Levenshtein 距离,也称编辑距离,是一种字符串度量,用于衡量两个序列之间的差异。通俗地说,两个字符串之间的 Levenshtein 距离是将一个字符串更改为另一个字符串所需的最小单字符编辑(插入、删除或替换)次数。python Levenshtein中包括以下module:

1. distance—计算将一个序列更改为另一个序列所需的最少插入、删除和替换次数

Levenshtein.distance(s1s2*weights=(1, 1, 1)processor=Nonescore_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(s1s2*processor=Nonescore_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(s1s2*processor=Nonescore_cutoff=None)

参数解释:

  • s1,s2:表示要比较的两条序列
  • score_cutoff: 设置s1和s2之间的最大距离。如果距离大于score_cutoff,则返回score_cutoff+1
>>> Levenshtein.hamming("abdcd","adged")
3
>>> Levenshtein.hamming("abdcderg","adcg") #这里比较奇怪的是,我使用两个不同长度的s1和s2,并不会报错,这与官网的说法不一致。
7

 

标签:cutoff,python,s2,s1,Levenshtein,序列,score,相似性
From: https://www.cnblogs.com/chaimy/p/17429041.html

相关文章

  • 安装不同版本的Python,并用不同指令运行想要运行的那个版本的python
    1、安装所需版本的Python,注意与其他版本的Python放在不同的文件夹下;例如这里我分别安装了Python2.7和Python3.7在D盘的两个文件夹中。2、设置这两个Python的环境变量,分别定位到这两个版本python.exe所在的目录下 3、将两个目录下的python.exe分别修改为python2.exe和python3......
  • Python asyncio之协程学习总结
    实践环境Python3.6.2什么是协程协程(Coroutine)一种电脑程序组件,该程序组件通过允许暂停和恢复任务,为非抢占式多任务生成子程序。协程也可以简单理解为协作的程序,通过协同多任务处理实现并发的函数的变种(一种可以支持中断的函数)。下面,我们通过日常生活场景为例,对什么是协程......
  • python内置库--secrets
    1关于secretssecrets模块用于生成高度加密的随机数,安全性比较高,应用方面有生成安全的随机数、生成密码字符串等python官方也推荐最好用secrets替代random模块,random模块生成的是一种伪随机数,基于系统时钟和其它可预测原理生成,不是真正随机和安全的2相关函数和类class......
  • 报错ImportError: cannot import name 'Iterable' from 'collections' in Python
    参考https://stackoverflow.com/questions/72032032/importerror-cannot-import-name-iterable-from-collections-in-python答案为3.10版本的python把Iterable从collections去除了,原答案粘贴如下:文字版和截图 TheIterableabstractclasswasremovedfromcollectionsin......
  • 使用Python实现分布式爬虫
    使用Python实现分布式爬虫在Web爬虫中,分布式爬虫已经成为一种流行的技术,可以帮助我们快速地收集互联网上的数据。下面我们将介绍如何使用Python实现分布式爬虫。什么是分布式爬虫?分布式爬虫是指将爬虫任务分配给多个计算机节点执行,以提高爬取效率和稳定性的一种技术。分布式爬虫通......
  • python - 进程与线程 -2
    1.线程一个进程可以包含多个线程,一条线程就是进程中一个单一顺序的控制流。一个进程中可以并发多个线程,每条线程执行不同的任务。1.1使用Thread创建线程importthreadingimporttimedeftask():foriinrange(3):time.sleep(1)print(f"线程名:{th......
  • Python+Requests零基础系统掌握接口自动化测试
    Python+Requests零基础系统掌握接口自动化测试download:3wzxit666com设计高性能的售票系统在当今数字化时代,一个高性能的售票系统对于任何企业或机构来说都是至关重要的。无论该系统服务于电影院、剧院、运输公司还是其他类型的场所,它必须始终可靠、快速和易于使用。以下是几个要......
  • python -- 解决连接sqlserver出现的“ pymssql._pymssql.OperationalError: (20009, b
     因为工作关系,近期需要用python连接sqlserver处理一些数据问题。由于笔记本上的软件是新安装的,所以有些配置避免不了重新设置,期间遇到一些小问题,记录一下。 下面正式开始写一段代码,测试sqlserver数据库连接importpymssql#写法1#conn=pymssql.connect(host='localho......
  • python3-int
    1、介绍builtins.py文件中定义了int类,用于处理python中整数数据。int也是python的基本数据类型之一。2、类和初始化classint(object):def__init__(self,x,base=10):3、初始化(1)字面量初始化支持十进制、二进制、八进制和十六进制#十进制#a=15#a1=-15#......
  • python3-bool
    1、介绍builtins.py文件中定义了bool类,用于处理python中逻辑真和假。bool也是python的基本数据类型之一。2、类和初始化classbool(int):def__init__(self,x):pass3、初始化(1)字面量初始化可选值为True和False,注意大小写敏感a=Truea1=Falseprint......