字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。

评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein距离。海明距离是编辑距离的一种特殊情况,只计算等长情况下替换操作的编辑次数,只能应用于两个等长字符串间的距离度量。

其他常用的度量方法还有 Jaccard distance、J-W距离(Jaro–Winkler distance)、余弦相似性(cosine similarity)、欧氏距离(Euclidean distance)等。

python-Levenshtein 使用

使用 pip install python-Levenshtein 指令安装 Levenshtein

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
# -*- coding: utf-8 -*-import difflib
# import jieba
import Levenshteinstr1 = "我的骨骼雪白 也长不出青稞"
str2 = "雪的日子 我只想到雪中去si"# 1\. difflib
seq = difflib.SequenceMatcher(None, str1,str2)
ratio = seq.ratio()
print 'difflib similarity1: ', ratio# difflib 去掉列表中不需要比较的字符
seq = difflib.SequenceMatcher(lambda x: x in ' 我的雪', str1,str2)
ratio = seq.ratio()
print 'difflib similarity2: ', ratio# 2\. hamming距离,str1和str2长度必须一致,描述两个等长字串之间对应位置上不同字符的个数
# sim = Levenshtein.hamming(str1, str2)
# print 'hamming similarity: ', sim# 3\. 编辑距离,描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括 插入、删除、替换
sim = Levenshtein.distance(str1, str2)
print 'Levenshtein similarity: ', sim# 4.计算莱文斯坦比
sim = Levenshtein.ratio(str1, str2)
print 'Levenshtein.ratio similarity: ', sim# 5.计算jaro距离
sim = Levenshtein.jaro(str1, str2 )
print 'Levenshtein.jaro similarity: ', sim# 6\. Jaro–Winkler距离
sim = Levenshtein.jaro_winkler(str1 , str2 )
print 'Levenshtein.jaro_winkler similarity: ', sim

输出:

difflib similarity1:  0.246575342466
difflib similarity2:  0.0821917808219
Levenshtein similarity:  33
Levenshtein.ratio similarity:  0.27397260274
Levenshtein.jaro similarity:  0.490208958959
Levenshtein.jaro_winkler similarity:  0.490208958959

Python字符串相似性的几种度量方法相关推荐

  1. python比较两个字符串相似度_详解Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  2. python字符串相似度去重_详解Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  3. 字符串相似性的几种度量方法

    一: 字符串相似性的几种度量方法 https://blog.csdn.net/shijing_0214/article/details/53100992 1.余弦相似性(cosine similari ...

  4. python字符串相似度去重_Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  5. Python字符串连接的5种方法

    总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...

  6. python中常用的九种预处理方法

    本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal ...

  7. 大数据可视化python_大数据分析之Python数据可视化的四种简易方法

    本篇文章探讨了大数据分析之Python数据可视化的四种简易方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 数据可视化是任何数据科学或机器学习项目的一个重要组成部分 ...

  8. python list方法说明_对python中list的五种查找方法说明

    Python中是有查找功能的,五种方式:in.not in.count.index,find 前两种方法是保留字,后两种方式是列表的方法. 下面以a_list = ['a','b','c','hell ...

  9. python list find函数_对python中list的五种查找方法说明

    Python中是有查找功能的,五种方式:in.not in.count.index,find 前两种方法是保留字,后两种方式是列表的方法. 下面以a_list = ['a','b','c','hell ...

最新文章

  1. 消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法
  2. #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined解释
  3. RunTime技术总结
  4. 计算机网络英语求职简历翻译,计算机网络求职英文简历模板.doc
  5. C# 获得两日期之间所有月份(包括跨年)
  6. leetcode刷题:不同路径II
  7. 《You can do it!》的chapter 2笔记
  8. Layer:layui.util.timeAgo 使用
  9. mini-tokio代码分析
  10. 读《创业36条军规》(五)放下身段死缠烂打
  11. 2020-03-02
  12. VideoScribe--超好用的手绘动画制作软件
  13. 根据身高体重计算BMI指数 - scala
  14. Mac 上 git 命令出现 xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer direc 错误
  15. VC++中的WinMain()函数介绍
  16. ANSYS Workbench扫掠划分网格出现网格扭曲解决办法
  17. 基尔霍夫矩阵题目泛做(AD第二轮)
  18. 手机CPU与电脑CPU性能究竟相差多少?
  19. 通过GitHub Pages 搭建 Hexo 的个人博客
  20. 第七章:项目成本管理 - (7.2 估算成本)

热门文章

  1. 基于FPGA的工业相机项目大赏1——cmos线阵相机
  2. 如何做好临时性工作汇报?
  3. 每天学点SpringCloud(二):服务注册与发现Eureka
  4. Ubuntu 20.04安装Unreal 4.24
  5. 去哪儿java面试_《去哪儿》JAVA研发笔试+一面
  6. 2、OpenCV图像填充
  7. OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分
  8. setMonth()
  9. 发那科机器人控制柜示教器不通电_KUKA库卡示教器维修 发那科示教器维修 ABB示教器维修...
  10. 采用itextpdf 实现java的PDF生成与导出功能,含封装工具类代码