目录

1.提取省市区信息

2.提取街镇乡、村或居委会信息

3.自动补全省市信息


简介:本文介绍用Python编程,实现对物流地址的拆分及补全。在快递物流中会用到这种技术。

在TDS地图可视化项目中,我们获取了非常详细的安装地址。但在地图展示上,我们还想把它分解到具体的省、市、区(县)。

几十万条数据,用手工肯定不现实。该如何实现?

第一反应是Excel截取两个指定字符间的字符,例如截取省市之间的字符。但这种方法会存在问题,因为我们地址的格式非标准化,有填得好的,省市区等等都有信息,有填的差的,缺那么一部分。数据质量并不是那么的好,例如下面一些地址:

广东省龙华区龙华街道清湖花半里花园
兰山区柳青街道柳青街道万城花开
贵阳市白云区艳山红社区旭辉观云
兴宁区三塘镇广西南宁市兴宁区三塘镇昆仑大道995号嘉和城白鹭南山
湘阴县六塘乡茶木村八组

得换一个方法。我联想到的是我们寄快递的时候,输入一个地址,系统自动实现了分割。于是我去查了下,网上有这种服务。这个技术并不难,但是要收费。

为了省点钱,只好自己写代码解决。这次我用Python并借助第三方库jionlp来实现。

jionlp是一个中文NLP(Natural Language Processing,自然语言处理)预处理、解析工具包。

首先用pip安装jionlp

建议用下面这个镜像网站下载,速度很快。

pip install jionlp -i https://pypi.douban.com/simple/

安装截图:

现在我们来试下:

1.提取省市区信息

# -*- coding:utf-8 -*-
#王永平 2022.6.15
import jionlp  as jio
#测试地址
raw_addres = [
'广东深圳市龙华区龙华街道清湖花半里花园',
'山东省临沂市兰山区柳青街道柳青街道万城花开',
'贵州省贵阳市白云区艳山红社区旭辉观云',
'广西壮族自治区南宁市兴宁区三塘镇广西南宁市兴宁区三塘镇昆仑大道995号嘉和城白鹭南山',
'湖南岳阳市湘阴县六塘乡茶木村八组'
]for i in range(5):#解析地址信息result=jio.parse_location(raw_addres[i])print("------地址:"+str(i+1)+"------")#输出省print(result['province'])#输出市print(result['city'])#输出区、县print(result['county'])

运行结果:

2.提取街镇乡、村或居委会信息

设置参数town_village=True,可以额外尝试提取出街镇乡、村或居委会信息等级别的信息字段。注意这个是尝试提取,不一定能提出出来。还是刚刚的那些数据。我们试下:

# -*- coding:utf-8 -*-
#王永平 2022.6.15
import jionlp  as jio
#测试地址
raw_addres = [
'广东深圳市龙华区龙华街道清湖花半里花园',
'山东省临沂市兰山区柳青街道柳青街道万城花开',
'贵州省贵阳市白云区艳山红社区旭辉观云',
'广西壮族自治区南宁市兴宁区三塘镇广西南宁市兴宁区三塘镇昆仑大道995号嘉和城白鹭南山',
'湖南岳阳市湘阴县六塘乡茶木村八组'
]for i in range(5):#解析地址信息result=jio.parse_location(raw_addres[i],town_village=True)print("------地址:"+str(i+1)+"------")#输出省print(result['province'])#输出市print(result['city'])#输出区、县print(result['county'])#输出镇print(result['town'])#输出村print(result['village'])

运行结果:

可见基本上村是没有提取出来的,镇这个级别还有可能提取出来。但对于我这个项目来说,只需要定位到区、县就足够了。

3.自动补全省市信息

很多时候,我们的录单没有很规范,有些地址填的不全,这给我们处理带来了一些麻烦。这时我们可以尝试进行省市的补全:

# -*- coding:utf-8 -*-
#王永平 2022.6.15
import jionlp  as jio
#测试地址,部分省市信息是不全的
raw_addres = [
'广东省龙华区龙华街道清湖花半里花园',
'兰山区柳青街道柳青街道万城花开',
'贵阳市白云区艳山红社区旭辉观云',
'兴宁区三塘镇广西南宁市兴宁区三塘镇昆仑大道995号嘉和城白鹭南山',
'湘阴县六塘乡茶木村八组'
]for i in range(5):#解析地址信息result=jio.parse_location(raw_addres[i])print("------地址:"+str(i+1)+"------")#输出补全后的地址信息print(result['full_location'])

运行后,地址自动补全:

一般来说,有定位到省,或者定位到市,相对来说就能自动补全而不出错。因为全国有很多地方可能存在相同名字的区,所以最好能够定位一下到省或者市,不然就可能补全得不对,补到其他省市去了。

幸运的是,我们的原始数据里,省的信息还是有的,这给自动补全带来了极大方便。

利用这种方法,我们就实现了地址的分割,将TDS与省、市、区、县,甚至下面的镇、村对应起来。

使用Pyecharts进行全国水质TDS地图可视化全过程3:用Python拆分物流地址以及实现地址补全相关推荐

  1. 使用Pyecharts进行全国水质TDS地图可视化全过程1:总体过程简述

    目录 一.效果图 二.实现过程1:数据来源及清洗 三.实现过程2:数据分析 四.实现过程3:数据可视化 分享使用Pyecharts进行全国水质TDS地图可视化的全过程. 一.效果图 本次对全国TDS进 ...

  2. 使用Pyecharts进行全国水质TDS地图可视化全过程6:利用Python+Selenium自动化获取页面信息

    本文是扩展文,介绍利用Selenium模拟人工操作,从网页上自动获取信息.这样一种方法可以处理重复性工作,解放双手,提高工作效率.属于使用Pyecharts做可视化之前的一些其他探索. 在利用Exce ...

  3. 使用Pyecharts进行全国水质TDS地图可视化全过程7:使用pyecharts画地图总述

    目录 一.什么是pyecharts? 二.安装pyecharts? 三.pyecharts使用文档 四.pyecharts画地图 五.需要注意的事项 六.地图的下钻 本文为总述.后面几篇文章再详细的拿 ...

  4. 使用Pyecharts进行全国水质TDS地图可视化全过程5:利用Excel地图实现美国水质地图可视化

    本文是扩展文,介绍使用Excel进行地图可视化.属于使用Pyecharts做可视化之前的一些其他探索. 今天我们讲下如何利用Excel自带的Power Map做可视化,2013版EXCEL开始,自带了 ...

  5. 使用Pyecharts进行全国水质TDS地图可视化全过程4:使用Python将Excel表拆分至多个Excel文件

    在TDS可视化项目中,我们需要对省.市.区各个层级区域的TDS数据进行计算.它涉及的数量很大,大概有3211个区域的数据. 我们当然可以编程直接在一个表格上处理,但是涉及到这么多区域,它会很容易出错, ...

  6. 使用Pyecharts进行全国水质TDS地图可视化全过程2:使用Power Query 进行百万行级别数据匹配

    简介:本文介绍使用Excel  Power Query进行数据匹配.利用这种方式,可以在几分钟内完成百万级别数据量的匹配. 在TDS可视化地图项目中,我们的原始数据没有TDS和具体安装地址的对应,我们 ...

  7. 使用Pyecharts进行全国水质TDS地图可视化全过程10:地图的下钻,实现省、市、区县的联动

    地图生成后是HTML文件.有了省级地图之后,如果我们想链接到市级地图.我们可以自己改一下生成的地图的HTML源代码. 打开要增加链接的地图文件,例如"全国.html",直接到代码的 ...

  8. 利用pyecharts对职位数据进行地图可视化

    前言 pyecharts 是基于百度开源的Echarts.方便与Python 进行对接.直接可以用于python的一个库. 今天我们利用pyecharts实现职位数据的地图可视化. 安装pyechar ...

  9. python pyecharts map不显示_pyecharts 地图不显示问题

    最近在学习pyecharts这个库,实现地图可视化的时候,发现地图一直加载不出来,查了一番资料,原来是在v0.3.2+ 起,地图已经变成扩展包,需要自行安装 解决办法 pip install echa ...

最新文章

  1. c++ array容器 传参_华东理工:氮和氧共掺杂的分级多孔碳,用于超级电容器的电极材料...
  2. Microsoft Exchange Server 2010测试四成员DAG
  3. Coinbase内部调查未发现比特币现金内幕交易证据
  4. ubuntu1604编译android5.1(android L)失败error: unsupportedreloc 43等问题
  5. R语言应用实战-基于R浅谈SEIR传染病模型以以及马尔萨斯,logistic模型(推导过程和源代码)
  6. 深圳职业技术学院计算机工程学院江学锋,毕业论文附属材料07013505刘丽.doc
  7. JVM垃圾收集器——G1
  8. 2G、3G即将退出群聊;全国携号转网就要实现了;5G商用列车已发车...
  9. 区块链 2.0:下一个计算范式
  10. 目标检测——使用OpenCV读取图片要注意进行维度变换
  11. (原創) 為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC)
  12. 满二叉树与完全二叉树入门
  13. Asp.Net前台页面调用后台cs变量
  14. 为计算机快捷方式是什么原因,为什么我的电脑界面上的东西都变成快捷方式??...
  15. 汇编堆栈平衡的几种方式
  16. html代码学习离线文档,新手学HTML代码的简易方法
  17. linux usb转串口驱动报错,[驱动]内核添加USB转串口驱动支持
  18. 世界编程语言排行榜第一是Python【Python为什么那么火】
  19. OM_销售订单的四个主要环节和每个环节用到的常用表
  20. POG个体成长模型:痛苦是成长的起点

热门文章

  1. vue用form上传图片_Vue formData实现图片上传
  2. 力扣数组算法(c++)(代码随想录数组部分)
  3. 黑龙江省计算机等级考试网 123.57.55.61,2019年的下半年黑龙江省计算机等级考试报名工作即将开始...
  4. 基于51单片机汽车自动照明灯远近光灯proteus仿真原理图PCB
  5. 【CSP-S 2019】【洛谷P5664】Emiya 家今天的饭【dp】
  6. 从进入内核态看内存管理--文末送书
  7. IP协议及IP数据包详解
  8. 巧用excel公式提取网址中的域名---超级好用
  9. 美和易思荣获3A级信用企业称号
  10. 【C#设计模式】8.装饰模式(Decorator Pattern)【结构型】