0

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

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

我使用了这个公式:

amatch(match$sales, match$box, maxDist = .25, method =c("jw"), weight = c(d = 1, i = .9, s = .9, t = .9), p= .2, matchNA = FALSE, bt=.25)

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

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

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

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

4

0 回答 0