概述

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相关推荐

  1. 字符串编辑距离(Edit Distance)

    一.问题描述 定义 字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符 ...

  2. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

    最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...

  3. 字符串编辑距离的计算方法

    字符串编辑距离,又称  Levenshtein距离, 指由一个字符串变成另一个字符串所需的最少的编辑次数,这些编辑操作包括将一个字符替换为另一个字符,删除一个字符和添加一个字. 详细内容可以参考 ...

  4. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  5. JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)

    JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码) levenshteinDistance.js完整源代码 # levenshteinDistance.te ...

  6. 动态规划 —— 线性 DP —— 字符串编辑距离

    [概述] 字符串编辑距离,即 Levenshtein 距离,是俄国科学家 Vladimir Levenshtein 提出的概念,是指从一个字符串修改到另一个字符串时,编辑单个字符所需的最少次数,编辑单 ...

  7. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...

    作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢 ...

  8. 字符串编辑距离(转载)

    Levenshtein Distance (LD, 来文史特距离)也叫edit distance(编辑距离),它用来表示2个字符串的相似度,LD定义为需要最少多少步基本操作才能让2个字符串相等,基本操 ...

  9. 字符串编辑距离之Damerau–Levenshtein Distance

    概述 Damerau–Levenshtein Distance用来测量两个字符序列之间的编辑距离的字符串度量标准.两个词的Damerau–Levenshtein Distance是从一个词转换为另一个 ...

最新文章

  1. 链家前DBA判刑7年!你还敢不敢删库?
  2. 异地多活场景下的数据同步之道 | 珍藏版
  3. Neurocomputing 投稿注意事项
  4. python与Labview进行数据通信(UDP)
  5. 设计模式---组件协作模式之观察者模式(Observer)
  6. MVC设计模式:概念,模型,视图,控制器
  7. php smarty 调试模式,Smarty3调试
  8. IT,大一,这里我有点建议
  9. springboot集成Stream上传插件+图片缩略图+视频缩略图
  10. flashpaper java_使用FlashPaper 实现JSP在线阅读
  11. html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
  12. 通过思翼SIYI MK15E回传Realsense D435i 的 RGB图像
  13. Python实现统一社会信用代码合法性校验
  14. python微信自动聊天小工具
  15. BarTender打开提示:错误消息#2622
  16. 确定某天是星期几的c语言程序,计算某天是星期几【C代码】
  17. 成长经历:浅谈OSINT认知
  18. 做淘宝店铺为什么一定要定位?
  19. cvBoundingRect的用法
  20. 快速实现Excel到ODX/PDX数据文件的自动转换工具:VisualODX

热门文章

  1. 多应用多特点Abbkine驴抗兔IgG二抗绿色荧光标记
  2. 数据库三大范式定义与理解
  3. 甘特图控件VARCHART XGantt的功能亮点
  4. 一个移植十分方便的malloc函数族的实现
  5. 相比于D-SUB接口DVI接口的优点是什么
  6. Deseja sua sorte boa, Renato Augusto
  7. 【CSAPP:3e 深入理解计算机系统】课堂笔记 Computer Systems from a Programmer’s Perspective
  8. Tensorflow教程
  9. 关于进一步加强高等学校计算机基础教学的意见,关于进一步加强和改进计算机基础课教学的意见...
  10. python--学习数据伪造模块faker