城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

快递单信息抽取二基于ERNIE1。0至ErnieGramCR

12月4日 不星湖投稿
  本项目链接:https:aistudio。baidu。comaistudioprojectdetail4157455?contributionType11。ERNIE1。0完成快递单信息抽取
  命名实体识别是NLP中一项非常基础的任务,是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。命名实体识别的准确度,决定了下游任务的效果,是NLP中的一个基础问题。在NER任务提供了两种解决方案,一类LSTMGRUCRF,通过RNN类的模型来抽取底层文本的信息,而CRF(条件随机场)模型来学习底层Token之间的联系;另外一类是通过预训练模型,例如ERNIE,BERT模型,直接来预测Token的标签信息。
  本项目将演示如何使用PaddleNLP语义预训练模型ERNIE完成从快递单中抽取姓名、电话、省、市、区、详细地址等内容,形成结构化信息。辅助物流行业从业者进行有效信息的提取,从而降低客户填单的成本。
  在2017年之前,工业界和学术界对文本处理依赖于序列模型RecurrentNeuralNetwork(RNN)。
  图1:RNN示意图
  基于BiGRUCRF的快递单信息抽取项目介绍了如何使用序列模型完成快递单信息抽取任务。
  近年来随着深度学习的发展,模型参数的数量飞速增长。为了训练这些参数,需要更大的数据集来避免过拟合。然而,对于大部分NLP任务来说,构建大规模的标注数据集非常困难(成本过高),特别是对于句法和语义相关的任务。相比之下,大规模的未标注语料库的构建则相对容易。为了利用这些数据,我们可以先从其中学习到一个好的表示,再将这些表示应用到其他任务中。最近的研究表明,基于大规模未标注语料库的预训练模型(PretrainedModels,PTM)在NLP任务上取得了很好的表现。
  近年来,大量的研究表明基于大型语料库的预训练模型(PretrainedModels,PTM)可以学习通用的语言表示,有利于下游NLP任务,同时能够避免从零开始训练模型。随着计算能力的不断提高,深度模型的出现(即Transformer)和训练技巧的增强使得PTM不断发展,由浅变深。
  图2:预训练模型一览,图片来源于:https:github。comthunlpPLMpapers
  本示例展示了以ERNIE(EnhancedRepresentationthroughKnowledgeIntegration)为代表的预训练模型如何Finetune完成序列标注任务。!pipinstallupgradepaddlenlp下载并解压数据集frompaddle。utils。downloadimportgetpathfromurlURLhttps:paddlenlp。bj。bcebos。compaddlenlpdatasetswaybill。tar。gzgetpathfromurl(URL,。)查看预测的数据!headn5datatest。txtfromfunctoolsimportpartialimportpaddlefrompaddlenlp。datasetsimportMapDatasetfrompaddlenlp。dataimportStack,Tuple,Padfrompaddlenlp。transformersimportErnieTokenizer,ErnieForTokenClassificationfrompaddlenlp。metricsimportChunkEvaluatorfromutilsimportconvertexample,evaluate,predict,loaddict1。1加载自定义数据集
  推荐使用MapDataset()自定义数据集。defloaddataset(datafiles):defread(datapath):withopen(datapath,r,encodingutf8)asfp:next(fp)Skipheaderforlineinfp。readlines():words,labelsline。strip()。split()wordswords。split(02)labelslabels。split(02)yieldwords,labelsifisinstance(datafiles,str):returnMapDataset(list(read(datafiles)))elifisinstance(datafiles,list)orisinstance(datafiles,tuple):return〔MapDataset(list(read(datafile)))fordatafileindatafiles〕Createdataset,tokenizeranddataloader。trainds,devds,testdsloaddataset(datafiles(。datatrain。txt,。datadev。txt,。datatest。txt))foriinrange(5):print(trainds〔i〕)(〔1,6,6,2,0,2,0,0,0,7,7,宣,荣,嗣,甘,肃,省,白,银,市,会,宁,县,河,畔,镇,十,字,街,金,海,超,市,西,行,5,0,米〕,〔TB,TI,TI,TI,TI,TI,TI,TI,TI,TI,TI,PB,PI,PI,A1B,A1I,A1I,A2B,A2I,A2I,A3B,A3I,A3I,A4B,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I,A4I〕)(〔1,3,5,5,2,6,6,4,3,0,7,姜,骏,炜,云,南,省,德,宏,傣,族,景,颇,族,自,治,州,盈,江,县,平,原,镇,蜜,回,路,下,段〕,〔TB,TI,TI,TI,TI,TI,TI,TI,TI,TI,TI,PB,PI,PI,A1B,A1I,A1I,A2B,A2I,A2I,A2I,A2I,A2I,A2I,A2I,A2I,A2I,A3B,A3I,A3I,A4B,A4I,A4I,A4I,A4I,A4I,A4I,A4I〕)(〔内,蒙,古,自,治,区,赤,峰,市,阿,鲁,科,尔,沁,旗,汉,林,西,街,路,南,1,3,7,0,1,0,8,5,3,9,0,那,峥〕,〔A1B,A1I,A1I,A1I,A1I,A1I,A2B,A2I,A2I,A3B,A3I,A3I,A3I,A3I,A3I,A4B,A4I,A4I,A4I,A4I,A4I,TB,TI,TI,TI,TI,TI,TI,TI,TI,TI,TI,PB,PI〕)(〔广,东,省,梅,州,市,大,埔,县,茶,阳,镇,胜,利,路,1,3,6,0,1,3,2,8,1,7,3,张,铱〕,〔A1B,A1I,A1I,A2B,A2I,A2I,A3B,A3I,A3I,A4B,A4I,A4I,A4I,A4I,A4I,TB,TI,TI,TI,TI,TI,TI,TI,TI,TI,TI,PB,PI〕)(〔新,疆,维,吾,尔,自,治,区,阿,克,苏,地,区,阿,克,苏,市,步,行,街,1,0,号,1,5,8,1,0,7,8,9,3,7,8,慕,东,霖〕,〔A1B,A1I,A1I,A1I,A1I,A1I,A1I,A1I,A2B,A2I,A2I,A2I,A2I,A3B,A3I,A3I,A3I,A4B,A4I,A4I,A4I,A4I,A4I,TB,TI,TI,TI,TI,TI,TI,TI,TI,TI,TI,PB,PI,PI〕)
  每条数据包含一句文本和这个文本中每个汉字以及数字对应的label标签。
  之后,还需要对输入句子进行数据处理,如切词,映射词表id等。1。2数据处理
  预训练模型ERNIE对中文数据的处理是以字为单位。PaddleNLP对于各种预训练模型已经内置了相应的tokenizer。指定想要使用的模型名字即可加载对应的tokenizer。
  tokenizer作用为将原始输入文本转化成模型model可以接受的输入数据形式。
  图3:ERNIE模型示意图
  labelvocabloaddict(。datatag。dic)tokenizerErnieTokenizer。frompretrained(ernie1。0)transfuncpartial(convertexample,tokenizertokenizer,labelvocablabelvocab)trainds。map(transfunc)devds。map(transfunc)testds。map(transfunc)print(trainds〔0〕)(〔1,208,515,515,249,540,249,540,540,540,589,589,803,838,2914,1222,1734,244,368,797,99,32,863,308,457,2778,484,167,436,930,192,233,634,99,213,40,317,540,256,2〕,〔0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0〕,40,〔12,2,3,3,3,3,3,3,3,3,3,3,0,1,1,4,5,5,6,7,7,8,9,9,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12〕)1。3数据读入
  使用paddle。io。DataLoader接口多线程异步加载数据。ignorelabel1batchifyfnlambdasamples,fnTuple(Pad(axis0,padvaltokenizer。padtokenid),inputidsPad(axis0,padvaltokenizer。padtokentypeid),tokentypeidsStack(),seqlenPad(axis0,padvalignorelabel)labels):fn(samples)trainloaderpaddle。io。DataLoader(datasettrainds,batchsize36,returnlistTrue,collatefnbatchifyfn)devloaderpaddle。io。DataLoader(datasetdevds,batchsize36,returnlistTrue,collatefnbatchifyfn)testloaderpaddle。io。DataLoader(datasettestds,batchsize36,returnlistTrue,collatefnbatchifyfn)1。4PaddleNLP一键加载预训练模型
  快递单信息抽取本质是一个序列标注任务,PaddleNLP对于各种预训练模型已经内置了对于下游任务文本分类Finetune网络。以下教程以ERNIE为预训练模型完成序列标注任务。
  paddlenlp。transformers。ErnieForTokenClassification()一行代码即可加载预训练模型ERNIE用于序列标注任务的finetune网络。其在ERNIE模型后拼接上一个全连接网络进行分类。
  paddlenlp。transformers。ErnieForTokenClassification。frompretrained()方法只需指定想要使用的模型名称和文本分类的类别数即可完成定义模型网络。DefinethemodelnetwordanditslossmodelErnieForTokenClassification。frompretrained(ernie1。0,numclasseslen(labelvocab))
  PaddleNLP不仅支持ERNIE预训练模型,还支持BERT、RoBERTa、Electra等预训练模型。下表汇总了目前PaddleNLP支持的各类预训练模型。您可以使用PaddleNLP提供的模型,完成文本分类、序列标注、问答等任务。同时我们提供了众多预训练模型的参数权重供用户使用,其中包含了二十多种中文语言模型的预训练权重。中文的预训练模型有bertbasechinese,bertwwmchinese,bertwwmextchinese,ernie1。0,ernietiny,gpt2basecn,robertawwmext,robertawwmextlarge,rbt3,rbtl3,chineseelectrabase,chineseelectrasmall,chinesexlnetbase,chinesexlnetmid,chinesexlnetlarge,unifiedtransformer12Lcn,unifiedtransformer12Lcnluge等。
  更多预训练模型参考:PaddleNLPTransformerAPI。
  更多预训练模型finetune下游任务使用方法,请参考:examples。1。5设置FineTune优化策略,模型配置
  适用于ERNIEBERT这类Transformer模型的迁移优化学习率策略为warmup的动态学习率。
  图4:动态学习率示意图
  metricChunkEvaluator(labellistlabelvocab。keys(),suffixTrue)lossfnpaddle。nn。loss。CrossEntropyLoss(ignoreindexignorelabel)optimizerpaddle。optimizer。AdamW(learningrate2e5,parametersmodel。parameters())1。6模型训练与评估
  模型训练的过程通常有以下步骤:从dataloader中取出一个batchdata将batchdata喂给model,做前向计算将前向计算结果传给损失函数,计算loss。将前向计算结果传给评价方法,计算评价指标。loss反向回传,更新梯度。重复以上步骤。
  每训练一个epoch时,程序将会评估一次,评估当前模型训练的效果。step0forepochinrange(10):foridx,(inputids,tokentypeids,length,labels)inenumerate(trainloader):logitsmodel(inputids,tokentypeids)losspaddle。mean(lossfn(logits,labels))loss。backward()optimizer。step()optimizer。cleargrad()step1print(epoch:dstep:dloss:f(epoch,step,loss))evaluate(model,metric,devloader)paddle。save(model。statedict(),。ernieresultmodeld。pdparamsstep)model。savepretrained(。checkpoint)tokenizer。savepretrained(。checkpoint)
  结果:epoch:9step:435loss:0。001102epoch:9step:436loss:0。001224epoch:9step:437loss:0。002693epoch:9step:438loss:0。022898epoch:9step:439loss:0。001355epoch:9step:440loss:0。001069epoch:9step:441loss:0。001204epoch:9step:442loss:0。001223epoch:9step:443loss:0。007524epoch:9step:444loss:0。001363epoch:9step:445loss:0。004732epoch:9step:446loss:0。001559epoch:9step:447loss:0。002389epoch:9step:448loss:0。002210epoch:9step:449loss:0。005183epoch:9step:450loss:0。001259evalprecision:0。994958recall:0。995795f1:0。9953761。7模型预测
  训练保存好的模型,即可用于预测。如以下示例代码自定义预测数据,调用predict()函数即可一键预测。predspredict(model,testloader,testds,labelvocab)filepathernieresults。txtwithopen(filepath,w,encodingutf8)asfout:fout。write(。join(preds))Printsomeexamplesprint(Theresultshavebeensavedinthefile:s,someexamplesareshownbelow:filepath)print(。join(preds〔:10〕))Theresultshavebeensavedinthefile:ernieresults。txt,someexamplesareshownbelow:(黑龙江省,A1)(双鸭山市,A2)(尖山区,A3)(八马路与东平行路交叉口北40米,A4)(韦业涛,P)(18600009172,T)(广西壮族自治区,A1)(桂林市,A2)(雁山区,A3)(雁山镇西龙村老年活动中心,A4)(17610348888,T)(羊卓卫,P)(15652864561,T)(河南省,A1)(开封市,A2)(顺河回族区,A3)(顺河区公园路32号,A4)(赵本山,P)(河北省,A1)(唐山市,A2)(玉田县,A3)(无终大街159号,A4)(18614253058,T)(尚汉生,P)(台湾,A1)(台中市,A2)(北区,A3)(北区锦新街18号,A4)(18511226708,T)(蓟丽,P)(廖梓琪,P)(18514743222,T)(湖北省,A1)(宜昌市,A2)(长阳土家族自治县,A3)(贺家坪镇贺家坪村一组临河1号,A4)(江苏省,A1)(南通市,A2)(海门市,A3)(孝威村孝威路88号,A4)(18611840623,T)(计星仪,P)(17601674746,T)(赵春丽,P)(内蒙古自治区,A1)(乌兰察布市,A2)(凉城县,A3)(新建街,A4)(云南省,A1)(临沧市,A2)(耿马傣族佤族自治县,A3)(鑫源路法院对面,A4)(许贞爱,P)(18510566685,T)(四川省,A1)(成都市,A2)(双流区,A3)(东升镇北仓路196号,A4)(耿丕岭,P)(18513466161,T)2。0快递单信息抽取〔三〕:Ernie1。0至ErnieGramCRF改进算法
  代码和链接以及项目都在下面链接,fork一下可以直接跑:项目连接:Ernie1。0至ErnieGramCRF改进算法
  GRUCRFEvalbegin。。。step16loss:0。0000e00precision:0。9896recall:0。9948f1:0。9922121msstepstep26loss:0。0000e00precision:0。9896recall:0。9948f1:0。9922125msstepstep36loss:20。9767precision:0。9861recall:0。9895f1:0。9878123msstepstep46loss:0。0000e00precision:0。9805recall:0。9869f1:0。9837123msstepstep56loss:0。0000e00precision:0。9782recall:0。9843f1:0。9812122msstepstep66loss:0。0000e00precision:0。9740recall:0。9791f1:0。9765123msstepEvalsamples:192
  Ernieepoch:8step:72loss:0。038532evalprecision:0。974124recall:0。981497f1:0。977796epoch:9step:73loss:0。031000epoch:9step:74loss:0。033214epoch:9step:75loss:0。034606epoch:9step:76loss:0。038763epoch:9step:77loss:0。033273epoch:9step:78loss:0。031058epoch:9step:79loss:0。028151epoch:9step:80loss:0。030707evalprecision:0。976608recall:0。983179f1:0。979883
  ErnieGramepoch:8step:72loss:0。030066evalprecision:0。990764recall:0。992431f1:0。991597epoch:9step:73loss:0。023607epoch:9step:74loss:0。023326epoch:9step:75loss:0。022730epoch:9step:76loss:0。033801epoch:9step:77loss:0。026398epoch:9step:78loss:0。026028epoch:9step:79loss:0。021799epoch:9step:80loss:0。025259evalprecision:0。990764recall:0。992431f1:0。991597
  ERNIECRF〔EVAL〕Precision:0。975793Recall:0。983179F1:0。979472〔TRAIN〕Epoch:9Step:73Loss:0。111980〔TRAIN〕Epoch:9Step:74Loss:0。152896〔TRAIN〕Epoch:9Step:75Loss:0。274099〔TRAIN〕Epoch:9Step:76Loss:0。294602〔TRAIN〕Epoch:9Step:77Loss:0。231813〔TRAIN〕Epoch:9Step:78Loss:0。225045〔TRAIN〕Epoch:9Step:79Loss:0。180734〔TRAIN〕Epoch:9Step:80Loss:0。171899〔EVAL〕Precision:0。975000Recall:0。984020F1:0。979489
  ErnieGramCRF〔EVAL〕Precision:0。992437Recall:0。993272F1:0。992854〔TRAIN〕Epoch:9Step:73Loss:0。100207〔TRAIN〕Epoch:9Step:74Loss:0。189141〔TRAIN〕Epoch:9Step:75Loss:0。051093〔TRAIN〕Epoch:9Step:76Loss:0。230366〔TRAIN〕Epoch:9Step:77Loss:0。271885〔TRAIN〕Epoch:9Step:78Loss:0。342371〔TRAIN〕Epoch:9Step:79Loss:0。050146〔TRAIN〕Epoch:9Step:80Loss:0。257951〔EVAL〕Precision:0。990764Recall:0。992431F1:0。991597
  结论:CRF在ERNIE上体现作用不大,主要是在传统处理nlp语言上有显著作用,可以避免标注偏置问题。
投诉 评论 转载

张琳艳队友被赞世界最性感女球员自曝内马尔曾主动联系她(图)日前,英国媒体报道了瑞士草蜢俱乐部女足球员安娜马尔科维奇的情况。22岁的安娜被称为世界上最性感的女足球员,她在社交媒体上有超过100万的粉丝。显然,这些人关注安娜,并非因为她的……山东诸城发现龟类足迹新属种新华社济南10月28日电(记者陈国峰)山东省诸城市恐龙文化研究中心研究人员近日在诸城市皇龙沟恐龙足迹化石点进行科学研究时,在恐龙足迹群的中上部发现20多个龟类足迹,其中一个保存……心有阳光,于岁月沧桑中,依旧能看到最美的风景作者:子墨孙承恩有诗云:天上繁霜降,人间秋色深。千林飞落叶,万户动疏砧。霜降过后,不知不觉,又是一年深秋渐去。尾秋了,不免有点惆怅。冉冉岁将宴,物皆复本源。秋……保险快报1222今日要点【1】太平人寿成立健康养老公司,注册资本8。22亿元【2】中国华电集团挂牌转让永诚保险7。6股份【3】泰康人寿6。04亿元受让乐颐养老100股权及相关……美媒没库里的勇士队很糟糕!著名评论员议论科尔进入下课倒计时美国媒体称没有库里的勇士队是一支糟糕球队。我相信绝大部分球迷都会认同这个观点,库里在参加背靠背比赛时意外受伤,他至少缺席一个月时间,而这期间勇士队将沦为弱旅,可以说已经到了一胜……奇趣好物独角兽音箱回声雾蓝键盘,我的桌面被问了800次生活本就无聊,如果桌面再千篇一律,那就不是无聊透顶了,而是无聊到秃顶了如果桌面能有几件奇趣好玩的数码产品,不光能拯救我无聊的生活,还能激发更多的创作灵感。所以这次就来分享……秋雨乡野昨日一场秋雨,及时而准确,不早不晚,不偏不倚,正是北方小麦出青需要一场雨水的时候,秋雨伴随着降温,如约而至。秋雨是肃杀的,下得悲凉,路上行人也因为寒风雨凉,脚步匆匆,避之……快递单信息抽取二基于ERNIE1。0至ErnieGramCR本项目链接:https:aistudio。baidu。comaistudioprojectdetail4157455?contributionType11。ERNIE1。0完成……如何用SDNAND解决TF卡所遇到的问题?雷龙发展是专业做存储产品的供应商,跟客户沟通过很多关于存储方面的问题。不知道大家在使用小容量T卡的时候,是否有遇到以下的一些问题:1、T卡的尺寸(体积)太大了怎么办?……华为被超越了,中国最大民营企业诞生,今年营收或超过1万亿2022年中国企业500强名单。2021年,500强企业创造总收入102万亿元,占去年中国GDP的89,同比增长14。市场上的企业数以千计,但这些企业又分为国有企业和民营……吃鸡光子给全服玩家发手册,最高升到25级,获9种免费特效欢迎诸位小伙伴们来到天哥开讲的《和平精英》精英小课堂最近一系列的新皮肤、返场让人目不暇接,老玩家们都开始审美疲劳了,所以天哥觉得聊点开心的事情,与即将到来的新版本有关当然……美梦梦美人(现代诗)你真的来过我的梦中那一夜我的感受特别的美好那花开的妖娆,那蝶飞的曼妙那心与心触碰的快意良宵就像那夏日里化在舌尖的一块雪糕驱不散那沁人心脾的爽快味道……
护肤界网红玻尿酸究竟是什么?50岁奥尼尔经历了什么?体重近400斤,坚决不再婚,偏爱娇小骑马和徒步,去来古冰川群最难抵达的东嘎冰川,看到了冰川蓝冰还在单喝菊花?巧妙搭配,让茶不仅清热明目,还能降噪火补肾脏张凯丽满脸紧绷没老人真实感,60岁还穿皮衣涂红唇,是个潮奶奶他在还珠格格中演技太好,警察追剧认出,原来是在逃13年罪犯恩比德深刻反省!76人喜迎三讯,哈登防守升级阿娇活动旧照被翻出,穿露肩长裙扎马尾辫,身形太美惹争议方舟生存进化滑齿龙对待事物十分警惕,遇到危险就会逃跑中国买家爆买俄罗斯商品!俄罗斯商会大使请中国朋友理性消费国家出手!禁止!手机日期只能设置到2038年?这背后有个大问题洗衣机如何使用更延寿广东腊肠怎么做好吃广东腊肠的简单做法国家烟草专卖局捐款1000万专家质疑网民力挺好文:哈的组词(哈组词)热传聚热点网 房屋租赁合同哪些罪名可以构成单位犯罪?宁波远洋A拆A增强独立性,聚焦主业发展他78岁,得了老年痴呆,我们爱他。高兴得太早尼康d3200新手拍照技巧超经典语句2019年英国剑桥大学世界排名【QS最新世界排名第6名】

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁