与agrep匹配的模糊字符串

由于数据在遗留系统中存储错误,因此我使用R和agrep()来匹配公司名称列表 - 因为数据在传统系统中存储错误 - 没有第四种常规格式,公司在同一级别上录制作为客户,这意味着每个新客户都有一个新的公司条目,这导致一家公司拥有许多不同的公司名称 - 这在很多情况下都能正常工作。与agrep匹配的模糊字符串

有时,特别是对于短字符串,我得到的 - 至少对我来说 - 奇怪的比赛,例如(ABC是第一家名称):

ABC ABAXIS Europe GmbH 

ABC ABB Europe

ABC ABB Group

ABC ABB Stotz Kontakt GmbH

ABC ABM Financial News

ABC ABN AMRO Bank NV

ABC AC Klöser GmbH

ABC ACCBank

ABC ACEA S.p.A.

使用agrep()以下参数I'm:

agrep(vector1, vector2, value = TRUE, ignore.case = FALSE, max.distance = 0.01) 

是否有任何其他方式比最大距离来调整agrep()或更好的方式来做到这一点?

预先感谢

回答:

对于一个类似的问题,我使用本文中描述的第二种方法:http://bigdata-doctor.com/fuzzy-string-matching-survival-skill-tackle-unstructured-information-r/#comment-942

它匹配每一个与所述最相似的一个,如果有一些这当然不是最佳的寄存器误报对您而言是个问题。

此外,您可能会发现有用此功能之前和之后的名称删除空格:

trim <- function (x) gsub("^\\s+|\\s+$", "", x) #Defining function that returns string w/o leading or trailing whitespace 

我还使用了removewords()函数从“以旧换新”包。在你的情况下,删除ABC“可能是有用的。

以上是 与agrep匹配的模糊字符串 的全部内容, 来源链接: utcz.com/qa/262536.html

回到顶部