Python 水母vs皮亚罗温克勒

Python 水母vs皮亚罗温克勒,python,jaro-winkler,Python,Jaro Winkler,我试图使用Jaro-Winkler相似距离来查看两个字符串是否相似。我尝试使用这两个库来比较单词carol和elephant。结果并不相似: import jellyfish jellyfish.jaro_winkler('Carol','elephant') 返回0.4416666,而 from pyjarowinkler import distance distance.get_jaro_distance('Carol','elephant') 返回0.0,这对我来说更有意义 这两

我试图使用Jaro-Winkler相似距离来查看两个字符串是否相似。我尝试使用这两个库来比较单词
carol
elephant
。结果并不相似:

import jellyfish

jellyfish.jaro_winkler('Carol','elephant') 
返回
0.4416666
,而

from pyjarowinkler import distance

distance.get_jaro_distance('Carol','elephant')
返回
0.0
,这对我来说更有意义

这两个库之间有bug吗


谢谢

水母的实现是正确的


卡罗尔和大象没有匹配的前缀。因此,在这种情况下,Jaro-Winkler距离等于Jaro距离。我手工计算了Jaro距离,发现水母的实现是正确的。有一个在线计算器,但在线计算器也是错误的。我还发现了其他一些实现,比如python Levenstein包,它还实现了Jaro-Winkler距离,这验证了我的计算。在npm上也有一个实现。如果你想自己计算分数-你可以找到这篇论文

也许值得注意的是,R中的两种不同实现似乎与pyjarowinkler版本相匹配:

library(stringdist)
> 1 - stringdist("Elephant", "Carol", method = 'jw')
[1] 0.4416667

library(RecordLinkage)
> jarowinkler('Carol','elephant')
[1] 0.4416667

这些实现似乎不兼容<代码>水母。jaro_winkler('test','rest')和
距离。get_jaro_距离('test','rest')
产生不同的输出。我会找到第三个库,看看哪个实现是正确的。看起来距离。get_jaro_距离是准确的,而水母是不正确的。在有人只看到上面的评论之前,把它贴在这里。请看下面的答案。水母是正确的。我链接了关于jaro winkler距离的原始文件。