【发布时间】:2018-05-31 16:17:51
【问题描述】:
我正在将公司名称列表与 R 和 agrep() 进行匹配,因为数据在遗留系统中存储错误 - 没有第 4 范式,公司与客户记录在同一级别,这意味着一个新的每个新客户的公司条目,这导致一个公司有很多不同的公司名称 - 这在很多情况下都很好用。
有时,尤其是对于短字符串,我得到 - 至少对我来说 - 奇怪的匹配,例如(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():
agrep(vector1, vector2, value = TRUE, ignore.case = FALSE, max.distance = 0.01)
除了调整agrep() 的最大距离之外,还有其他方法或更好的方法吗?
提前致谢
【问题讨论】:
-
你好,你能详细说明一下结果应该是什么吗?也许 StringR 包有帮助? StringR 你可以使用:max.distance = 0 , 1 , 2
标签: r string-matching fuzzy-search fuzzy agrep