当前位置: 首页 > 知识库问答 >
问题:

Jaro-winkler函数:为什么相同的分数匹配非常相似和非常不同的单词?

鄂和璧
2023-03-14

我正试图确定相似度得分的截止范围。如果名称差异太大,我想排除它们以进行手动检查。

虽然低于。4的名称似乎完全不同,但。4的范围似乎相当相似。

但是后来我遇到了一些奇怪的异常,在这个范围内的一些名称完全不同,而一些名称只相差一两个字母(见下面的示例)。

   Estrella     ANNELISE    0.42 
   Arienna      IREANNA     0.43 
   Tayvia       I TAYVIA    0.43
   Amanda       IZABEL      0.44
   Hunter       JOSHUA      0.44
   Ryder        CHARLES     0.45
   Luis         ELIZABETH   0.45 
   Sebastian    JOSE        0.45 
   Christopher  CHISTOPHE   0.46 
   Genayunique  GENAY-UNI   0.46 
   Andreeaonn   ADREEAONN   0.46
   Chistopher   CHRISTOPH   0.46
   Dazharicon   DAZHARION   0.46
   Jennavecia   JENNACVEC   0.46
   Valentiria   VALENTINA   0.46
   Abel         SAMMUEL     0.46
   Dezarea MarieDEZAREA     0.47
   Alexander    ALEXZANDE   0.47

共有1个答案

邰建业
2023-03-14

Jaro-Winkler距离公式偏向于具有公共开头的字符串。比如瓦伦蒂娜和瓦伦蒂丽亚。

它也有一些不那么直观的“规则”(见维基百科)。

你可能应该首先确定你期望的不同程度,然后寻找合适的距离公式。例如,在书写中,“Angleworm”和“Angelworm”很可能是一个错误,所以两个字符串之间的距离应该较小。而不匹配“there”和“three”的可能性较小,而“ether”的可能性更大。使用较长的字谜,Jaro距离可能完全相同,甚至Winkler修正也可能不会起作用。

 类似资料:
  • 我需要从30fps的视频中提取帧两次:(I)720p png帧,(ii)270p tiff帧。 我分别使用以下命令来实现这一点: 然而,这导致第一命令输出35,776帧,第二命令输出35,812帧,尽管视频是相同的,并且所请求的framerate是30fps。 这是什么原因造成的?如何确保ffmpeg输出相同数量的(同步)帧?

  • https://leetcode.com/problems/find-all-numbers-dispapered-in-an-array/discuss/93007/simple-java-in-place-sort-solution 你能查一下上面的链接吗? 我看不懂密码 然后,第一个只是简单地使用我们可以检查是不是值。 第二个, 它最终也是一样的东西,只是为了证明索引值=index+1。 但

  • 我已经在Python中通过,它们看起来都非常相似。为什么?如何随机化它们?

  • 我搜索了数据库和食谱,但似乎找不到正确的答案。我有一个非常简单的python代码,它总结了一个范围内的自我权力。我需要这个非常非常大的数字的最后十位,我已经尝试了get上下文(). prec,但是我仍然达到了极限。 代码如下: 我怎么能看到这些美丽的数字?它在我的四核上打印速度相对较快。这只是为了给ProjectEuler带来乐趣,问题#48,请不要破坏者。我不想要解决方案,也不想让工作为我完成,

  • 问题内容: 我在某处读到,函数应始终仅返回一种类型,因此以下代码被视为错误代码: 我想更好的解决方案是 返回None然后创建一个新的空元组不是更便宜的内存明智的选择吗?或者即使在较大的项目中,这种时差也太小而无法引起注意? 问题答案: 为什么函数应该返回一致类型的值?满足以下两个规则。 规则1-函数具有“类型”-输入映射到输出。它必须返回一致的结果类型,否则它不是函数。一团糟。 从数学上讲,我们说

  • C#提供了函数重载时使用的以下签名特性。 我们知道,对于重载,只考虑参数;它们的数量和类型,但多态性的目标是根据调用策略提供相同的名称,但不同的用法。 如果我有一个类包含两个具有相同名称和签名的方法,而一个是静态的,另一个不是,C#编译器抛出一个错误;"类已经定义了一个名为'foo'的成员,具有相同的参数类型"。对这两个方法的调用将是不同的;一个带有对象名,一个带有类名的静态方法。因此,调用策略没