安装:

  • pip3 install python-Levenshtein==0.12.0

实例一:

#! /usr/bin/python
# -*- coding: utf8 -*-
# @Time    : 2018/8/30 10:11
# @Author  : yukangfrom Levenshtein import *# 个人总结的 关于 Levenshtein 所有函数的用法 和 注释
apply_edit()  #根据第一个参数editops()给出的操作权重,对第一个字符串基于第二个字符串进行相对于权重的操作distance() #计算2个字符串之间需要操作的绝对距离editops() #找到将一个字符串转换成另外一个字符串的所有编辑操作序列hamming() #计算2个字符串不同字符的个数,这2个字符串长度必须相同inverse() #用于反转所有的编辑操作序列jaro() #计算2个字符串的相识度,这个给与相同的字符更高的权重指数jaro_winkler() #计算2个字符串的相识度,相对于jaro 他给相识的字符串添加了更高的权重指数,所以得出的结果会相对jaro更大(%百分比比更大)matching_blocks() #找到他们不同的块和相同的块,从第六个开始相同,那么返回截止5-5不相同的1,第8个后面也开始相同所以返回8-8-1,相同后面进行对比不同,最后2个对比相同返回0median() #找到一个列表中所有字符串中相同的元素,并且将这些元素整合,找到最接近这些元素的值,可以不是字符串中的值。median_improve() #通过扰动来改进近似的广义中值字符串。opcodes() #给出所有第一个字符串转换成第二个字符串需要权重的操作和操作详情会给出一个列表,列表的值为元祖,每个元祖中有5个值#[('delete', 0, 1, 0, 0), ('equal', 1, 3, 0, 2), ('insert', 3, 3, 2, 3), ('replace', 3, 4, 3, 4)]#第一个值是需要修改的权重,例如第一个元祖是要删除的操作,2和3是第一个字符串需要改变的切片起始位和结束位,例如第一个元祖是删除第一字符串的0-1这个下标的元素#4和5是第二个字符串需要改变的切片起始位和结束位,例如第一个元祖是删除第一字符串的0-0这个下标的元素,所以第二个不需要删除quickmedian() #最快的速度找到最相近元素出现最多从新匹配出的一个新的字符串ratio() #计算2个字符串的相似度,它是基于最小编辑距离seqratio() #计算两个字符串序列的相似率。setmedian() #找到一个字符串集的中位数(作为序列传递)。 取最接近的一个字符串进行传递,这个字符串必须是最接近所有字符串,并且返回的字符串始终是序列中的字符串之一。setratio() #计算两个字符串集的相似率(作为序列传递)。subtract_edit() #从序列中减去一个编辑子序列。看例子这个比较主要的还是可以将第一个源字符串进行改变,并且是基于第二个字符串的改变,最终目的是改变成和第二个字符串更相似甚至一样# print(hamming('Hello world!', 'Holly world!'))
# print(jaro_winkler("yukangrtyu",'yukangrtyn'))
# fixme = ['Levnhtein', 'Leveshein', 'Leenshten', 'Leveshtei', 'Lenshtein', 'Lvenstein', 'Levenhtin', 'evenshtei']
# print(opcodes('spam', 'park'))
# print(ratio('spam', 'spark'))
# print(jaro_winkler('spam', 'spark'))
# print(jaro('spam', 'spark'))
# print(seqratio('spam', 'spark'))
# print(seqratio(['newspaper', 'litter bin', 'tinny', 'antelope'],['caribou', 'sausage', 'gorn', 'woody']))
# print(setratio(['newspaper', 'litter bin', 'tinny', 'antelope'],['caribou', 'sausage', 'gorn', 'woody']))
# e = editops('man', 'scotsman')
# e1 = e[:3]
# bastard = apply_edit(e1, 'man', 'scotsman')
# print(e)
# print(e1)
# print(bastard)
# print(subtract_edit(e, e1))
# print(apply_edit(subtract_edit(e, e1), bastard, 'scotsman'))def acquaintance(a,b):for i in a:item = {}for j in b:if ratio(u"%s"%i,u"%s"%j):item[ratio(u"%s"%i,u"%s"%j)] = (i,j)d = item[max(list(item.keys()))]c = '"%s"和"%s"-最相似---匹配度为:%f'%(d[0],d[1],max(list(item.keys())))print(c)a = ["你好",'hello,world','计算偏差大不大啊?','文本可以吗','请看这里']
b = ['helloworld',"你好吗?",'可以吗','请这里','计算偏差大不大']
acquaintance(a,b)

实例二:

ratio_threshold=0.9
ratio = Levenshtein.ratio(page404.content, r.content)
if ratio > ratio_threshold:return False
return True

Python Levenshtein(两个文本比较,两个字符串比较)相关推荐

  1. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  2. java截取某两个字符之间的字串_Java截取特定两个标记之间的字符串实例

    Java截取特定两个标记之间的字符串实例 如有一串字符串: higklmnopq java代码如下: public class StringTest { public static void main ...

  3. python文字教程-Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  4. Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息

    Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import scrapy class Dmoz ...

  5. python两数相加代码_一边学编程,一边学语数外,用python编程全排列10以内两数加法...

    原标题:一边学编程,一边学语数外,用python编程全排列10以内两数加法 编程并不神秘 编程只是解决问题的一共方法 python是一门编程语言 python是一种解决问题的编程工具 在小学阶段,学习 ...

  6. mysql 函数多个连接_MySQL数据库中如何连接两个或多个字符串呢?

    摘要: 下文讲述MySQL数据库中组合字符串的方法分享,如下所示: 实现思路: 使用系统函数CONCAT即可实现两个或多个字符串的组合连接 注意事项: 当组合字符串中,任意一个字符为NULL时,则返回 ...

  7. iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串

    iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串 oc的话,我们定义一个category分类,对谁分类,对NSDate分类,对外暴露一个类方法,只要导入头文件,即可使用. @int ...

  8. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  9. 《Java安全编码标准》一2.11 IDS10-J不要拆分两种数据结构中的字符串

    2.11 IDS10-J不要拆分两种数据结构中的字符串 在历史遗留系统中,常常假设字符串中的每一个字符使用8位(一个字节,Java中的byte).而Java语言使用16位表示一个字符(Java中的Ch ...

  10. Python实现“已知三角形两个直角边,求斜边”

    用Python实现"已知三角形两个直角边,求斜边" 要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入. 思路:伪代码描述下步骤 1.-input a ...

最新文章

  1. python语言能干什么-python语言可以干什么
  2. 1.15 Java冒泡排序法
  3. Clover 驱动文件夹_四叶草Clover文件夹结构功能+快捷键——墨涩网
  4. java成绩排名平均成绩_java 数组 输入5名学生的成绩 得出平均分。
  5. 若依微服务版手把手教你本地搭建环境并运行前后端项目
  6. 优化方案电子版_关于小区分支道路整修设计方案的讨论稿(No.2020121)
  7. Linux用户配置文件(第二版)
  8. 用C实现的一个Bash脚本
  9. 基于CSE的微服务架构实践-Spring Boot技术栈选型
  10. CentOS7在/etc/grub2.conf引导中配置1G大页内存
  11. dubbo源码1-暴露服务
  12. 程序猿提升自己水平的方法
  13. 【牛客网SQL篇】SQL必知必会
  14. html让方块往下移动,CSS3 方块上下交换和旋转动画
  15. 彩扩机项目--两个状态指示灯,巧妙的使用二极管的特性,以及物理按键的滤波...
  16. python+selenium之元素、下拉列表的定位
  17. adb 通过 无线连接手机
  18. QQ音乐JS逆向分析参数,爬它,多图预警
  19. C语言连续自动自加怎么表示,为什么不建议在C语言中连续使用自增自减运算符...
  20. 语音识别标准中WER和SER解释

热门文章

  1. 聊个天就把生信分析做了?你的未来在哪里?
  2. 「轻松转换」专业的PDF转换Excel软件:PDF to Excel Converter for Mac
  3. 使用Lock and Load X 插件时导致Final Cat Pro意外退出的解决办法
  4. python使用协程实现udp_python-socket和进程线程协程(代码展示)
  5. css字体样式代码大全_这都2020年了,还没了解CSS?
  6. mui HTML5plus 批量上传文件
  7. Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
  8. Oracle笔记-Oracle基本结构及安装启动(windows版)
  9. Linux学习笔记-消息队列概念
  10. Qt工作笔记-ListWidget拖动(拖拽)到QGraphicsScene