为了账号安全,请及时绑定邮箱和手机立即绑定

使用 pandas 和 fuzzwuzzy 匹配相似的列元素

使用 pandas 和 fuzzwuzzy 匹配相似的列元素

慕勒3428872 2021-07-02 18:01:03
我有一个 excel 文件,其中一列包含 1000 多个公司名称,另一列包含大约 20,000 个公司名称。目标是匹配尽可能多的名称。问题是第一列(1000+)中的名称格式不正确,这意味着“公司名称”字符串可能类似于“9Com(panynAm9e00”。我正在尝试找出解决此问题的最佳方法。(仅12 个名字完全匹配)在尝试了不同的方法后,我最终尝试使用正则表达式匹配每个名称中的 4-5 个或更多字符,具体取决于每个字符串的长度。但我只是在努力寻找最有效的方法来做到这一点。例如:第 1 栏 1. 9Com(panynAm9e00  2. NikE4  3. Mitrosof2第 2 栏 1. Microsoft 2. Company Name 3. Nike取第1 列中的第一个元素并在第 2 列中查找匹配项。如果没有完全匹配,则查找具有 4-5 个相同字符的字符串。有什么建议么?
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

我想数字在实际公司名称中并不是很常见,因此初始过滤步骤将极大地帮助前进,但这里有一个实现,即使没有这个也应该可以相对良好地工作。一个信袋(bag-of-words)方法,如果你愿意:

  1. 将所有内容(第 1 列和第 2 列)转换为小写

  2. 对于第 2 列中的每个已知公司,存储每个唯一字母以及它在字典中出现的次数(计数)

  3. 对第 1 列中的每个条目执行相同操作(步骤 2)

  4. 对于第 1 列中的每个条目,从真实公司名称列表中找到最接近的信袋(步骤 2 中的字典)

字典距离的实现取决于你。


查看完整回答
反对 回复 2021-07-06
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信