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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: [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

相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
39 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
|
8天前
|
算法 数据处理 Python
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,广泛应用于信号处理领域。它通过线性最小二乘法拟合低阶多项式到滑动窗口中的数据点,在降噪的同时保持信号的关键特征,如峰值和谷值。本文介绍了该滤波器的原理、实现及应用,展示了其在Python中的具体实现,并分析了不同参数对滤波效果的影响。适合需要保持信号特征的应用场景。
52 11
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
|
15天前
|
人工智能
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
AniDoc 是一款基于视频扩散模型的 2D 动画上色 AI 模型,能够自动将草图序列转换为彩色动画。该模型通过对应匹配技术和背景增强策略,实现了色彩和风格的准确传递,适用于动画制作、游戏开发和数字艺术创作等多个领域。
83 16
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
|
1天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
25天前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
76 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
27天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
66 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
27天前
|
人工智能 搜索推荐 开发者
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
Aurora是xAI为Grok AI助手推出的新图像生成模型,专注于生成高逼真度的图像,特别是在人物和风景图像方面。该模型支持文本到图像的生成,并能处理包括公共人物和版权形象在内的多种图像生成请求。Aurora的可用性因用户等级而异,免费用户每天能生成三张图像,而Premium用户则可享受无限制访问。
65 11
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
|
22小时前
|
人工智能 Python
ImBD:复旦联合华南理工推出 AI 内容检测模型,快速辨别文本内容是否为 AI 生成
ImBD是一款由复旦大学、华南理工大学等机构联合推出的AI内容检测器,能够快速识别机器修订文本,适用于多种场景,显著提升检测性能。
15 6
ImBD:复旦联合华南理工推出 AI 内容检测模型,快速辨别文本内容是否为 AI 生成
|
30天前
|
机器学习/深度学习 人工智能 编解码
【AI系统】Transformer 模型小型化
本文介绍了几种轻量级的 Transformer 模型,旨在解决传统 Transformer 参数庞大、计算资源消耗大的问题。主要包括 **MobileVit** 和 **MobileFormer** 系列,以及 **EfficientFormer**。MobileVit 通过结合 CNN 和 Transformer 的优势,实现了轻量级视觉模型,特别适合移动设备。MobileFormer 则通过并行结构融合了 MobileNet 和 Transformer,增强了模型的局部和全局表达能力。
60 8
【AI系统】Transformer 模型小型化
|
28天前
|
存储 人工智能 PyTorch
【AI系统】模型转换流程
本文详细介绍了AI模型在不同框架间的转换方法,包括直接转换和规范式转换两种方式。直接转换涉及从源框架直接生成目标框架的模型文件,而规范式转换则通过一个中间标准格式(如ONNX)作为桥梁,实现模型的跨框架迁移。文中还提供了具体的转换流程和技术细节,以及模型转换工具的概览,帮助用户解决训练环境与部署环境不匹配的问题。
45 5
【AI系统】模型转换流程

热门文章

最新文章