字符串编辑距离之JaroWinklerDistance
概述
Jaro-Winkler Distance是一个度量两个字符序列之间的编辑距离的字符串度量标准,是由William E. Winkler在1990年提出的Jaro Distance度量标准的一种变体。Jaro Distance是两个单词之间由一个转换为另一个所需的单字符转换的最小数量。Jaro-Winkler Distance通过前缀因子使Jaro Distance相同时共同前缀长度越大的相似度越高。Jaro–Winkler Distance越小,两个字符串越相似。如果分数是0,则表示完全不同,分数为1则表示完全匹配。Jaro–Winkler相似度是1 - Jaro–Winkler Distance。
Jaro相似度
对于给定的两个字符串 和,相似度,计算公式如下:
其中:
- 是字符串 的长度。
- 是匹配的字符数量。
- 是字符转换的次数。
只有当 和的字符相同,且距离不超过 时才认为两个字符是匹配的。将与匹配的字符进行比较,相同位置但字符不同的字符数除以2就是要转换的次数。
Jaro-Winkler相似度
对于给定的两个字符串 和,相似度,计算公式如下:
其中:
- 是 和的Jaro相似度。
- 是字符串公共的前缀长度,最大值为4。
- 是一个常量因子,对于有公共前缀的分数会向上调整,不能超过0.25,否则相似度会超过1,常量的默认值为0.1。
示例
三个单词、、分别为aboard、abroad、aborad,分为两组进行比较、和、。
根据Jaro Distance算法、匹配的字符数为为6,需要转换的字符为o、a、r,所以转换次数为3/2=1。
它们的Jrao相似度为。
而、匹配的字符数为为6,需要转换的字符为a、r,所以转换次数为2/2=1。
它们Jrao相似度为。
此时与和的Jaro相似度相同,无法判断与哪个更相似,此时可以通过Jaro-Winkler Distance算法对Jaro相似度进行调整,假设常量因子为0.25。
、匹配字符的共同前缀ab的长度为2小于4,
所以它们的Jaro-Winkler相似度为。
而、匹配字符的共同前缀abo的长度为3小于4,
所以它们的Jaro-Winkler相似度为。
Jaro相似度相同的通过Jaro-Winkler Distance调整后可以比较出与哪个更相似。如上与更相似。
字符串编辑距离之JaroWinklerDistance相关推荐
- 字符串编辑距离(Edit Distance)
一.问题描述 定义 字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符 ...
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...
- 字符串编辑距离的计算方法
字符串编辑距离,又称 Levenshtein距离, 指由一个字符串变成另一个字符串所需的最少的编辑次数,这些编辑操作包括将一个字符替换为另一个字符,删除一个字符和添加一个字. 详细内容可以参考 ...
- Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离
Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...
- JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)
JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码) levenshteinDistance.js完整源代码 # levenshteinDistance.te ...
- 动态规划 —— 线性 DP —— 字符串编辑距离
[概述] 字符串编辑距离,即 Levenshtein 距离,是俄国科学家 Vladimir Levenshtein 提出的概念,是指从一个字符串修改到另一个字符串时,编辑单个字符所需的最少次数,编辑单 ...
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢 ...
- 字符串编辑距离(转载)
Levenshtein Distance (LD, 来文史特距离)也叫edit distance(编辑距离),它用来表示2个字符串的相似度,LD定义为需要最少多少步基本操作才能让2个字符串相等,基本操 ...
- 字符串编辑距离之Damerau–Levenshtein Distance
概述 Damerau–Levenshtein Distance用来测量两个字符序列之间的编辑距离的字符串度量标准.两个词的Damerau–Levenshtein Distance是从一个词转换为另一个 ...
最新文章
- 链家前DBA判刑7年!你还敢不敢删库?
- 异地多活场景下的数据同步之道 | 珍藏版
- Neurocomputing 投稿注意事项
- python与Labview进行数据通信(UDP)
- 设计模式---组件协作模式之观察者模式(Observer)
- MVC设计模式:概念,模型,视图,控制器
- php smarty 调试模式,Smarty3调试
- IT,大一,这里我有点建议
- springboot集成Stream上传插件+图片缩略图+视频缩略图
- flashpaper java_使用FlashPaper 实现JSP在线阅读
- html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
- 通过思翼SIYI MK15E回传Realsense D435i 的 RGB图像
- Python实现统一社会信用代码合法性校验
- python微信自动聊天小工具
- BarTender打开提示:错误消息#2622
- 确定某天是星期几的c语言程序,计算某天是星期几【C代码】
- 成长经历:浅谈OSINT认知
- 做淘宝店铺为什么一定要定位?
- cvBoundingRect的用法
- 快速实现Excel到ODX/PDX数据文件的自动转换工具:VisualODX
热门文章
- 多应用多特点Abbkine驴抗兔IgG二抗绿色荧光标记
- 数据库三大范式定义与理解
- 甘特图控件VARCHART XGantt的功能亮点
- 一个移植十分方便的malloc函数族的实现
- 相比于D-SUB接口DVI接口的优点是什么
- Deseja sua sorte boa, Renato Augusto
- 【CSAPP:3e 深入理解计算机系统】课堂笔记 Computer Systems from a Programmer’s Perspective
- Tensorflow教程
- 关于进一步加强高等学校计算机基础教学的意见,关于进一步加强和改进计算机基础课教学的意见...
- python--学习数据伪造模块faker