行政区划信息抽取算法(区划抽取)

本文深入探讨中国行政区划信息抽取算法,涵盖区划代码、重名消歧、特殊数据处理及代码示例,适用于Python与Java开发者。

前言

  • 行政区划信息抽取算法,简称区划抽取

  • 本文区划仅针对中国(缺港澳台,2020年国家统计局更新,2019年数据):
    http://www.stats.gov.cn/tjsj/tjbz/
    http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html

必备常识

  • 行政区划:是行政区域划分的简称,是国家为了进行分级管理而实行的区域划分。
等级 详情(2019年,每年会有更新,以更新为准,不要参考此处) 合计
省级行政区 23个省、5个自治区、4个直辖市、2个特别行政区 34
地级行政区 293个地级市、7个地区、30个自治州、3个盟 333
县级行政区 965个市辖区、387个县级市、1323个县、117个自治县、49个旗、3个自治旗、1个特区、1个林区 2846
乡级行政区 8516个街道、20975个镇、8122个乡、966个民族乡、153个苏木、1个民族苏木、1个县辖区 38734
  • 省级行政区划
区划代码(前2位) 省级行政区 简称 行政中心 区划代码(前2位) 省级行政区 简称 行政中心
11 北京市 北京 43 湖南省 长沙
12 天津市 天津 44 广东省 广州
13 河北省 石家庄 45 广西壮族自治区 南宁
14 山西省 太原 46 海南省 海口
15 内蒙古自治区 内蒙古 呼和浩特 50 重庆市 重庆
21 辽宁省 沈阳 51 四川省 川、蜀 成都
22 吉林省 长春 52 贵州省 贵、黔 贵阳
23 黑龙江省 哈尔滨 53 云南省 云、滇 昆明
31 上海市 上海 54 西藏自治区 拉萨
32 江苏省 南京 61 陕西省 陕、秦 西安
33 浙江省 杭州 62 甘肃省 甘、陇 兰州
34 安徽省 合肥 63 青海省 西宁
35 福建省 福州 64 宁夏回族自治区 银川
36 江西省 南昌 65 新疆维吾尔自治区 乌鲁木齐
37 山东省 济南 71 台湾省 台北
41 河南省 郑州 81 香港特别行政区 香港
42 湖北省 武汉 82 澳门特别行政区 澳门

极简代码示例

from jieba.posseg import dt  # 带词性分词

dt.tokenizer.add_word('禅城区', 9, 'ns')  # 地名词库加载

text = '''
广东省佛山市南海区桂城街道地处南海区东南部,西部与禅城区祖庙街道、南部与禅城区石湾镇街道、顺德区陈村镇接壤
'''.strip()

print(set(i.word for i in dt.cut(text)if i.flag == 'ns'))  # 带词性分词
print
{‘顺德区’, ‘佛山市’, ‘南海区’, ‘广东省’, ‘桂城’, ‘禅城区’, ‘石湾镇’}

特殊数据处理

歧义名称

不知所云的名称,直接抛弃

exclusion = {
   
   '市辖区', '县', '省直辖县级行政区划'}

例如【郊区】一词有歧义,可用【阳泉市郊区、佳木斯市郊区、铜陵市郊区】来替代

exclusion = {
   
   '城区', '郊区', '矿区', '东区', '西区'}

重名

  • 省级和市级的行政区划没有重名,区级和县级的行政区划有重名,遇到重名要进一步从文本中查找其上级区划来消除歧义

消歧方法1:层级查找(荐给Java用)

消歧方法2:根据区划代码前缀 设置权重(荐给Python用)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值