快递单信息抽取【三】--五条标注数据提高准确率,仅需五条标注样本,快速完成快递单信息任务

news2025/1/19 23:19:16

五条标注数据搞定快递单信息抽取

本项目将演示如何通过五条标注样本进行模型微调,快速且准确抽取快递单中的姓名、电话、省、市、区、详细地址等内容,形成结构化信息。辅助物流行业从业者进行有效信息的提取,从而降低客户填单的成本。

1. 任务介绍

如何从物流信息中抽取想要的关键信息呢?我们首先要定义好需要抽取哪些字段。

比如现在拿到一个快递单,可以作为我们的模型输入,例如“张三18625584663广东省深圳市南山区学府路东百度国际大厦”,那么序列标注模型的目的就是识别出其中的“张三”为人名,“18625584663”为电话名,“广东省深圳市南山区百度国际大厦”分别是『省、市、区、街道』4 级地址)。

这是一个典型的命名实体识别(Named Entity Recognition,NER)场景,各实体类型及相应符号表示见下表:

抽取实体/字段抽取结果
姓名张三
电话15209XX1921
省份广东省
城市深圳市
县区南山区
详细地址百度国际大厦

2. 方案设计

2.1 UIE基于Prompt统一建模

Universal Information Extraction (UIE):Yaojie Lu等人提出了开放域信息抽取的统一框架,这一框架在实体抽取、关系抽取、事件抽取、情感分析等任务上都有着良好的泛化效果。

PaddleNLP基于这篇工作的prompt设计思想,提供了以ERNIE为底座的信息抽取模型,用于关键信息抽取。同时,针对不同场景,支持通过构造小样本数据来优化模型效果,快速适配特定的关键信息配置。

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓 ### 2.2 UIE的优势
  • 使用简单:用户可以使用自然语言自定义抽取目标,无需训练即可统一抽取输入文本中的对应信息。实现开箱即用,并满足各类信息抽取需求
  • 降本增效:以往的信息抽取技术需要大量标注数据才能保证信息抽取的效果,为了提高开发过程中的开发效率,减少不必要的重复工作时间,开放域信息抽取可以实现零样本(zero-shot)或者少样本(few-shot)抽取,大幅度降低标注数据依赖,在降低成本的同时,还提升了效果
  • 效果领先:开放域信息抽取在多种场景,多种任务上,均有不俗的表现。2.3 应用场景示例
  • 医疗场景-专病结构化

image

image

  • 金融场景-收入证明、招股书抽取

image

image

3. 环境准备

代码语言:python

复制

! pip install --upgrade paddlenlp -i https://mirror.baidu.com/pypi/simple
! pip show paddlenlp

4. 开箱即用

代码语言:python

复制

from paddlenlp import Taskflow

schema = ["姓名", "省份", "城市", "县区"]
ie = Taskflow("information_extraction", schema=schema)
ie("北京市海淀区上地十街10号18888888888张三")

代码语言:python

复制

[{'姓名': [{'text': '张三',
    'start': 24,
    'end': 26,
    'probability': 0.9659838994810457}],
  '城市': [{'text': '北京市',
    'start': 0,
    'end': 3,
    'probability': 0.9992708589150467}],
  '县区': [{'text': '海淀区',
    'start': 3,
    'end': 6,
    'probability': 0.9997972338090335}]}]
  • Taskflow UIE更多使用方式解锁:Taskflow UIE使用文档5. 轻定制功能

对于『电话』、『详细地址』这些非通用性实体类型标签,推荐使用PaddleNLP提供的轻定制功能(数据标注-训练-部署全流程工具)。

我们标注5条数据试试效果。

5.1 数据标注

我们推荐使用数据标注平台doccano 进行数据标注,本案例也打通了从标注到训练的通道,即doccano导出数据后可通过doccano.py脚本轻松将数据转换为输入模型时需要的形式,实现无缝衔接。为达到这个目的,您需要按以下标注规则在doccano平台上标注数据:

image

image

Step 1. 本地安装doccano(请勿在AI Studio内部运行,本地测试环境python=3.8)

$ pip install doccano

Step 2. 初始化数据库和账户(用户名和密码可替换为自定义值)

$ doccano init

$ doccano createuser --username my_admin_name --password my_password

Step 3. 启动doccano

  • 在一个窗口启动doccano的WebServer,保持窗口

$ doccano webserver --port 8000

  • 在另一个窗口启动doccano的任务队列

$ doccano task

Step 4. 运行doccano来标注实体和关系

  • 打开浏览器(推荐Chrome),在地址栏中输入

    http://0.0.0.0:8000/
    

    后回车即得以下界面。

    img

  • 登陆账户。点击右上角的LOGIN,输入Step 2中设置的用户名和密码登陆。

  • 创建项目。点击左上角的

    CREATE
    

    ,跳转至以下界面。 - 勾选序列标注(

    Sequence Labeling
    

    ) - 填写项目名称(

    Project name
    

    )等必要信息 - 勾选允许实体重叠(

    Allow overlapping entity
    

    )、使用关系标注(

    Use relation labeling
    

    ) - 创建完成后,项目首页视频提供了从数据导入到导出的七个步骤的详细说明。

    img

    img

  • 设置标签。在Labels一栏点击

    Actions
    

    Create Label
    

    手动设置或者

    Import Labels
    

    从文件导入。 - 最上边Span表示实体标签,Relation表示关系标签,需要分别设置。

    img

  • 导入数据。在Datasets一栏点击

    Actions
    

    Import Dataset
    

    从文件导入文本数据。 - 根据文件格式(File format)给出的示例,选择适合的格式导入自定义数据文件。

    • 导入成功后即跳转至数据列表。
  • 标注数据。点击每条数据最右边的

    Annotate
    

    按钮开始标记。标记页面右侧的标签类型(Label Types)开关可在实体标签和关系标签之间切换。 - 实体标注:直接用鼠标选取文本即可标注实体。

    • 关系标注:首先点击待标注的关系标签,接着依次点击相应的头尾实体可完成关系标注。
  • 导出数据。在Datasets一栏点击ActionsExport Dataset导出已标注的数据。

5.2 将标注数据转化成UIE训练所需数据

  • 将doccano平台的标注数据保存在./data/目录。对于快递单信息抽取的场景,可以直接下载标注好的数据。

代码语言:python

复制

! wget https://paddlenlp.bj.bcebos.com/model_zoo/uie/waybill.jsonl
! mv waybill.jsonl ./data/

代码语言:python

复制

! python doccano.py --doccano_file ./data/waybill.jsonl --splits 1 0 0
可配置参数说明
  • doccano_file: 从doccano导出的数据标注文件。
  • save_dir: 训练数据的保存目录,默认存储在data目录下。
  • negative_ratio: 最大负例比例,该参数只对抽取类型任务有效,适当构造负例可提升模型效果。负例数量和实际的标签数量有关,最大负例数量 = negative_ratio * 正例数量。该参数只对训练集有效,默认为5。为了保证评估指标的准确性,验证集和测试集默认构造全负例。
  • splits: 划分数据集时训练集、验证集所占的比例。默认为0.8, 0.1, 0.1表示按照8:1:1的比例将数据划分为训练集、验证集和测试集。
  • task_type: 选择任务类型,可选有抽取和分类两种类型的任务。
  • options: 指定分类任务的类别标签,该参数只对分类类型任务有效。
  • prompt_prefix: 声明分类任务的prompt前缀信息,该参数只对分类类型任务有效。
  • is_shuffle: 是否对数据集进行随机打散,默认为True。
  • seed: 随机种子,默认为1000.5.3 一键微调

因为是轻量级定制,即训练集数量较少时,通常将训练集直接作为验证集

  • 执行以下脚本进行一键微调

对finetune.py文件保存逻辑,进行修改,只保留最好模型,减少储存

代码语言:python

复制

! python finetune.py \
    --train_path ./data/train.txt \
    --dev_path ./data/train.txt \
    --save_dir ./checkpoint \
    --model uie-base \
    --learning_rate 1e-5 \
    --batch_size 16 \
    --max_seq_len 512 \
    --num_epochs 10 \
    --seed 1000 \
    --logging_steps 10 \
    --valid_steps 10
可配置参数说明:
  • train_path: 训练集文件路径。
  • dev_path: 验证集文件路径。
  • save_dir: 模型存储路径,默认为./checkpoint
  • learning_rate: 学习率,默认为1e-5。
  • batch_size: 批处理大小,请结合显存情况进行调整,若出现显存不足,请适当调低这一参数,默认为16。
  • max_seq_len: 文本最大切分长度,输入超过最大长度时会对输入文本进行自动切分,默认为512。
  • num_epochs: 训练轮数,默认为100。
  • model: 选择模型,程序会基于选择的模型进行模型微调,可选有uie-baseuie-tiny,默认为uie-base
  • seed: 随机种子,默认为1000.
  • logging_steps: 日志打印的间隔steps数,默认10。
  • valid_steps: evaluate的间隔steps数,默认100。
  • device: 选用什么设备进行训练,可选cpu或gpu。

5.3 推理部署

  • 执行以下代码高性能部署快递单识别定制版本UIE模型

代码语言:python

复制

from paddlenlp import Taskflow

schema = ["姓名", "电话", "省份", "城市", "县区", "详细地址"]
ie = Taskflow("information_extraction", schema=schema, task_path="./checkpoint/model_best")
ie("北京市海淀区上地十街10号18888888888张三")

代码语言:python

复制

[{'姓名': [{'text': '张三',
    'start': 24,
    'end': 26,
    'probability': 0.9993427274729783}],
  '电话': [{'text': '18888888888',
    'start': 13,
    'end': 24,
    'probability': 0.9902358279724055}],
  '城市': [{'text': '北京市',
    'start': 0,
    'end': 3,
    'probability': 0.99967702117047}],
  '县区': [{'text': '海淀区',
    'start': 3,
    'end': 6,
    'probability': 0.9998499188335472}],
  '详细地址': [{'text': '上地十街10号',
    'start': 6,
    'end': 13,
    'probability': 0.9594372662315109}]}]

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

美国年轻人热衷床上“摆烂”,沃尔玛发掘床上用品新商机!

美国年轻人近年来热衷于床上“摆烂”生活方式,这反映了他们对舒适放松的追求和现代生活的压力。沃尔玛作为零售业巨头,敏锐地捕捉到这一市场变化,发现了床上用品的新商机。 美国年轻人忙碌中渴望宁静空间。床成为他们放松、逃离现实压力的理想…

【C++】———list容器

前言 1.list容器简单来说其实就是之前的链表结构。 2.这里的list用的是双向带头结点的循环链表。 目录 前言 一 构造函数 1.1 list (); 1.2 list (size_type n, const value_type& val value_type() ); 1.3 list (InputIterator first, InputIterator last…

和平饭店短视频:成都科成博通文化传媒公司

和平饭店短视频:历史的沉淀与现代的演绎 随着短视频平台的兴起,越来越多的人开始通过镜头记录生活、分享故事。在众多短视频中,以“和平饭店”为主题的短视频独树一帜,以其独特的魅力吸引了大量观众的目光。成都科成博通文化传媒…

【AndroidStudio旧版本BUG问题】完美解决运行报错问题Invalid keystore format

由于之前安装的版本导致AndroidStudio 运行报错:Invalid keystore format 在如下截图的路径中删了debug.keystore重新打开Android Studio运行一下就好了!!! 下面介绍各个模块功能: adbkey 是 Android Debug Bridge (AD…

Deap因子挖掘:比gplearn强100倍(代码+数据)

原创文章第550篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 续前面两篇,继续使用Deap做因子挖掘——与咱们的Quantlab因子表达式引擎直接关联起来了: 1、生成的因子,在训练集和测试集上计算ic值。 def ma…

SQL进阶day9————聚合与分组

目录 1聚合函数 1.1SQL类别高难度试卷得分的截断平均值 1.2统计作答次数 1.3 得分不小于平均分的最低分 2 分组查询 2.1平均活跃天数和月活人数 2.2 月总刷题数和日均刷题数 2.3未完成试卷数大于1的有效用户 1聚合函数 1.1SQL类别高难度试卷得分的截断平均值 我的错误…

云动态摘要 2024-06-05

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [1元/年起]618大促-对象存储分会场 腾讯云 2024-06-03 对象存储限时破价秒杀,标准存储新老同享历史低价,新客首单低至1元,爆款资源包低于2折购 云服务器…

安全测试用例及解析(Word原件,直接套用检测)

5 信息安全性测试用例 5.1 安全功能测试 5.1.1 标识和鉴别 5.1.2 访问控制 5.1.3 安全审计 5.1.4 数据完整性 5.1.5 数据保密性 5.1.6 软件容错 5.1.7 会话管理 5.1.8 安全漏洞 5.1.9 外部接口 5.1.10 抗抵赖 5.1.11 资源控制 5.2 应用安全漏洞扫描 5.2.1 应用安全漏洞扫描 5.3…

王道408数据结构CH2_线性表

概述 2 线性表 2.1 基本操作 2.2 顺序表示 线性表的元素从1开始,数组元素下标从0开始 2.2.1 结构体定义 #define Maxsize 50typedef struct{ElemType data[Maxsize];int length; }SqList;#define Initsize 100typedef struct{ElemType *data;int Maxsize ,length;…

基于EasyX的贪吃蛇小游戏 - C语言

游戏基本功能演示: 1.主菜单界面 2.自定难度界面 在这里可以自行设定游戏的难度,包括蛇的移动速度,初始节数,以及默认模式,参考线(网格)。这些设定的数据都会在右上角的游戏属性栏中实时显示。…

十、结果处理器

这一章和上一章参数处理器类似 首先是在XML解析的时候,顺便解析resultMap和resultType,一般更多的可能用的是resultType,为了实现统一,使用 resultType 的情况下,Mybatis也会创建一个resultMap实体类映射。 使用的时…

云服务器安装宝塔Linux面板全流程,新手教程!

云服务器如何宝塔Linux面板?阿小云以阿里云服务器为例安装宝塔Linux面板全流程,非常简单: 使用阿里云服务器安装宝塔面板教程,阿里云服务器网以CentOS操作系统为例,安装宝塔Linux面板,先远程连接到云服务器…

化栈为队00

题目链接 化栈为队 题目描述 注意点 只能使用标准的栈操作假设所有操作都是有效的 解答思路 使用两个栈模拟队列,第一个栈stk1是按正常栈顺序存储元素,第一个栈stk2是按队列顺序存储元素,初始入栈都是将元素添加到stk1中,当需…

【漯河市人才交流中心_登录安全分析报告-Ajax泄漏滑动距离导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

有哪些好用的ai工具,可以提升科研、学习、办公等效率?

最近,Sora的诞生为AI再添了一把火。 据介绍,这款“文生视频”的Sora可以直接输出长达60秒的视频,并且包含高度细致的背景、复杂的多角度镜头,以及富有情感的多个角色。 不仅能准确呈现细节,还能理解物体在物理世界中…

纷享销客BI典型场景案例解析

本章以具体案例来说明纷享销客一体化BI智能分析平台为企业在实际使用过程中带来的价值。 1)场景一:销售经理想要在周会上关注各销售人员的客户及订单情况,并在每周一上午9点可以把上周的整体情况周期性的将报表推送给相关销售人员。 具体图表展示样式及…

开关电源基本原理1

目录 内容概述 关于电感 认识电感 电感充电 电感储能 电感充电 电感参数 电感放电 利用电感升压 电感电流波形 伏秒法则 电流纹波率 电感电流三种导电模式 电流纹波率与频率的关系 电流纹波率与电感值的关系 电感值与电感体积 电路纹波率r的最优值 电感值与电…

【面经】亚信科技面试问题合集

下述内容经搜寻广大平台的面试经历,整理汇合得出,答案来自chatgpt,加黑的地方意味着出现多次。 1.自我介绍 2.介绍项目功能 3.和equals的区别。八大基本类型(byte,char,int ,long,double,float,boolean,short) 是用于比较两个…

纷享销客BI智能分析平台常见问题QA

Q1在驾驶舱中查看图表时,图表间有什么动态交互吗? A:驾驶舱支持图表本身下钻,图表间联动,并且支持图表下钻的同时联动,可以基于驾驶舱的这个功能,实现图表间的动态交互。 Q2基于客户主题创建的统计图&…

短视频系列内容生产技能提升 沈阳短视频剪辑培训

优势:一、短视频系列化内容的优势 ①可持续性强 某一条视频效果很好(几十万点赞)时,按照相同格式继续输出非常容易成功: √不需要设计脚本; √不需要重新定制。 √稳定性强, ②节约时间成本和制作成本 举例对标账号&#xf…