Python PaddleNLP开源实现快递单信息抽取
作者:Python全栈工程师 发布时间:2023-01-21 04:35:11
前言
近几年,制造业作为国民经济主体,是国家创造力、竞争力和综合国力的重要体现。作为制造强国建设的主攻方向,可以说,智能制造发展水平关乎我国未来制造业的全球地位。
制造业与物流结合紧密,随着制造业的高速发展,对自动化率、全产业链协同和生产效率再提高等方向均提出了更高的要求,需要物流仓储能够匹配相应的生产节奏。
同时,据统计,我国制造业生产成本中,物流占比高达三成,降低物流成本成为了制造业利润提升的关键一环。
今天,我将基于智能制造 - 精益物流场景,跟大家分享一下,从快递单信息抽取到智能立体库, 盘点两大通用的开源产业落地方案。
5 条标注数据,搞定物流快递单信息抽取
据统计,2021 年国内快递件数超 1000 亿件。作为劳动密集型产业,固有模式下出现的快递人员短缺、配送效率疲软、物流承载有限等问题,俨然成为物流行业面临的最直接挑战。利用智能化手段来提高工作效率、提升用户体验,是物流行业最强烈且迫切的需求。
在下单环节,“买卖东西一时爽,信息输入超麻烦”、“门牌号、手机号码,这输错一个数字就是千差万别”、“名字还有生僻字,找都找不到” 都道出了不少人的心声,特别是每天都需处理大量订单的商家和物流工作人员更是苦不堪言,而这个问题可以靠 NLP 信息抽取技术来解决。
基于此,飞桨自然语言处理模型库 PaddleNLP 开源了通用信息抽取技术 UIE,能够大大加快快递单信息结构化效率。 可轻松实现从用户提供的文字信息中快速抽取姓名、电话、省、市、区、详细地址等内容,形成结构化的信息,降低客户填单成本。
图 1:物流快递单信息抽取
信息抽取是一个行业应用价值很高的技术,却因为任务多样、领域多样、数据获取和标注成本高,导致落地成本居高不下。
因此,中科院软件所和百度共同提出了大一统诸多任务的通用信息抽取技术 UIE(Universal Information Extraction),在实体、关系、事件和情感等 4 个信息抽取任务、13 个数据集的全监督、低资源和少样本设置下,均取得了 SOTA 性能,这项成果发表在 ACL’22 [1]。
前阵子,百度飞桨的 PaddleNLP 结合文心大模型中的知识增强 NLP 大模型 ERNIE 3.0,发挥了 UIE 在中文任务上的强大潜力,开源了首个面向通用信息抽取的产业级技术方案,不需要标注数据(或仅需少量标注数据),即可快速完成各类信息抽取任务。
图 2:传统方案 vs UIE 统一建模方案
在物流快递单信息抽取任务中,仅标注了 5 条样本,F1 值即提升 18 个点,达到 93% 。相对于传统序列标注方案动辄标注几百条、几千条的高额标注成本。可以说,PaddleNLP 开源的通用信息抽取工具简直是国货之光!
这么酷炫的技术能力,如何快速应用到业务中呢?
通过调用 paddlenlp.Taskflow API 即可实现零样本(zero-shot)抽取多种类型的信息,话不多说,直接上代码,看效果:
# 快递单信息抽取
from paddlenlp import Taskflow
schema = ['姓名', '省份', '城市', '县区']
ie("北京市海淀区上地十街10号18888888888张三")
>>> [{'姓名': [{'text': '张三', 'start': 24, 'end': 26, 'probability': 0.97369767177317}],
'城市': [{'text': '北京市', 'start': 0, 'end': 3, 'probability': 0.9992830142165161}],
'县区': [{'text': '海淀区', 'start': 3, 'end': 6, 'probability': 0.9997933003097614}]}]
对于复杂目标,可以标注少量数据(Few-shot)进行模型训练,以进一步提升效果。PaddleNLP 打通了从数据标注 - 训练 - 部署全流程,不仅能够方便地进行定制化训练,在部署阶段我们也提供了基于 ONNXRuntime 引擎部署、半精度(FP16)推理等多种加速方案,满足 CPU、GPU 等不同场景下的部署需求。
所有源码及模型均已开源,大家可以尝鲜使用,star 鼓励。
此外,PaddleNLP 还开源了物流快递单信息抽取产业实践范例,通过完整的代码实现,提供从数据准备到模型调优的全过程解析,堪称产业落地的 “自动导航” 。 百度高工还将带来手把手进行全流程代码实践,轻松直达项目 POC 阶段。
智能立体库盘点
物流行业的货物存储库有从单一存储特性的立体库向多功能智能化物流仓转化的发展趋势,包括赋能智慧物流集收货、配送、分拣、客户化定制等功能一体的智能物流库,赋能智能制造集存储、线边自动补给、集成自动化生产工艺为一体的多功能物流库。
针对这一趋势下的多功能智能化物流仓进行智能盘点,相较传统物流仓而言,其难度也增加了不少,主要包括:前端工艺、安全管理制约、存储点动态监控、全流程多点监控等,如图 3 所示。
图 3:多功能智能化物流仓的智能盘点难度
飞桨零门槛 AI 开发平台 EasyDL 可从 0 到 1 快速构建针对多功能智能化物流仓的智能盘点的 AI 模型,最快 15 分钟即可完成模型训练。
使用流程下图所示。
图 4: AI 模型训练及部署流程
无需关注模型细节,即便是没有任何 AI 基础,也能快速上手使用!使用 EasyDL - 图像分割任务进行模型训练,最终模型效果可以达到 99.9%,充分满足产业应用的需求。
图 5: 模型效果
物流行业自动化近年来蓬勃发展,智能化立体库、自动码垛、自动搬运、自动装车、智能分拣等相关设备在各行业应用广泛。在产品在途、在库信息查询、产品溯源等各个环节中,AI 技术都发挥了至关重要的作用,大大节约了物流成本,提高了物流效率和盘点效率。
即刻上手使用 EasyDL,快速构建属于你的 AI 盘点模型吧!
来源:https://juejin.cn/post/7106690827375607838


猜你喜欢
- 本文为大家分享了mysql 8.0.20 winx64安装配置方法,记录如下。MySQL官网:链接直接点击链接也可以下载:mysql 8.0
- 第一步 去高德地图开放平台申请密钥 高德地图开放平台第二部 在vue-cli项目目录结构 里面多了config文件夹和
- 我其实是同一天看到Robert Treat几人整理的”Mysql 迁移到Oracle前需要了解的50件事“与Baron Schwartz的”
- zip()的作用先看一下语法:zip(iter1 [,iter2 [...]]) —> zip objectPython的内置help
- 1. top命令和日志方式判定卡死的位置python代码忽然卡死,日志不输出,通过如下方式可以确定线程确实已经死掉了:# top 命令top
- 在 MySQL 查询中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT
- 单继承时super()和__init__()实现的功能是类似的class Base(object):def __init__(self):p
- 元组的结构在这一小节当中主要介绍在 python 当中元组的数据结构:typedef struct { PyObj
- 首先了解一下需要的几个类所在的packagefrom torchvision import transforms, datasets as
- 腾讯“月捐计划”倡导爱心人士,通过每月小额捐款的形式,长期关注和支持公益项目。并和亿万爱心网友一起,每人每月1份爱,点滴付出,汇成爱海,形成
- 获取首页元素信息:目标 test_URL:http://www.xxx.com.cn/首先检查元素,a 标签下是我们需要爬取得链接,通过获取
- 代码import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datase
- 我就废话不多说了,直接上代码吧!import paramikoimport pymysqlimport timelinux = ['
- django框架默认将session保存到数据库中,在高并发访问无疑会影响服务器性能,因此最好将session保存到redis中避免直接从数
- 我使用的python版本是3.5.2今天想做个语音读取的小脚本,在网上查了一下发现python里有个pyttsx可以识别文字,打算通过pip
- 前言:pandas 中的索引意味着只需从系列中选择特定数据。索引可能意味着选择所有数据,其中一些数据来自特定列。索引也可以称为子集选择。使用
- 1. 函数式编程概述1.1. 什么是函数式编程?函数式编程使用一系列的函数解决问题。函数仅接受输入并产生输出,不包含任何能影响产生输出的内部
- 英文文档:staticmethod(function)Return a static method for function.A stati
- 本文列出了一些asp编程种可能会用到的正则表达式例子,大家可以方便的调用!如果您对asp种的正则表达式不是很了解可以看看这篇文章《ASP中R
- 新手在配置pytorch过程中总会或多或少遇到些问题,同时网上关于pytorch的环境配置琳琅满目,不知道应该按照哪个配置,这里笔者记录一下