我正在尝试清理一个数据库,多年来,该数据库已获得许多重复记录,名称略有不同。例如,在公司表中,有“Some Company Limited”和“SOME COMPANY LTD!”之类的名称。
我的计划是将有问题的表格导出到 R 中,将名称转换为小写,替换常见的同义词(如“limited”->“ltd”),去掉非字母字符,然后使用agrep
来查看看起来相似的内容。
我的第一个问题是agrep
它只接受一个模式来匹配,并且循环遍历每个公司名称以匹配其他公司名称很慢。(某些要清理的表将有数万甚至数十万个名称要检查。)
我已经非常简要地查看了该tm
包(JSS 文章),它看起来非常强大,但适用于分析大块文本,而不仅仅是名称。
我有几个相关的问题:
该
tm
软件包是否适合此类任务?有更快的替代方案
agrep
吗?(所述功能使用 Levenshtein 编辑距离,这很慢。)除了
agrep
和之外,R 中还有其他合适的工具tm
吗?我什至应该在 R 中执行此操作,还是应该直接在数据库中执行此类操作?(这是一个 Access 数据库,所以如果可能的话,我宁愿避免接触它。)