问题标签 [jaro-winkler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
210 浏览

java - 将文本与语音匹配到阿拉伯语文本

我向文本应用程序阿拉伯语发表了演讲。语音文本的结果将与数组中的现有文本进行比较。使用字符串算法 macthing Jaro-Winkler 距离我一直在计算所有文本输入的手册以及数组中的文本,结果是 1.0。但是当应用程序按照比较的结果运行时是不计算的。

此文本数组数据:

将数组和输入语音转换为文本

这个算法 Jaro Winkler 距离

0 投票
2 回答
2799 浏览

sql - 如何在 Oracle 中使用模糊匹配获得准确的 JOIN

我正在尝试将一个表中的一组县名与另一个表中的县名连接起来。这里的问题是,两个表中的县名都没有标准化。它们的数量不同;此外,它们可能并不总是以类似的模式出现。例如,“表 A”中的县“SAINT JOHNS”可以表示为“表 B”中的“ST JOHNS”。我们无法预测他们的共同模式。

这意味着,我们不能=在加入时使用“等于”() 条件。所以,我正在尝试使用JARO_WINKLER_SIMILARITYoracle 中的功能加入他们。我的左外连接条件如下:

在对结果进行一些测试后,我给出了 80 的测量值,它似乎是最佳的。在这里,问题是我在加入时遇到了一组“误报”。例如,如果在同一州下有一些名称相似的县(例如“BARRY”和“BAY”),如果度量为 ,它们将被匹配>=80。这会产生不准确的连接数据集。任何人都可以建议一些解决?

谢谢, DAV

0 投票
1 回答
989 浏览

oracle - utl_match 比较多条记录

我有 2 张表 - 一张有 100 万条记录,另一张有 40000 条记录。

如果另一个表上有类似的字符串,我需要比较表中的每条记录。

问题是这个过程很慢

我需要优化这个程序

for tablea in (select first_name||' '||last_name as fullname from employee ) 循环

SELECT COUNT(*) INTO num_coincidencias FROM table b WHERE utl_match.jaro_winkler_similarity(b.name ,tablea .fullname) > 98

dbms_output.put_line(num_coincidencias); 结束循环;

0 投票
1 回答
290 浏览

lucene - lucene 中的 JarowinklerDistance 返回奇怪的结果

我有一个包含一些短语的文件。使用 lucene 的 jarowinkler,它应该让我从该文件中获得与我的输入最相似的短语。

这是我的问题的一个例子。

我们有一个文件包含:

如果我的输入是这很好,它应该首先让我从文件中得到“这很好”,因为这里的相似度得分是最大的 (1)。但由于某种原因,它只返回:“this is goodd”和“this is god”!

这是我的代码:

0 投票
0 回答
295 浏览

r - 基于 R 字符串的企业名称匹配

TL;DR 我想匹配两个不相等的列,其中值包含企业名称,并且我尝试使用 Jaro-Winkler 匹配来接近stringdist 的 amatch,但还不够接近。我想知道 stringi 在这里是否有用 - 我只是不太明白如何使用它,请原谅我是个菜鸟。我不会问其他问题,但我认为我自己无法及时解决。

就上下文而言,一列中有 2079 个企业名称,第二列中有 1878 个企业名称。其中许多包含作为后缀的业务结构 - 即 LLC,Inc.,INC.,Co. 等 - 所以我在进入 R 之前用 excel 将它们修剪掉。名称是手动输入到两列中的,因此有人工输入误差变化。

我使用了这个公式:

我能够得到一些结果,但是由于公司会共享第一个单词或单词/字母的第一个组合-即“A&A”与“A&B”,因此许多匹配项被重复。我知道这是基于 JW 公式的工作原理,但我不太清楚如何对其进行足够的修改。

我需要将 b 列中的值与 a 列匹配。可能有重复和列 a。我没有任何特定的相似性规则;我想要与每个值最接近的匹配,以及最少数量的错误重复。

对于初学者,是否有更简单的方法可以在stringi中完成此操作?

请告知,因为我不知道如何最好地解决这个问题。如果需要更多详细信息,我很乐意提供帮助。先感谢您。

0 投票
3 回答
5026 浏览

python - Python中使用pdist的字符串距离矩阵

如何在 Python 中计算字符串的 Jaro Winkler 距离矩阵?

我有大量手动输入的字符串(名称和记录编号),我正在尝试在列表中查找重复项,包括拼写可能略有不同的重复项。对类似问题的回答建议使用 Scipy 的 pdist 函数和自定义距离函数。我尝试使用 Levenshtein 包中的 jaro_winkler 函数来实现这个解决方案。问题在于 jaro_winkler 函数需要字符串输入,而 pdict 函数似乎需要二维数组输入。

例子:

预期输出 - 像这样:

实际错误:

我假设这是因为 jaro_winkler 函数看到的是 ndarray 而不是字符串,并且我不确定如何在 pdist 函数的上下文中将函数输入转换为字符串。

有没有人建议允许这个工作?提前致谢!

0 投票
0 回答
251 浏览

python - 字符串相似性,其中 ascii 代码的顺序和差异很重要

有人知道可以为以下给出正确结果的字符串相似性方法吗?我正在处理字母数字 ID,其中:

  1. 字符串前半部分的变化比后半部分更重要。我想我可以做ngrams?尽管在一个字符串有前缀的情况下这可能会崩溃?
  2. 替换字符的差异很重要,因为将“a”更改为“b”比将其更改为“c”要少。

Levenstein 和 Jaro-Winkler 似乎没有做正确的事。

请参见下面的示例。

为了增加乐趣,第一个字符串的前缀与作为 ID 的字符串本质上无关,但会混淆字符串相似性。

0 投票
2 回答
1906 浏览

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

我正在使用 jaro-winkler 模糊匹配来匹配名称。

我正在尝试确定相似度得分的截止范围。如果名称差异太大,我想将它们排除在外以进行人工审核。

虽然低于 0.4 的任何东西似乎都是完全不同的名称,但 0.4 的范围似乎非常相似。

但后来我遇到了奇怪的例外情况,该范围内的某些名称完全不同,而有些名称只有一两个字母(参见下面的示例)。

有人可以解释在相同匹配分数范围内匹配差异很大的地方吗?

0 投票
2 回答
6318 浏览

python - 水母vs pyjarowinkler

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

返回0.4416666,而

返回0.0这对我来说更有意义。

两个库之间是否存在错误?

0 投票
1 回答
1837 浏览

r - 在 R 中使用 Jaro-Winkler 模糊匹配进行文本挖掘

我试图在 R 中进行一些距离匹配,并且正在努力实现可用的输出。

我有一个terms包含 5 个文本字符串的数据框,以及每个字符串的类别。我有第二个数据框notes,其中包含 10 个拼写错误的单词以及一个 NoteID。

我希望能够使用距离算法将我的 5 个terms和 10 个中的每一个进行比较,notes以尝试抓住简单的拼写错误。我努力了:

near_match<- subset(notes, jarowinkler(notes$word, terms$word) >0.9)

jarowinkler(notes$word, terms$word)

[1] 0.8000000 0.7777778 0.8266667 0.8833333 0.9714286 0.8000000 0.8000000 0.8266667 0.8833333 0.9500000

第一个实例几乎是我需要的,它只是缺少terms导致匹配的单词。第二个返回 10 个分数,但我不确定算法是否依次检查 5 个terms中的每一个和 10 个notes中的每一个,并且只返回最接近的匹配项(最高分)。

jarowinkler()如果我想要的可以使用或有更好的选择,我该如何更改上述内容以实现我想要的输出?

我对 R 比较陌生,所以感谢任何帮助我进一步理解算法如何生成分数以及实现我想要的输出的方法是什么。

下面的示例数据框

谢谢