改良cpca库以实现百万级复杂中文地址解析

【投稿赢 iPhone 17】「我的第一个开源项目」故事征集:用代码换C位出道! 10w+人浏览 1.5k人参与

改良cpca库以实现百万级复杂中文地址解析

之前写了一篇文章批量解析中文字符串中的地址信息,主要讲了怎么批量解析提取中文字符串中的地址信息,当时的数据量比较小,大概在十万级别,而且字符串只是单独的城市,比如“北京市”、“青岛市”这样。

看到个有个粉丝看到在后台找这篇文章的代码

在这里插入图片描述

正好假期无聊的我帮他解决一下问题

在这里插入图片描述

具体需求是对百万级别的中文地址字符串进行提取,而且地址较为复杂,比如“垫江县桂溪街道南新街XXX号”、“黔江区石会镇梅子村委”,很多都是县区级别的地址,需要提取出对应的地级市,用之前的代码试了下,速度非常慢,而且提取效率不是很理想,有17%左右的字符串没有提取到。

经过多轮修改,主要是以下几点问题:

  1. 无法解析纯区县地址;
  2. 地址中包含正则表达式的特殊字符如[、]、(、)等会报错;
  3. 在修改为多线程的尝试中发现会导致结果错乱

后来搞得头大的我决定尝试一下cpca库:https://github.com/DQinYuan/chinese_province_city_area_mapper

试了下发现解析率很不错,但是很多城市没有解析出来,推测可能跟数据比较老有关,github上的代码已经7年没有更新了。

详细看了下cpca的代码,发现采用的行政区域表还是很多年前的版本,很多城市的区划都发生变化了,怪不得很多城市识别不到,还有人在issues里提bug:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值