大型数据集中的模糊合并问题。

问题描述 投票:-1回答:1

我有一个大的数据集(300k),我想清理一个特殊的列--名字列.问题是同一个名字可能会因为人为输入错误而出现多个无意的拼写,比如 "Benjamin "拼成 "Banjamin"。

我试过openrefine,但ngram合并和键碰撞都无法解决上面的例子,而Leveshtein距离公式却一直在进行,把我的电脑冻坏了。我试过Python,但fuzzywuzzy+for循环又要花很长时间,似乎不可行。R studio似乎是一个很好的选择,然而我不知道该如何处理?我试过包'refinr',但那和openrefine一样,不能处理 "Benjamin "和 "Banjamin "类型的错别字。只有当有一个字母重复或单词之间有空格时,它才会好。

有谁有什么建议,我应该怎么做?

谅谅

r data-cleaning fuzzy
1个回答
0
投票

我认为 fuzzyjoin-包装将满足你的愿望。

df1 <- data.frame( name = c("James", "Benjamin", "Bert"), id = 1:3 )
df2 <- data.frame( name = c("Banjamin", "David", "Jemes"), id = 4:6 )


library( fuzzyjoin )
stringdist_join( df1, df2, by = "name")

#     name.x id.x   name.y id.y
# 1    James    1    Jemes    6
# 2 Benjamin    2 Banjamin    4
© www.soinside.com 2019 - 2024. All rights reserved.