[MGeo应用]使用python+AI模型拆分Excel中地址的省市区街道

简介: [MGeo应用]使用python+AI模型拆分Excel中地址的省市区街道

在处理人员登记信息或者收货地址管理时,常常需要把地址里的省市区镇拆分出来方便后续分类管理。

例如对于地址“上海市静安区乌鲁木齐中路12号”,单独拆分出“上海市/静安区”。

目前一些基于规则的方法无法覆盖到所有情况,比如:

  • 通过“xx省”“xx市”后缀来找省市区的,当缺少该后缀便无法工作。例如:上海静安华山医院,按照后缀是找不到上海和静安的。
  • 通过字符长度来切割的,例如设置省的长度为3,当遇到长度不同的省市区名称变会出错。例如:内蒙古自治区,按照长度切割,内蒙古会被识别为省,自治区会被识别为市。

我们最近开源了一个地址AI模型MGeo系列,包括一个预训练底座和多个下游任务

其中一个下游任务就是识别地址里面的各个元素,包括省、市、区、街道。模型具有很高的准确率,因此适合来解决上述问题。

模型的安装使用也比较简单。

首先需要安装python3.7的环境,没有anaconda的可以直接下载安装python3.7:

conda create -n py37testmaas python=3.7
conda activate py37testmaas

安装相关依赖:

cpu机器:pip install cryptography==3.4.8  tensorflow==1.15.5  torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 openpyxl
gpu机器:pip install cryptography==3.4.8  tensorflow-gpu==1.15.5  torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 openpyxl

安装modelscope:

pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

确认下modelscope版本大于等于1.2.0:

pip freeze | grep modelscope

测试下模型是否可用:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
task = Tasks.token_classification
model = 'damo/mgeo_geographic_elements_tagging_chinese_base'
inputs = '浙江省杭州市余杭区阿里巴巴西溪园区'
pipeline_ins = pipeline(task=task, model=model)
print(pipeline_ins(input=inputs))
#输出 {'output': [{'type': 'prov', 'start': 0, 'end': 3, 'span': '浙江省'}, {'type': 'city', 'start': 3, 'end': 6, 'span': '杭州市'},{'type': 'district', 'start': 6, 'end': 9, 'span': '余杭区'}, {'type': 'poi', 'start': 9, 'end': 17, 'span': '阿里巴巴西溪园区'}]}

可以看到这个模型能将地址里面的省市区街道都拆分出来。剩下的工作便是读取excel内容、识别省市区街道、保存识别结果了。

我们将需要处理的文件保存在test.xlsx里面:

image.png

创建并保存自动处理脚本process.py:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import pandas as pd
def get_pcdt(inputs):
task = Tasks.token_classification
model = 'damo/mgeo_geographic_elements_tagging_chinese_base'
pipeline_ins = pipeline(task=task, model=model)
res = pipeline_ins(input=inputs)
pcdt = {'prov': '', 'city': '', 'district': '', 'town': ''}
for r in res['output']:
if r['type'] in pcdt:
pcdt[r['type']] = r['span']
return pcdt
df = pd.read_excel('test.xlsx')
total_pcdt = {'prov': [], 'city': [], 'district': [], 'town': []}
for line in df['address']:
res = get_pcdt(line)
for k in res:
total_pcdt[k].append(res[k])
for k in total_pcdt:
df[k] = total_pcdt[k]
df.to_excel('test_out.xlsx', index=False, header=True)

运行process.py:

python process.py

程序自动运行结束后我们从test_out.xlsx可以得到省市区街道的抽取结果:

image.png

使用测试数据与源代码可以访问MGeoExample/拆分Excel中地址的省市区街道 at main · PhantomGrapes/MGeoExample · GitHub

相关文章
|
5月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
412 0
|
6月前
|
数据采集 监控 Java
Python 函数式编程的执行效率:实际应用中的权衡
Python 函数式编程的执行效率:实际应用中的权衡
306 102
|
5月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
632 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
4月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
536 7
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
python编写AI生常用匡架及使用指令集
本文介绍Python中常用AI框架,包括TensorFlow、PyTorch、Scikit-learn、Hugging Face、spaCy、OpenCV及XGBoost等,涵盖安装指令与基础代码示例,适用于机器学习、深度学习、自然语言处理与计算机视觉等领域,助力快速入门与应用开发。(238字)
430 7
|
4月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
482 0
|
5月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
374 6
|
6月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1165 1
|
5月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
369 0
|
6月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
366 0

热门文章

最新文章

推荐镜像

更多