模糊匹配html的id,通过模糊匹配名称创建唯一ID(通过使用R的agrep)

在R中,面对大规模数据集(5500个城市,约100K条目),作者试图通过agrep()函数解决姓名的模糊匹配问题,以识别并纠正拼写错误。目标是为每个候选人分配唯一的ID,并优化处理速度。当前的实现虽然运行,但在处理大量数据时效率低下。通过限制比较仅在同一城市内的候选人之间进行,已显著提高运行速度。
摘要由CSDN通过智能技术生成

使用R,我正在尝试匹配按年份和城市构建的数据集中的人名。由于一些拼写错误,无法进行精确匹配,因此我尝试使用agrep()来模糊匹配名称。

数据集的样本块结构如下:

df

整洁的版本:

citycode year candidate

1 1200013 1996 AGUSTINHO FORTUNATO FILHO

2 1200013 1996 ANTONIO PEREIRA NETO

3 1200013 1996 FERNANDO JOSE DA COSTA

4 1200013 1996 PAULO CEZAR FERREIRA DE ARAUJO

5 1200013 2000 PAULO CESAR FERREIRA DE ARAUJO

6 1200013 2000 SEBASTIAO BOCALOM RODRIGUES

7 1200013 2004 JOAO DE ALMEIDA

8 1200013 2004 PAULO CESAR FERREIRA DE ARAUJO

我想分别检查每个城市,是否有候选人出现在几年内。例如。在示例中,

PAULO CEZAR FERREIRA DE ARAUJO

PAULO CESAR FERREIRA DE ARAUJO

出现两次(拼写错误)。应为整个数据集中的每个候选者分配唯一的数字候选ID。数据集相当大(5500个城市,大约100K条目),因此稍微有效的编码会有所帮助。有关如何实现这一点的任何建议吗?

编辑:这是我的尝试(在迄今为止的评论的帮助下),在实现手头的任务时非常缓慢(效率低下)。有关改进的建议吗?

f

levels(x)

x

}

temp

df$candidatenew

df$spellerror

编辑2:现在以良好的速度运行。问题在于每一步都与许多因素进行比较(感谢你指出这一点,Blue Magister)。将比较减少到只有一组中的候选者(即一个城市),在5秒内运行命令,持续80,000行 - 这是我可以忍受的速度。

df$candidate

f

matches

levels(x)

as.character(x)

}

temp

df$candidatenew

df$spellerror

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值