python利用difflib判断两个字符串的相似度
我们再工作中可能会遇到需要判断两个字符串有多少相似度的情况(比如抓取页面内容存入数据库,如果相似度大于70%则判定为同一片文章,则不录入数据库)
那这个时候,我们应该怎么判断呢?
不要着急,python自带的difflib库就可以帮助我们解决这个问题。
首先,difflib是python自带的,所以不需要安装,直接引用即可。
活不多少,直接上代码
代码如下:
import difflib #判断相似度的方法,用到了difflib库
def get_equal_rate_1(str1, str2):
return difflib.SequenceMatcher(None, str1, str2).quick_ratio() #执行方法进行验证
if __name__ == '__main__':
a = '任正非称,对华为不会出现“断供”这种极端情况,我们已经做好准备了。任正非称,今年春节时,我们判断出现这种情况是2年以后。\
我还有两年时间去足够足够准备了。孟晚舟事件时我们认为这个时间提前了,我们春节都在加班。保安、清洁工、服务人员,春节期间有5000人\
都在加班,加倍工资都在供应我们的战士战斗,大家都在抢时间。(新浪科技)'
b = ' 任正非称,对华为不会出现“断供”这种极端情况,我们已经做好准备了。任正非称,今年春节时,我们判断出现这种情况是2年以后。\
我还有两年时间去足够足够准备了。孟晚舟事件时我们认为这个时间提前了,我们春节都在加班。保安、清洁工、服务人员,春节期间有5000人\
都在加班,加倍工资都在供应我们的战士战斗,大家都在抢时间。'
print(get_equal_rate_1(a, b))
结果为:

可以看到,这两个字符串的形似度为0.978... ...很明显是同一片文章。
通过difflib库,我们就完成了两个字符串相似度的计算,哈哈,简单吧!
希望能帮到需要的人。
python利用difflib判断两个字符串的相似度的更多相关文章
- java中判断两个字符串是否相等的问题
我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写.在java中,用的是eq ...
- 利用编辑距离(Edit Distance)计算两个字符串的相似度
利用编辑距离(Edit Distance)计算两个字符串的相似度 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可 ...
- mysql 判断两个字符串是否存在包含关系-------(1,2,3)与(2,3)
1.这里这个是目前有问题的 #创建FUNCTION DELIMITER ; CREATE FUNCTION `is_mixed`(str1 TEXT, str2 TEXT) RETURN ...
- Java 比较两个字符串的相似度算法(Levenshtein Distance)
转载自: https://blog.csdn.net/JavaReact/article/details/82144732 算法简介: Levenshtein Distance,又称编辑距离,指的是两 ...
- C# 计算两个字符串的相似度
我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. 现在提供一个比较两个字符串相似度的方法. 通过计算出两个字符串的相似度,就可以通过Linq在内 ...
- Levenshtein Distance + LCS 算法计算两个字符串的相似度
//LD最短编辑路径算法 public static int LevenshteinDistance(string source, string target) { int cell = source ...
- C#比较两个字符串的相似度【转】
原文地址:http://www.2cto.com/kf/201202/121170.html 我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. ...
- ✡ leetcode 161. One Edit Distance 判断两个字符串是否是一步变换 --------- java
Given two strings S and T, determine if they are both one edit distance apart. 给定两个字符串,判断他们是否是一步变换得到 ...
- leetcode-242 判断两个字符串是不是 Anagram ?
题目描述 假设给定两个字符串 s 和 t, 让我们写出一个方法来判断这两个字符串是否是字母异位词? 字母异位词就是,两个字符串中含有字母的个数和数量都一样,比如: Example 1: Input: ...
随机推荐
- LR脚本信息函数-lr_get_vuser_ip
lr_get_vuser_ip 返回Vuser的IP地址. char * lr_get_vuser_ip(); lr_get_vuser_ip函数返回Vuser的IP地址. 当执行IP欺骗时,每个Vu ...
- 看到这些常见的android面试题,你慌了吗?
最近参加了一些Android工程师岗位的面试,总结了一些常见的考点,希望能帮到正在面试的你(答案还在整理中)! 1.Java调用函数传入实际参数时,是值传递还是引用传递? 2.单例模式的DCL方式,为 ...
- WINCC 应用与提高(78讲15.98G)视频教程网盘下载
收集与网络,供参考. https://blog.csdn.net/txwtech/article/details/94225748
- jwt 工具类
public class TokenUtils { private Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 签名 ...
- linux网络编程-socket(2)
当客户端调用close函数的时候,服务器的read函数读到的数据是0读到文件结束通知,表示对端关闭了tcp连接 我们现实实现下面的功能: 1.tcp客户端从标准的输入流中得到输入数据发送到服务器,服务 ...
- 观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
1 观察者模式的原理,首先由一个主题,当主题发送变化的时候,通知该主题的订阅者 按照上面的分析我们来进行设计 1.抽象主题Subject public interface Subject { publ ...
- springboot自动装配原理
最近开始学习spring源码,看各种文章的时候看到了springboot自动装配实现原理.用自己的话简单概括下. 首先打开一个基本的springboot项目,点进去@SpringBootApplica ...
- 一个比CBitmap更优秀的类 -- CImage类
Visual C++的CBitmap类的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP.GIF.JPEG ...
- 【反转开灯问题】Face The Right Way
题目 Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing forward, ...
- Kubernetes实战总结 - Ingress选型与应用
一.概述 Ingress 是对集群中服务的外部访问进行管理的 API 对象,可以提供负载均衡.SSL 终结和基于名称的虚拟托管. 典型的访问方式是 HTTP,用于将不同URL的访问请求转发到后端不同的 ...