2025年4月12日 星期六 乙巳(蛇)年 正月十三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python:使用 jionlp和cpca 实现国内地址文本解析

时间:05-15来源:作者:点击数:37

使用 jionlp解析国内地址文本

jionlp: 中文 NLP 预处理、解析工具包,准确、高效、易用

  • github: https://github.com/dongrixinyu/JioNLP
  • 文档:http://www.jionlp.com/

使用示例

  • import json
  • import jionlp as jio
  • lst = [
  • '四川省成都市武侯区红牌楼街19号红星大厦9楼2号',
  • '杭州市滨江区网商路599号',
  • '东城区和平里街道',
  • '上海市徐汇区xx小区'
  • ]
  • for text in lst:
  • res = jio.parse_location(text)
  • print(json.dumps(res, ensure_ascii=False, indent=2))

解析结果

  • {
  • "province": "四川省",
  • "city": "成都市",
  • "county": "武侯区",
  • "detail": "红牌楼街19号红星大厦9楼2号",
  • "full_location": "四川省成都市武侯区红牌楼街19号红星大厦9楼2号",
  • "orig_location": "四川省成都市武侯区红牌楼街19号红星大厦9楼2号"
  • }
  • {
  • "province": "浙江省",
  • "city": "杭州市",
  • "county": "滨江区",
  • "detail": "网商路599号",
  • "full_location": "浙江省杭州市滨江区网商路599号",
  • "orig_location": "杭州市滨江区网商路599号"
  • }
  • {
  • "province": "北京市",
  • "city": "北京市",
  • "county": "东城区",
  • "detail": "和平里街道",
  • "full_location": "北京市东城区和平里街道",
  • "orig_location": "东城区和平里街道"
  • }
  • {
  • "province": "上海市",
  • "city": "上海市",
  • "county": "徐汇区",
  • "detail": "xx小区",
  • "full_location": "上海市徐汇区xx小区",
  • "orig_location": "上海市徐汇区xx小区"
  • }

使用 cpca 实现解析国内地址文本

cpca:一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块

目前仅仅支持python3

github: https://github.com/DQinYuan/chinese_province_city_area_mapper

  • import json
  • import cpca
  • lst = [
  • '四川省成都市武侯区红牌楼街19号红星大厦9楼2号',
  • '杭州市滨江区网商路599号',
  • '东城区和平里街道',
  • '上海市徐汇区xx小区'
  • ]
  • df = cpca.transform(lst)
  • print(json.dumps(df.to_dict(), ensure_ascii=False, indent=2))
  • 省 市 区 地址 adcode
  • 0 四川省 成都市 武侯区 红牌楼街19号红星大厦9楼2号 510107
  • 1 浙江省 杭州市 滨江区 网商路599号 330108
  • 2 北京市 市辖区 东城区 和平里街道 110101
  • 3 上海市 市辖区 徐汇区 xx小区 310104

转为json数据

  • {
  • "省": {
  • "0": "四川省",
  • "1": "浙江省",
  • "2": "北京市",
  • "3": "上海市"
  • },
  • "市": {
  • "0": "成都市",
  • "1": "杭州市",
  • "2": "市辖区",
  • "3": "市辖区"
  • },
  • "区": {
  • "0": "武侯区",
  • "1": "滨江区",
  • "2": "东城区",
  • "3": "徐汇区"
  • },
  • "地址": {
  • "0": "红牌楼街19号红星大厦9楼2号",
  • "1": "网商路599号",
  • "2": "和平里街道",
  • "3": "xx小区"
  • },
  • "adcode": {
  • "0": "510107",
  • "1": "330108",
  • "2": "110101",
  • "3": "310104"
  • }
  • }

总结

通过比对,发现两者的解析结果相差不是太大

库名 star
JioNLP 2.9K
cpca 1.6K
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门