一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块。
举个例子:
[徐汇区虹漕路461号58号楼5楼, 泉州市洛江区万安塘西工业区] ↓ 转换|省 |市 |区 |地址 ||上海市|上海市|徐汇区|虹漕路461号58号楼5楼 ||福建省|泉州市|洛江区|万安塘西工业区 |
注:“地址”列代表去除了省市区之后的具体地址
也可以将大段文本中所有提到的地址提取出来,并且自动将相邻的存在所属关系的地址归并到一条记录中(0.5.5版本新功能):
分店位于徐汇区虹漕路461号58号楼5楼和泉州市洛江区万安塘西工业区以及南京鼓楼区 ↓ 转换|省 |市 |区 ||上海市|上海市|徐汇区||福建省|泉州市|洛江区||江苏省|南京市|鼓楼区|
代码目前仅仅支持python3
pip install cpca
注:cpca是chinese province city area的缩写
如果觉得本模块对你有用的话,施舍个star,谢谢。
常见安装问题:
在 windows 上可能会出现类似如下问题
building wheel for pyahocorasick (setup.py) ... error
先去下载 microsoft visual c++ build tools, 安装完成后,再重新使用 pip install cpca 安装,即可解决问题
开始使用 本模块中最主要的方法是cpca.transform,该方法可以输入任意的可迭代类型(如list,pandas的series类型等),然后将其转换为一个dataframe,下面演示一个最为简单的使用方法:
location_str = [徐汇区虹漕路461号58号楼5楼, 泉州市洛江区万安塘西工业区, 北京朝阳区北苑华贸城]import cpcadf = cpca.transform(location_str)df
输出的结果为(adcode为官方地址编码):
省 市 区 地址 adcode0 上海市 上海市 徐汇区 虹漕路461号58号楼5楼 3101041 福建省 泉州市 洛江区 万安塘西工业区 3505042 北京市 市辖区 朝阳区 北苑华贸城 110105
如果你想获知程序是从字符串的那个位置提取出省市区名的,可以添加一个pos_sensitive=true参数:
location_str = [徐汇区虹漕路461号58号楼5楼, 泉州市洛江区万安塘西工业区, 北京朝阳区北苑华贸城]import cpcadf = cpca.transform(location_str, pos_sensitive=true)df
输出如下:
省 市 区 地址 adcode 省_pos 市_pos 区_pos0 上海市 上海市 徐汇区 虹漕路461号58号楼5楼 310104 -1 -1 01 福建省 泉州市 洛江区 万安塘西工业区 350504 -1 0 32 北京市 市辖区 朝阳区 北苑华贸城 110105 -1 -1 0
从大段文本中提取多个地址(0.5.5版本新功能):
import cpcadf = cpca.transform_text_with_addrs(分店位于徐汇区虹漕路461号58号楼5楼和泉州市洛江区万安塘西工业区以及南京鼓楼区)df
结果为(注意 transform_text_with_addrs 获得的数据,“地址”列都是空的):
省 市 区 地址 adcode0 上海市 市辖区 徐汇区 3101041 福建省 泉州市 洛江区 3505042 江苏省 南京市 鼓楼区 320106
transform_text_with_addrs 还支持和 transform 类似的 index, pos_sensitive 以及 umap 参数
绘图: 模块中还自带一些简单绘图工具,可以在地图上将上面输出的数据以热力图的形式画出来.
这个工具依赖folium,为了减小本模块的体积,所以并不会预装这个依赖,在使用之前请使用pip install folium .
代码如下:
import cpcafrom cpca import drawerdf = cpca.transform_text_with_addrs(分店位于徐汇区虹漕路461号58号楼5楼和泉州市洛江区万安塘西工业区以及南京鼓楼区)drawer.draw_locations(df[cpca._adcode], df.html)
鲲鹏920:业界性能最高的基于ARM的CPU
车载语音识别数据的社会影响与未来展望
灵犀微光实现产学研一体化 联合推动AR产业发展
为了获得更多技术专利 华为在国外悄悄地干了件大事
关于AGV地标读卡器和RFID设备中的一些应用小知识
Python pacp模块:自动识别文字中的省市区并将其绘图
提高经济效益不是梦—高线生产线上的线材测径仪
智慧电厂拥抱“双碳”,空冷岛设施数字化转型
中国移动如何拥抱5G时代?
锂电池包与铅酸蓄电池的对比,它们有哪些优劣势
华宇电子亮相2022世界集成电路大会
华为mate9和p9的区别,16nm工艺处理器给力升级但mate9曲屏版或跳票
C语言零基础项目:生命游戏!详细思路+源码分享
基于PLC的机器人伺服运动控制系统设计详解
用MDaemon搭建邮件服务器-设置篇
松下进一步增强加码动力电池业务的决心
谷歌发布第三季度财报,总营收461.73亿美元
华为 P20在上海发布 还有全球首款全面屏笔记本
怎么应对刘海屏机型的海报设计
相控阵雷达性能的基石:宽禁带半导体