文本相似度算法-Jaro distance

Jaro distance

给定两个文本串,,他们的Joro距离定义为:


其中:
表示两个字符串中 match的字符数
表示文本串长度
表示换位(transpositoins)数目()

match的字符数:
分别来自,的字符,当他们相同或者距离小于,则被认为是match的。

比如:=“DIXON”, =“DICKSONX”


距离计算出来等于3,则每一次从max(0,i-d)到min(i+d,xLen)的空间内比较(如果从横轴进行比较,xLen表示长度)。最终得到 match数。

中的每一个字符都会与中距离内的字符进行比较。将所有match的字符串,需要替调换顺序才能匹配的总数除以二就是transpositions的大小。这里两个字符串中匹配的分别是:"DION",“DION",所以。
另外 =4, =8,
则:

参考:
https://rosettacode.org/wiki/Jaro_distance#Java

你可能感兴趣的:(文本相似度算法-Jaro distance)