[MGeo应用]使用Python+AI模型比较地址相似度

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: [MGeo应用]使用Python+AI模型比较地址相似度

在处理人员登记信息或者收货地址管理时,总会遇到一个麻烦的问题,就是相同的地址存在各种不同的写法。

例如“紫萱路363号人力社保局”经常被简写成“紫萱路363号市人社局”。

基于规则的方法难以覆盖各种个性化的写法,例如“人力社保局”同样可以被省略成“社保局”。

~~另外,同一个路名路号下也可能同时有多个不同的POI,而某些情况则会省略掉路号,如“紫萱路市人社局”,因此不能简单地根据路名路号来判断。~~

而使用AI模型,则可以很方便的比较两条地址是否描述同一个地方。

首先需要安装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.sentence_similarity
model = 'damo/mgeo_geographic_entity_alignment_chinese_base'
inputs = ('紫萱路363号人力社保局', '紫萱路363号市人社局')
pipeline_ins = pipeline(task=task, model=model)
print(pipeline_ins(input=inputs))
# {'scores': [0.6519672274589539, 0.2855909466743469, 0.062441859394311905], 'labels': ['exact_match', 'not_match', 'partial_match']}

可以看到这个模型能够正确判断这两条地址是“完全匹配”(exact_match)的。

接下来便是读取excel内容,计算两条地址之间的相似度,最后保存结果。

address_1

address_2

紫萱路363号人力社保局

紫萱路363号市人社局

联胜路3号期望铭座

联胜路3号

文化西路9号泰华国际大酒店

文化西路酒店

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

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import pandas as pd
import numpy as np
def get_sim(inputs):
    task = Tasks.sentence_similarity
    model = 'damo/mgeo_geographic_entity_alignment_chinese_base'
    pipeline_ins = pipeline(task=task, model=model)
    res = pipeline_ins(input=inputs)
    sim_label = res['labels'][np.argmax(res['scores'])]
    sim_score = res['scores'][np.argmax(res['scores'])]
    return sim_label, sim_score
df = pd.read_excel('test.xlsx')
total_res = {'label': [], 'score': []}
for address_1, address_2 in zip(df['address_1'], df['address_2']):
    inputs = (address_1, address_2)
    sim_label, sim_score = get_sim(inputs)
    total_res['label'].append(sim_label)
    total_res['score'].append(sim_score)    
for k in total_res:
    df[k] = total_res[k] 
df.to_excel('test_out.xlsx', index=False, header=True)

运行process.py:python process.py

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

address_1

address_2

label

score

紫萱路363号人力社保局

紫萱路363号市人社局

exact_match

0.651967

联胜路3号期望铭座

联胜路3号

exact_match

0.859978

文化西路9号泰华国际大酒店

文化西路酒店

partial_match

0.97964

使用测试数据与源代码可以访问:https://github.com/PhantomGrapes/MGeoExample/tree/main/%E5%9C%B0%E5%9D%80%E7%9B%B8%E4%BC%BC%E5%BA%A6%E5%88%A4%E6%96%AD

相关文章
|
10天前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
177 12
|
4天前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
|
6天前
|
设计模式 机器学习/深度学习 人工智能
AI-Native (AI原生)图解+秒懂: 什么是 AI-Native 应用(AI原生应用)?如何设计一个 AI原生应用?
AI-Native (AI原生)图解+秒懂: 什么是 AI-Native 应用(AI原生应用)?如何设计一个 AI原生应用?
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
|
4天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
156 61
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
7天前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
71 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
|
4天前
|
数据采集 人工智能 前端开发
Playwright与AI智能体的网页爬虫创新应用
厌倦重复测试与低效爬虫?本课程带您掌握Playwright自动化工具,并融合AI大模型构建智能体,实现网页自主分析、决策与数据提取,完成从脚本执行到智能架构的能力跃升。
|
5天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
81 7
|
9天前
|
边缘计算 人工智能 算法
AI在智慧能源管理中的边缘计算应用
AI在智慧能源管理中的边缘计算应用
77 13
|
5天前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。

热门文章

最新文章

推荐镜像

更多