zoukankan      html  css  js  c++  java
  • 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库,我们就完成了两个字符串相似度的计算,哈哈,简单吧!

      希望能帮到需要的人。

  • 相关阅读:
    5、Android Service测试
    javassist示例
    HeaderExchangeClient
    dubbo 心跳
    javassist和jdk动态代理
    dubbo为consumer创建代理
    线程同步知识点
    SynchronousQueue类
    Executors类的newFixedThreadPool, newCachedThreadPool, newScheduledThreadPool
    eclipse设置条件断点
  • 原文地址:https://www.cnblogs.com/573734817pc/p/10900379.html
Copyright © 2011-2022 走看看