计算两个字符串的相似度

应用场景:拼写纠错、文本去重、上下文相似性、不同来源数据对比

python中有比较相似度的模块 difflib,相关函数为difflib.SequenceMatcher().quick_ratio()

说明:difflib库的SequenceMatcher类的quick_ratio()方法,其功能为比较文本的距离,并把结果量化成[0,1]之间,相同的时候返回1,没有相同片段返回0。

语法:SequenceMatcher(None,s1,s2).quick_ratio()

(1)None参数是一个函数,用来去掉不需要比较的字符。

(2)s1,s2参数为两个需要计算相似度的字符串。

(3)函数返回值在0-1之间,如果为1则认为完全相等。

(4)quick_ratio()方法,计算公式如下:

计算所有匹配片段的长度之和T(区别于最大匹配长度),匹配度等于 

例如:s1 = 'abcdlijkfg'

s2 = 'abcdefgm'

s1和s2可匹配的最大长度为 4,而所有匹配片段的长度之和T为 5

下面是例子:

import difflib
"""
计算两个字符串的相似度
输入:s1,s2 字符串
输出: 浮点型相似度
"""
def string_similar(s1, s2):return difflib.SequenceMatcher(None, s1, s2).quick_ratio()print(string_similar('我在中国人民大学', '我在人民大学'))
print(string_similar('我在人民大学', '我在中国人民大学'))
print(string_similar('我在人民大学中国', '我在中国人民大学'))
m1= '我在中国人民大学'
m2='我在北京中国人民大学's_num=string_similar(m1,m2)if s_num>0.8:lenS1 = len(m1)lenS2 = len(m2)if lenS1>lenS2:print(m1)else:print(m2)
运行结果:
0.8571428571428571
0.8571428571428571
1.0
我在北京中国人民大学

Python中相似度对比-difflib模块相关推荐

  1. Python中常用的数据分析工具(模块)有哪些?

    本期Python培训分享:Python中常用的数据分析工具(模块)有哪些?Python本身的数据分析功能并不强,需要安装一些第三方的扩展库来增强它的能力.我们课程用到的库包括NumPy.Pandas. ...

  2. Python中计算程序的运行时间——timeit模块

    Python中计算程序的运行时间--timeit模块 绪论 一.timeit的基本用法 1.1 timeit.timeit()函数: 创建一个Timer实例,并运行代码进行计时,默认将代码执行一百万次 ...

  3. Python中os与sys两模块的区别

    <os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...

  4. python 中文件输入输出及os模块对文件系统的操作

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...

  5. python中sin函数在哪个模块中_从零开始第5步:Python 函数和模块

    ▍『1』函数 当代码出现有规律的重复的时候,可以使用函数.函数是对代码的封装复用,也可以看成是功能的抽象. 函数通过def关键字定义,def关键字后跟一个函数的标识符,然后跟一对圆括号.圆括号之中可以 ...

  6. 三十、深入Python中的Pickle和Json模块

    @Author: Runsen 听过Python序列化pickle和Json标准库吗? pickle pickle模块是以二进制的形式序列化后保存到文件中(保存文件的后缀为".pkl&quo ...

  7. 二十六、深入Python中的time和datetime模块

    @Author: Runsen time和datetime是Python处理日期和时间的标准库.在我们项目的实际开发当中使用率是非常高的.datetime模块有四个重要的类,date,time,dat ...

  8. 在python中使用什么工具管理模块_怎么使用Python pip(管理模块工具)

    怎么使用Python pip(管理模块工具) 发布时间:2020-08-26 16:04:26 来源:亿速云 阅读:71 作者:Leah 本篇文章给大家分享的是有关怎么使用Python pip(管理模 ...

  9. python中的pymysql_(转)Python中操作mysql的pymysql模块详解

    原文:https://www.cnblogs.com/wt11/p/6141225.html https://shockerli.net/post/python3-pymysql/----Python ...

最新文章

  1. 全球气候变迁 物联网技术为农业保驾护航
  2. 《Head First Python》第四章--持久存储
  3. DXperience,不能不爱
  4. os-enviroment
  5. ros学习(1)工作空间创建和功能包
  6. mysql mysql_set_charset_SQL注入攻击之 mysql_set_charset [转]
  7. python oop编程_23 Python - 面向对象编程OOP
  8. leetcode python3 简单题189. Rotate Array
  9. jni 从c传递map到java_java_jni 本地调用接口DLL的编写样本,涉及数组传递,相关的 和C程序均已包括。 Develop 256万源代码下载- www.pudn.com...
  10. 2022高压电工考试试题及在线模拟考试
  11. php域名重定向跳转,301域名重定向跳转设置(所有方法都在这)
  12. (二)安装SVN服务器,web管理界面
  13. Blender图解教程:用Krita为模型贴花
  14. Python中sorted()排序与字母大小写的问题
  15. 深度学习—数据处理常用代码Python合集
  16. linux下firebox的flash插件
  17. axios拦截器、ElementUI组件的使用
  18. Python jieba库的安装
  19. 组合导航原理-松组合+紧组合概念
  20. 选课系统甘特图(用Excle画甘特图)

热门文章

  1. 解决点击按钮使屏幕横屏,iPad无效
  2. CCIE认证通过率一般是多少?
  3. cmos逻辑门传输延迟时间_用DSLogic 逻辑分析仪 解析出来的IIC协议太完美了!
  4. 把windows里面的文件复制到linux系统中
  5. javascript 23 种设计模式
  6. cucumber Hooks @Before @After 不执行
  7. 【AD常见问题】STM32C8T6最小系统板的间距
  8. fseek、ftell文件操作函数
  9. 怎么关闭电脑的硬盘还原卡
  10. 输入一个字符串内有数字和非数字字符,例如:A123x456...