前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 行政区域地址标准化:业务经理填报的地址乱起八糟,高德接口有点厉害! -- 后续,使用分词思路完成解析

python 行政区域地址标准化:业务经理填报的地址乱起八糟,高德接口有点厉害! -- 后续,使用分词思路完成解析

作者头像
forxtz
发布2020-10-10 17:07:05
5670
发布2020-10-10 17:07:05
举报
文章被收录于专栏:源懒由码源懒由码

对前文 https://cloud.tencent.com/developer/article/1711568 思路1进行补充。

可以考虑jieba分词库,不过需要先进行训练。

依赖库:jieba

提前准备:国家统计局所有地区信息,以及地区简写。

下来,对使用jieba分词库的add_word。参考使用网站:https://www.cnblogs.com/qilin20/p/12253067.html

import jieba

content = "韩国东大门单鞋女方头绒面一脚蹬韩版休闲2020春季新款平底毛毛鞋"
result = jieba.cut(content)
print("自定义前:",",".join(result))

jieba.add_word("东大门")
jieba.add_word("女方头")
jieba.add_word("一脚蹬")
jieba.add_word("毛毛鞋")
result = jieba.cut(content)
print("自定义后:",",".join(result))

训练词库以后,对固定字段能准确识别

自定义前: 韩国,东大门,单鞋,女方,头,绒面,一脚蹬,韩版,休闲,2020,春季,新款,平底,毛毛鞋
自定义后: 韩国,东大门,单鞋,女方头,绒面,一脚蹬,韩版,休闲,2020,春季,新款,平底,毛毛鞋

训练完成以后,对每个地址进行分词。

1、匹配顺序为:省->市->县(区)->镇(街道)->城乡

2、分词以后是一个list类型,为避免重复匹配,对已经识别到的分词进行抛弃。采用搜索引擎模式分词,可防止街道信息识别不完整

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import jieba
strt = "我爱北京天安门!"
# 全模式
sl = jieba.cut(strt, cut_all=True)
print("全模式:", ",".join(sl))

# 精确模式,默认为精确模式,所以可以不指定cut_all=False
sl = jieba.cut(strt, cut_all=False)
print("精确模式:", ",".join(sl))

# 搜索引擎模式
sl = jieba.cut_for_search(strt)
print("搜索引擎模式:", ",".join(sl))
全模式: 我,爱,北京,天安,天安门,,
精确模式: 我,爱,北京,天安门,!
搜索引擎模式: 我,爱,北京,天安,天安门,!

3、设定默认省、市、区,如果未找到匹配入口,从默认查找入口进入。对省、市均未能有匹配才选择默认查找入口,因为不些省份直接使用市级的情况也挺多。

需要分析一下,市级有没有重名。

其他事项:

1、局限性:对于结构不明了的地址,存在识别误差。

2、考虑可以增加,省市区均未有匹配才选择默认入口,不过需要对区的简称进行去重判断,如果重复太多,则不宜使用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档