gpt4 book ai didi

java - 如何使用 Simmetrics java 计算重叠系数和 Jaro Winkler

转载 作者:行者123 更新时间:2023-12-01 10:34:37 27 4
gpt4 key购买 nike

我一直在尝试使用 Sim-metrics 库:

    <dependency>
<groupId>com.github.mpkorstanje</groupId>
<artifactId>simmetrics-core</artifactId>
<version>4.1.0</version>
</dependency>

到目前为止,我正在使用以下方法计算 Jaro Winkler:

StringMetric sm = StringMetrics.jaroWinkler();
res = sm.compare("Harry Potter", "Potter Harry");
System.out.println(res);

0.43055558

和余弦相似度:

sm  = StringMetrics.overlapCoefficient();
res = sm.compare("The quick brown fox", "The slow brawn fur");
System.out.println(res);

0.25

但是根据https://asecuritysite.com/forensics/simstring

为此,jaro-winkler 应为 0,重叠系数应为 100。这是否是使用该库的正确方法?正确的调用是什么,比如说,如果我想运行这两个指标来将一个列表中的电影与我从 IMDB 获得的另一个列表中的电影进行匹配,我打算比较两组中的标题并获取两个分数的平均值,并对两套电影的 Actor 阵容。谢谢

最佳答案

您正在正确使用该库。然而,您可能希望自定义您正在使用的指标。听起来像是过滤简短的常见单词,如“the”、“a”、“and”等,并且使用 q-gram 分词器可能比使用 StringMetrics 中的默认指标更有效,其中大多数对空格进行分词,并且没有应用过滤器或简化器。

除此之外,我无法真正告诉您哪些组合指标、分词器、过滤器和简化器可能适合您的用例。最有效的方法是针对特定领域的。您必须尝试几种组合,看看哪种效果最好。

<小时/>

当我使用您提供的网站计算快速棕色狐狸慢速棕色毛皮的余弦相似度和重叠系数时,我得到:

String 1: The quick brown fox
String 2: The slow brawn fur

The results are then:
Cosine Similarity 25
Overlap Coefficient 25

当我使用 Simmetrics 时。

System.out.println(
StringMetrics.overlapCoefficient().compare(
"The quick brown fox", "The slow brawn fur")); // 0.25
System.out.println(
StringMetrics.cosineSimilarity().compare(
"The quick brown fox", "The slow brawn fur")); // 0.25
<小时/>

关于 Jaro Winkler,它看起来像是使用旧版本 Simmetrics 的网站。指标和名称的具体组合,特别是 Chapman Length Deviation,最初由 Simmetrics 的原作者 Sam Chapman 编写,毫无疑问。

旧版本有一些特性,但如果不再次并排调试它们,我无法指出导致这种差异的具体版本。

关于java - 如何使用 Simmetrics java 计算重叠系数和 Jaro Winkler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34847982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com