本机windows搭建达摩院与高德联合出品的地理地址自然语言处理模型GMeo实战

news2024/11/16 6:41:28

文章目录

  • 本机windows搭建达摩院与高德联合出品的地理地址自然语言处理模型GMeo实战
    • 简介
      • 多模态地理文本预训练模型MGeo
      • GeoGLUE
    • 环境安装
    • ModelScope相关安装
      • conda虚拟环境
      • 深度学习基础库
      • 安装modelscope模型
    • 测试代码
      • 代码
      • 输入xlsx文件
      • 运行这段测试代码
      • 输出xlsx
      • 耗时
    • 如果有自定义样本可以下载数据集进行训练

本机windows搭建达摩院与高德联合出品的地理地址自然语言处理模型GMeo实战

简介

多模态地理文本预训练模型MGeo

MGeo提炼了常用的地址处理任务并建立了地理语义理解能力评测基准GeoGLUE,使用MGeo底座在GeoGLUE中提供的任务数据集上进行了训练。
地址信息处理是对地址相关文本的自动化挖掘、理解与关联。这项技术广泛地应用在社会生活的各个场景之中。例如我们常用的地图软件中就用到了大量的地址信息处理技术来构建POI库,实现POI搜索与推荐;在外卖物流行业中,对于地址的解析、定位准确率的提升则直接带来运力成本的大量降低;目前在诸多挪车、外呼、报警等场景下也用上了地址自动化处理技术,大大节省了接线员定位事故发生地的时间;在零售行业中,地址也是会员体系管理的核心要素。
地址信息处理涵盖了多种的NLP任务,从输入的形式来看可以分为:单句任务:输入是一条地址;句子对任务:输入是两条地址;多模态任务:输入是地址以及地图;针对这三种输入形态设计了三种预训练任务:注意力对抗预训练(ASA)、句子对预训练(MaSTS)、多模态预训练。并用多任务预训练(MOMETAS)技术将这三种预训练任务进行动态组合,训练得到适合于多类地址任务的预训练底座。

GeoGLUE

地理语义理解能力评测基准 GeoGLUE(GeoGraphic Language Understanding Evaluation)是由阿里巴巴达摩院自然语言处理组与高德联合发起提供的数据集,旨在推动地理相关文本处理技术和社区的发展。地理文本即描述地理实体、位置的自然文本,具有表达方式丰富、蕴含空间推理、知识强依赖等特点。此外,地理文本与现实地理世界的关联性也带来了诸多挑战。地理文本信息的自动化处理是许多地理语义应用的核心技术,本榜单提炼了其中多个典型场景:地图搜索、电商物流、政府登记、金融交通,并设计了六个核心任务:门址地址要素解析、地理实体对齐、Query-POI库召回、Query-POI相关性排序、地址Query成分分析、WhereWhat切分。为了避免地理信息安全问题,涉及POI地址库部分我们基于全开源GIS系统OpenStreetMap标注,并人工编写了数十万Query。

环境安装

IDE:VSCode
CPU:9代i7
GPU:GTX1650
MEM:32G
OS:windows11

感觉GPU拿不出手,用CPU跑一下试试。

ModelScope相关安装

conda虚拟环境

# CPU版本
conda create -n py37testmaas python=3.7

openssl-1.1.1w | 5.5 MB | ######################################################################################## | 100%
setuptools-65.6.3 | 1.1 MB | ######################################################################################## | 100%
python-3.7.16 | 17.2 MB | ######################################################################################## | 100%
wincertstore-0.2 | 15 KB | ######################################################################################## | 100%
sqlite-3.41.2 | 894 KB | ######################################################################################## | 100%
ca-certificates-2023 | 127 KB | ######################################################################################## | 100%
pip-22.3.1 | 2.7 MB | ######################################################################################## | 100%
wheel-0.38.4 | 82 KB | ######################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

深度学习基础库

  • tensorflow默认版本报错
pip install cryptography==3.4.8  tensorflow==1.15.5  torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0

ERROR: Could not find a version that satisfies the requirement tensorflow1.15.5 (from versions: 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0rc0, 2.6.0rc1, 2.6.0rc2, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.7.0rc0, 2.7.0rc1, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.8.0rc0, 2.8.0rc1, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.9.0rc0, 2.9.0rc1, 2.9.0rc2, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.10.0rc0, 2.10.0rc1, 2.10.0rc2, 2.10.0rc3, 2.10.0, 2.10.1, 2.11.0rc0, 2.11.0rc1, 2.11.0rc2, 2.11.0, 2.11.1, 2.12.0rc0, 2.12.0rc1, 2.12.0, 2.12.1, 2.13.0rc0, 2.13.0rc1, 2.13.0rc2, 2.13.0, 2.13.1, 2.14.0rc0, 2.14.0rc1, 2.14.0, 2.14.1, 2.15.0rc0, 2.15.0rc1, 2.15.0)
ERROR: No matching distribution found for tensorflow
1.15.5

  • 换成tensorflow==2.5.0
pip install tensorflow==2.5.0  torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0

漫长的等待过程…

Defaulting to user installation because normal site-packages is not writeable
Collecting tensorflow==2.5.0
Downloading tensorflow-2.5.0-cp39-cp39-win_amd64.whl (422.6 MB)
|████████████████████████████████| 422.6 MB 136 kB/s

  • torch也出错

Collecting torch==1.11.0
Downloading torch-1.11.0-cp39-cp39-win_amd64.whl (157.9 MB)
|███████▌ | 37.5 MB 81 kB/s eta 0:24:31ERROR: Exception:
Traceback (most recent call last):

安装到一半报错了。
觉得安装时间太长,出去吃了个饭,回来就发现报错。分析是电脑设置了睡眠,导致安装连接超时,所以报错。取消电脑休眠设置,重新安装。

pip install torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0

成功。
Collecting torch1.11.0
Downloading torch-1.11.0-cp39-cp39-win_amd64.whl (157.9 MB)
|████████████████████████████████| 157.9 MB 12 kB/s
Collecting torchvision
0.12.0
Downloading torchvision-0.12.0-cp39-cp39-win_amd64.whl (1.0 MB)
|████████████████████████████████| 1.0 MB 656 kB/s
Collecting torchaudio==0.11.0
Downloading torchaudio-0.11.0-cp39-cp39-win_amd64.whl (372 kB)
|████████████████████████████████| 372 kB 595 kB/s

Requirement already satisfied: typing-extensions in c:\programdata\anaconda3\lib\site-packages (from torch1.11.0) (4.1.1)
Requirement already satisfied: requests in c:\programdata\anaconda3\lib\site-packages (from torchvision
0.12.0) (2.27.1)
Requirement already satisfied: numpy in c:\programdata\anaconda3\lib\site-packages (from torchvision0.12.0) (1.21.5)
Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in c:\programdata\anaconda3\lib\site-packages (from torchvision
0.12.0) (9.0.1)
Requirement already satisfied: charset-normalizer~=2.0.0 in c:\programdata\anaconda3\lib\site-packages (from requests->torchvision0.12.0) (2.0.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\programdata\anaconda3\lib\site-packages (from requests->torchvision
0.12.0) (1.26.9)
Requirement already satisfied: idna<4,>=2.5 in c:\programdata\anaconda3\lib\site-packages (from requests->torchvision0.12.0) (3.3)
Requirement already satisfied: certifi>=2017.4.17 in c:\programdata\anaconda3\lib\site-packages (from requests->torchvision
0.12.0) (2021.10.8)
Installing collected packages: torch, torchvision, torchaudio
WARNING: The scripts convert-caffe2-to-onnx.exe, convert-onnx-to-caffe2.exe and torchrun.exe are installed in ‘C:\Users\NieNVIDIA\AppData\Roaming\Python\Python39\Scripts’ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed torch-1.11.0 torchaudio-0.11.0 torchvision-0.12.0

安装modelscope模型

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

测试代码

代码


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)

输入xlsx文件

在这里插入图片描述

运行这段测试代码

报错

Traceback (most recent call last):
File “d:\workspace_python\AI_EAS_Python\MGeoExample-main\MGeoExample-main\地址相似度判断\process.py”, line 18, in
df = pd.read_excel(“test.xlsx”)
File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\util_decorators.py”, line 311, in wrapper
return func(*args, **kwargs)
File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel_base.py”, line 457, in read_excel
io = ExcelFile(io, storage_options=storage_options, engine=engine)
File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel_base.py”, line 1376, in init
ext = inspect_excel_format(
File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel_base.py”, line 1250, in inspect_excel_format
with get_handle(
File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\common.py”, line 798, in get_handle
handle = open(handle, ioargs.mode)
FileNotFoundError: [Errno 2] No such file or directory: ‘test.xlsx’

将输入、输出的xlsx文件路径换成绝对路径

df = pd.read_excel("D:/workspace_python/AI_EAS_Python/MGeoExample-main/MGeoExample-main/地址相似度判断/test.xlsx")

df.to_excel("D:/workspace_python/AI_EAS_Python/MGeoExample-main/MGeoExample-main/地址相似度判断/test_out.xlsx", index=False, header=True)

重新运行,成功

2024-02-21 12:37:52,205 - modelscope - INFO - Use user-specified model
revision: v1.2.0 Downloading:
100%|█████████████████████████████████████████████████████████████████████████████|
1.57k/1.57k [00:00<00:00, 231kB/s] Downloading: 100%|█████████████████████████████████████████████████████████████████████████████|
2.21k/2.21k [00:00<00:00, 368kB/s] Downloading: 100%|██████████████████████████████████████████████████████████████████████████████|
390M/390M [00:41<00:00, 9.87MB/s] Downloading:
100%|████████████████████████████████████████████████████████████████████████████████████|
9.92k/9.92k [00:00<?, ?B/s] Downloading: 100%|██████████████████████████████████████████████████████████████████████████████|
107k/107k [00:00<00:00, 2.00MB/s]

输出xlsx

在这里插入图片描述

耗时

在CPU环境下,不包括环境安装,仅执行推理过程,耗时共4秒。如下:

开始时间:2024-02-21 12:37:46,509
完成时间:2024-02-21 12:41:21,134

如果有自定义样本可以下载数据集进行训练

运行上述实战不需要执行下列GeoGLUE模型操作。但是如有自定义样本可以下载数据集进行训练。

git clone https://www.modelscope.cn/datasets/damo/GeoGLUE.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1463590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PLC_博图系列☞基本指令“异或“运算

PLC_博图系列☞基本指令“异或“运算 文章目录 PLC_博图系列☞基本指令“异或“运算背景介绍X&#xff1a;“异或”运算说明参数示例真值表 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 异或 背景介绍 这是一篇关于PLC编程的文章&#xff0c;特别是关于西门子的…

Python如何运用turtle绘制阴阳太极图

本文详细分析如何使用Python turtle绘制阴阳太极图&#xff0c;先来分解这个图形&#xff0c;图片中有四种颜色&#xff0c;每条曲线上的箭头表示乌龟移动的方向&#xff0c;首先从中心画一个半圆&#xff08;红线&#xff09;&#xff0c;以红线所示圆的直径作半径画一个校园&…

Leo赠书活动-18期 《高效使用Redis》

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

机器学习面试:逻辑回归与朴素贝叶斯区别

逻辑回归与朴素贝叶斯区别有以下几个方面: (1)逻辑回归是判别模型&#xff0c;朴素贝叶斯是生成模型&#xff0c;所以生成和判别的所有区别它们都有。 (2)朴素贝叶斯属于贝叶斯&#xff0c;逻辑回归是最大似然&#xff0c;两种概率哲学间的区别。 (3)朴素贝叶斯需要条件独立假设…

#1.4w字长文#仿抖音项目架构设计与实现

一、项目介绍 本文介绍了一个Web端短视频应用&#xff0c;致力于为用户提供交互友好、功能完备的短视频浏览体验和直播体验。 集成了Gorse推荐算法&#xff0c;旨在为用户提供更个性化的推荐视频流和更权威的热门视频流。接入大模型&#xff0c;通过对视频内容进行语言分析&a…

大数据Kafka--概述

文章目录 概述定义消息队列传统消息队列的应用场景消息队列的两种模式 Kafka基础架构 Kafka快速入门安装部署集群规划集群部署集群启停脚本 Kafka命令行操作主题命令行操作生产者命令行操作消费者命令行操作 概述 定义 消息队列 目前企业中比较常见的消息队列产品主要有 Kafk…

C/C++的内存管理(1)

内存管理 C与C的内存分布C语言中动态内存管理方式回顾C内存管理的方式 C与C的内存分布 我们学习C语言时就知道&#xff0c;储存不同的变量计算机会相应分配不同区块的内存。那为什么要把内存化为不同的区域呢&#xff1f;实质上是为了方便管理 下面我们来看看下面一道例题&…

了解JSON的作用及其方法

什么是json JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式采用完全独立编程语言的文本格式存储和表示数据&#xff08;就是字符串&#xff09;。它基于JavaScript语法&#xff0c;但可以被多种编程语言使用和解析。JSON以键值对的形式存…

05 类和对象 3

目录 再谈构造函数static成员友元内部类匿名对象拷贝对象时一些编译器优化再次理解封装 1. 再谈构造函数 1.1 构造函数赋值 在创建对象时&#xff0c;编译器调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 class Date { public: Date(int year, int month,…

前端基础自学整理|DOM树

DOM&#xff0c;文档对象模型&#xff08;Document Object Model&#xff09;&#xff0c;简单的说&#xff0c;DOM是一种理念&#xff0c;一种思想&#xff0c;一个与系统平台和编程语言无关的接口&#xff0c;一种方法, 使 Web开发人员可以访问HTML元素&#xff01;不是具体方…

MySQL语句大全

MySQL语句大全 数据库操作数据表操作往表中插入数据修改表中数据删除表中数据查询表中数据用户管理函数约束 (限制表中的字段值)多表查询事务 数据库操作 -- 显示数据库 show databases;-- 创建一个数据库 demo create database demo;-- 若不存在数据库 demo 则创建一个数据库…

软件测试基础篇(完整版)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “尽早的介入测试&#xff0c;遇到问题的解决成本就越低” 随着软件测试技术的发展&#xff0c…

Flutter NestedScrollView 内嵌视图滚动行为一致

Flutter NestedScrollView 内嵌视图滚动行为一致 视频 https://youtu.be/_h7CkzXY3aM https://www.bilibili.com/video/BV1Gh4y1571p/ 前言 上一节讲了 CustomScrollView &#xff0c;可以发现有的地方滚动并不是很连贯。 这时候就需要 NestedScrollView 来处理了。 今天会写…

Promise中的链式流

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 携手共进&#xff01; 文章目录 前言深入Promise链式流 前言 在探索Promise链式流之前我们要知道两个Promise固有…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

【鸿蒙 HarmonyOS 4.0】网络请求

一、介绍 资料来自官网&#xff1a;文档中心 网络管理模块主要提供以下功能&#xff1a; HTTP数据请求&#xff1a;通过HTTP发起一个数据请求。WebSocket连接&#xff1a;使用WebSocket建立服务器与客户端的双向连接。Socket连接&#xff1a;通过Socket进行数据传输。 日常…

车载测试,检测项目标准

检测项目&#xff1a; 二.GB/T 31486-2015电动汽车用动力蓄电池电性能要求及试验方法 说明&#xff1a;本标准规定了电动汽车用动力蓄电池(以下简称蓄电池)的 电性能要求、试验方法、检验规则。本标准适用于装载在电动汽车 上的锂离子蓄电池和金属氢化 物镍蓄电池单体和模块&a…

设计模式-创建型模式-抽象工厂模式

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。抽象工厂模式又称为Kit模式&#xff0c;它是一种对象创建型模式。 由于工厂方法模式中的每个工厂只生产一类产品&…

JS基础之JSON对象

JS基础之JSON对象 目录 JS基础之JSON对象对象转JSON字符串JSON转JS对象 对象转JSON字符串 JSON.stringify(value,replacer,space) value:要转换的JS对象 replacer:(可选)用于过滤和转换结果的函数或数组 space:(可选)指定缩进量 // 创建JS对象 let date {name:"张三…

如何利用内网穿透工具在企业微信开发者中心实现本地接口服务回调

文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段&#xff0c;应用服务通常是部署在开发环境&#xff0c;在有数据回调的开发场…