首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用agrep()进行模糊字符串匹配

用agrep()进行模糊字符串匹配
EN

Stack Overflow用户
提问于 2017-12-18 18:29:57
回答 1查看 698关注 0票数 2

我将公司名称列表与R和agrep()匹配,因为数据在遗留系统中存储错误-第四种范式,公司与客户记录在同一级别,这意味着每个新客户都有一个新的公司条目,这导致一个公司有许多不同的公司名称-这在许多情况下都很好用。

有时,特别是对于短字符串,我会得到-至少对我来说-奇怪的匹配,例如(ABC是第一个公司名称):

代码语言:javascript
复制
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()

代码语言:javascript
复制
agrep(vector1, vector2, value = TRUE, ignore.case = FALSE, max.distance = 0.01)

有没有比最大距离更好的方法来调整agrep()呢?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-18 19:01:08

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

它将每个寄存器与最相似的寄存器进行匹配,如果有一些误报对您来说是一个问题,那么这当然不是最优的。

此外,您可能会发现此函数对删除名称前后的空格很有用:

代码语言:javascript
复制
  trim <- function (x) gsub("^\\s+|\\s+$", "", x) #Defining function that returns string w/o leading or trailing whitespace

我还使用了"tm“包中的removewords()函数。在你的例子中,删除ABC“可能是有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47866483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档