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

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

相关文章
|
15天前
|
人工智能 自然语言处理 搜索推荐
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
89 24
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
|
9天前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
769 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
6天前
|
人工智能 开发框架 数据可视化
Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用
Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。
120 27
|
5天前
|
存储 人工智能 NoSQL
Airweave:快速集成应用数据打造AI知识库的开源平台,支持多源整合和自动同步数据
Airweave 是一个开源工具,能够将应用程序的数据同步到图数据库和向量数据库中,实现智能代理检索。它支持无代码集成、多租户支持和自动同步等功能。
52 14
|
8天前
|
人工智能 自然语言处理 数据可视化
Cursor 为低代码加速,AI 生成应用新体验!
通过连接 Cursor,打破了传统低代码开发的局限,我们无需编写一行代码,甚至连拖拉拽这种操作都可以抛诸脑后。只需通过与 Cursor 进行自然语言对话,用清晰的文字描述自己的应用需求,就能轻松创建出一个完整的低代码应用。
546 8
|
12天前
|
人工智能
逼真到离谱!1000个人类克隆进西部世界,AI相似度85%细节太炸裂
《生成式代理:1000人的模拟》由斯坦福大学等机构完成,利用AI技术成功模拟了1000个真实个体的态度和行为,准确率达85%。研究结合大型语言模型与定性访谈数据,旨在为社会科学研究提供新工具,减少偏见,提升公平性。论文还探讨了隐私和伦理问题,并强调了代理的局限性。
38 13
|
6天前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
29 4
|
6天前
|
人工智能 自然语言处理 搜索推荐
现在最火的AI是怎么应用到体育行业的
AI在体育行业的应用日益广泛,涵盖数据分析、伤病预防、观众体验、裁判辅助等多个领域。通过传感器和可穿戴设备,AI分析运动员表现,提供个性化训练建议;预测伤病风险,制定康复方案;优化比赛预测和博彩指数;提升观众的个性化内容推荐和沉浸式观赛体验;辅助裁判判罚,提高准确性;发掘青训人才,优化训练计划;智能管理场馆运营和票务;自动生成媒体内容,提供实时翻译;支持电竞分析和虚拟体育赛事;并为运动员提供个性化营养和健康管理方案。未来,随着技术进步,AI的应用将更加深入和多样化。
|
21天前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
124 9
|
1月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。

热门文章

最新文章