纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

基于Ernie3。0CAIL2019法研杯要素识别多标签分类

2月2日 艮山观投稿
  本项目链接:基于Ernie3。0CAIL2019法研杯要素识别多标签分类任务
  (https:aistudio。baidu。comaistudioprojectdetail4280922?contributionType1)
  本项目将介绍如何基于PaddleNLP对ERNIE3。0预训练模型微调完成法律文本多标签分类预测。本项目主要包括什么是多标签文本分类预测、ERNIE3。0模型、如何使用ERNIE3。0中文预训练模型进行法律文本多标签分类预测等三个部分。1。什么是多标签文本分类预测
  文本多标签分类是自然语言处理(NLP)中常见的文本分类任务,文本多标签分类在各种现实场景中具有广泛的适用性,例如商品分类、网页标签、新闻标注、蛋白质功能分类、电影分类、语义场景分类等。多标签数据集中样本用来自nclasses个可能类别的m个标签类别标记,其中m的取值在0到nclasses之间,这些类别具有不相互排斥的属性。通常,我们将每个样本的标签用Onehot的形式表示,正类用1表示,负类用0表示。例如,数据集中样本可能标签是A、B和C的多标签分类问题,标签为〔1,0,1〕代表存在标签A和C而标签B不存在的样本。
  近年来,随着司法改革的全面推进,以公开为原则,不公开为例外的政策逐步确立,大量包含了案件事实及其适用法律条文信息的裁判文书逐渐在互联网上公开,海量的数据使自然语言处理技术的应用成为可能。法律条文的组织呈树形层次结构,现实中的案情错综复杂,同一案件可能适用多项法律条文,涉及数罪并罚,需要多标签模型充分学习标签之间的关联性,对文本进行分类预测。2。ERNIE3。0模型
  ERNIE3。0首次在百亿级预训练模型中引入大规模知识图谱,提出了海量无监督文本与大规模知识图谱的平行预训练方法(UniversalKnowledgeTextPrediction),通过将知识图谱挖掘算法得到五千万知识图谱三元组与4TB大规模语料同时输入到预训练模型中进行联合掩码训练,促进了结构化知识和无结构文本之间的信息共享,大幅提升了模型对于知识的记忆和推理能力。
  ERNIE3。0框架分为两层。第一层是通用语义表示网络,该网络学习数据中的基础和通用的知识。第二层是任务语义表示网络,该网络基于通用语义表示,学习任务相关的知识。在学习过程中,任务语义表示网络只学习对应类别的预训练任务,而通用语义表示网络会学习所有的预训练任务。
  ERNIE3。0模型框架3。ERNIE3。0中文预训练模型进行法律文本多标签分类预测3。1环境准备
  AIStudio平台默认安装了Paddle和PaddleNLP,并定期更新版本。如需手动更新Paddle,可参考飞桨安装说明,安装相应环境下最新版飞桨框架。使用如下命令确保安装最新版PaddleNLP:3。2加载法律文本多标签数据
  本数据集(2019年法研杯要素识别任务)来自于中国裁判文书网公开的法律文书,每条训练数据由一份法律文书的案情描述片段构成,其中每个句子都被标记了对应的类别标签,数据集一共包含20个标签,标签代表含义如下:DV10婚后有子女DV21限制行为能力子女抚养DV32有夫妻共同财产DV43支付抚养费DV54不动产分割DV65婚后分居DV76二次起诉离婚DV87按月给付抚养费DV98准予离婚DV109有夫妻共同债务DV1110婚前个人财产DV1211法定离婚DV1312不履行家庭义务DV1413存在非婚生子DV1514适当帮助DV1615不履行离婚协议DV1716损害赔偿DV1817感情不和分居满二年DV1918子女随非抚养权人生活DV2019婚后个人财产
  数据集示例:textlabels所以起诉至法院请求变更两个孩子均由原告抚养,被告承担一个孩子抚养费每月600元。0,7,3,12014年8月原、被告因感情不和分居,2014年10月16日被告文某某向务川自治县人民法院提起离婚诉讼,被法院依法驳回了离婚诉讼请求。6,5女儿由原告抚养,被告每月支付小孩抚养费500元;0,7,3,1
  使用本地文件创建数据集,自定义readcustomdata()函数读取数据文件,传入loaddataset()创建数据集,返回数据类型为MapDataset。更多数据集自定方法详见如何自定义数据集。自定义数据集importrefrompaddlenlp。datasetsimportloaddatasetdefcleantext(text):texttext。replace(r,)。replace(,)textre。sub(rn,。,text)returntext定义读取数据集函数defreadcustomdata(istestFalse,isonehotTrue):filenum6ifistestelse48文件个数filepathrawdatatestifistestelserawdatatrainforiinrange(filenum):fopen({}labeled{}。txt。format(filepath,i))whileTrue:linef。readline()ifnotline:breakdataline。strip()。split()标签用Onehot表示ifisonehot:labels〔float(1)ifstr(i)indata〔1〕。split(,)elsefloat(0)foriinrange(20)〕else:labels〔int(d)fordindata〔1〕。split(,)〕yield{text:cleantext(data〔0〕),labels:labels}f。close()labelvocab{0:婚后有子女,1:限制行为能力子女抚养,2:有夫妻共同财产,3:支付抚养费,4:不动产分割,5:婚后分居,6:二次起诉离婚,7:按月给付抚养费,8:准予离婚,9:有夫妻共同债务,10:婚前个人财产,11:法定离婚,12:不履行家庭义务,13:存在非婚生子,14:适当帮助,15:不履行离婚协议,16:损害赔偿,17:感情不和分居满二年,18:子女随非抚养权人生活,19:婚后个人财产}loaddataset()创建数据集traindsloaddataset(readcustomdata,istestFalse,lazyFalse)testdsloaddataset(readcustomdata,istestTrue,lazyFalse)lazyFalse,数据集返回为MapDataset类型print(数据类型:,type(trainds))labels为Onehot标签print(训练集样例:,trainds〔0〕)print(测试集样例:,testds〔0〕)数据类型:classpaddlenlp。datasets。dataset。MapDataset训练集样例:{text:2013年11月28日原、被告离婚时自愿达成协议,婚生子张某乙由被告李某某抚养,本院以(2013)宝渭法民初字第01848号民事调解书对该协议内容予以了确认,该协议具有法律效力,对原、被告双方均有约束力。,labels:〔1。0,1。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〕}测试集样例:{text:综上,原告现要求变更女儿李乙抚养关系的请求,本院应予支持。,labels:〔1。0,1。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〕}3。3加载中文ERNIE3。0预训练模型和分词器
  PaddleNLP中Auto模块(包括AutoModel,AutoTokenizer及各种下游任务类)提供了方便易用的接口,无需指定模型类别,即可调用不同网络结构的预训练模型。PaddleNLP的预训练模型可以很容易地通过frompretrained()方法加载,Transformer预训练模型汇总包含了40多个主流预训练模型,500多个模型权重。
  AutoModelForSequenceClassification可用于多标签分类,通过预训练模型获取输入文本的表示,之后将文本表示进行分类。PaddleNLP已经实现了ERNIE3。0预训练模型,可以通过一行代码实现ERNIE3。0预训练模型和分词器的加载。加载中文ERNIE3。0预训练模型和分词器frompaddlenlp。transformersimportAutoModelForSequenceClassification,AutoTokenizermodelnameernie3。0basezhnumclasses20modelAutoModelForSequenceClassification。frompretrained(modelname,numclassesnumclasses)tokenizerAutoTokenizer。frompretrained(modelname)3。4基于预训练模型的数据处理
  Dataset中通常为原始数据,需要经过一定的数据处理并进行采样组batch。通过Dataset的map函数,使用分词器将数据集从原始文本处理成模型的输入。定义paddle。io。BatchSampler和collatefn构建paddle。io。DataLoader。
  实际训练中,根据显存大小调整批大小batchsize和文本最大长度maxseqlength。importfunctoolsimportnumpyasnpfrompaddle。ioimportDataLoader,BatchSamplerfrompaddlenlp。dataimportDataCollatorWithPadding数据预处理函数,利用分词器将文本转化为整数序列defpreprocessfunction(examples,tokenizer,maxseqlength):resulttokenizer(textexamples〔text〕,maxseqlenmaxseqlength)result〔labels〕examples〔labels〕returnresulttransfuncfunctools。partial(preprocessfunction,tokenizertokenizer,maxseqlength128)traindstrainds。map(transfunc)testdstestds。map(transfunc)collatefn函数构造,将不同长度序列充到批中数据的最大长度,再将数据堆叠collatefnDataCollatorWithPadding(tokenizer)定义BatchSampler,选择批大小和是否随机乱序,进行DataLoadertrainbatchsamplerBatchSampler(trainds,batchsize64,shuffleTrue)testbatchsamplerBatchSampler(testds,batchsize64,shuffleFalse)traindataloaderDataLoader(datasettrainds,batchsamplertrainbatchsampler,collatefncollatefn)testdataloaderDataLoader(datasettestds,batchsamplertestbatchsampler,collatefncollatefn)3。5数据训练和评估
  定义训练所需的优化器、损失函数、评价指标等,就可以开始进行预模型微调任务。importtimeimportpaddle。nn。functionalasFfrommetricimportMultiLabelReport文件在根目录下Adam优化器、交叉熵损失函数、自定义MultiLabelReport评价指标optimizerpaddle。optimizer。AdamW(learningrate1e4,parametersmodel。parameters())criterionpaddle。nn。BCEWithLogitsLoss()metricMultiLabelReport()fromevalimportevaluateepochs5训练轮次ckptdirernieckpt训练过程中保存模型参数的文件夹globalstep0迭代次数tictraintime。time()bestf1score0forepochinrange(1,epochs1):forstep,batchinenumerate(traindataloader,start1):inputids,tokentypeids,labelsbatch〔inputids〕,batch〔tokentypeids〕,batch〔labels〕计算模型输出、损失函数值、分类概率值、准确率、f1分数logitsmodel(inputids,tokentypeids)losscriterion(logits,labels)probsF。sigmoid(logits)metric。update(probs,labels)auc,f1score,,metric。accumulate()auc,f1score,precison,recall每迭代10次,打印损失函数值、准确率、f1分数、计算速度globalstep1ifglobalstep100:print(globalstepd,epoch:d,batch:d,loss:。5f,auc:。5f,f1score:。5f,speed:。2fsteps(globalstep,epoch,step,loss,auc,f1score,10(time。time()tictrain)))tictraintime。time()反向梯度回传,更新参数loss。backward()optimizer。step()optimizer。cleargrad()每迭代40次,评估当前训练的模型、保存当前最佳模型参数和分词器的词表等ifglobalstep400:savedirckptdirifnotos。path。exists(savedir):os。makedirs(savedir)evalf1scoreevaluate(model,criterion,metric,testdataloader,labelvocab,ifreturnresultsFalse)ifevalf1scorebestf1score:bestf1scoreevalf1scoremodel。savepretrained(savedir)tokenizer。savepretrained(savedir)
  模型训练过程中会输出如下日志:globalstep770,epoch:4,batch:95,loss:0。04217,auc:0。99446,f1score:0。92639,speed:0。61stepsglobalstep780,epoch:4,batch:105,loss:0。03375,auc:0。99591,f1score:0。92674,speed:0。98stepsglobalstep790,epoch:4,batch:115,loss:0。04217,auc:0。99530,f1score:0。92483,speed:0。80stepsglobalstep800,epoch:4,batch:125,loss:0。05338,auc:0。99534,f1score:0。92467,speed:0。67stepsevalloss:0。05298,auc:0。99185,f1score:0。90312,precison:0。90031,recall:0。90596〔2022072716:31:27,917〕〔INFO〕tokenizerconfigfilesavedinernieckpttokenizerconfig。json〔2022072716:31:27,920〕〔INFO〕Specialtokensfilesavedinernieckptspecialtokensmap。jsonglobalstep810,epoch:4,batch:135,loss:0。04668,auc:0。99509,f1score:0。91319,speed:0。59stepsglobalstep820,epoch:4,batch:145,loss:0。04317,auc:0。99478,f1score:0。91696,speed:0。98stepsglobalstep830,epoch:4,batch:155,loss:0。04573,auc:0。99488,f1score:0。91815,speed:0。80stepsglobalstep840,epoch:4,batch:165,loss:0。05505,auc:0。99465,f1score:0。91753,speed:0。65stepsevalloss:0。05352,auc:0。99234,f1score:0。89713,precison:0。88058,recall:0。91432globalstep850,epoch:4,batch:175,loss:0。03971,auc:0。99626,f1score:0。92391,speed:0。76stepsglobalstep860,epoch:4,batch:185,loss:0。04622,auc:0。99593,f1score:0。91806,speed:0。97stepsglobalstep870,epoch:4,batch:195,loss:0。04128,auc:0。99587,f1score:0。91959,speed:0。77stepsglobalstep880,epoch:4,batch:205,loss:0。06053,auc:0。99566,f1score:0。92041,speed:0。63stepsevalloss:0。05234,auc:0。99220,f1score:0。90272,precison:0。89108,recall:0。91466。。。3。6多标签分类预测结果预测
  加载微调好的模型参数进行情感分析预测,并保存预测结果fromevalimportevaluate模型在测试集中表现model。setdict(paddle。load(ernieckptmodelstate。pdparams))也可以选择加载预先训练好的模型参数结果查看模型训练结果model。setdict(paddle。load(ernieckpttrainedmodelstate。pdparams))print(ERNIE3。0在法律文本多标签分类test集表现,end)resultsevaluate(model,criterion,metric,testdataloader,labelvocab)ERNIE3。0在法律文本多标签分类test集表现evalloss:0。05298,auc:0。99185,f1score:0。90312,precison:0。90031,recall:0。90596testdsloaddataset(readcustomdata,istestTrue,isonehotFalse,lazyFalse)resdir。resultsifnotos。path。exists(resdir):os。makedirs(resdir)withopen(os。path。join(resdir,multilabel。tsv),w,encodingutf8)asf:f。write(textprediction)fori,predinenumerate(results):f。write(testds〔i〕〔text〕pred)
  法律多标签文本预测结果示例:
  4。总结
  相关项目:
  Paddlenlp之UIE模型实战实体抽取任务【打车数据、快递单】
  Paddlenlp之UIE分类模型【以情感倾向分析新闻分类为例】含智能标注方案)
  应用实践:分类模型大集成者〔PaddleHub、Finetune、prompt〕
  Paddlenlp之UIE关系抽取模型【高管关系抽取为例】
  PaddleNLP基于ERNIR3。0文本分类以中医疗搜索检索词意图分类(KUAKEQIC)为例【多分类(单标签)】
  基于ERNIR3。0文本分类:CAIL2018SMALL罪名预测为例(多标签)
  本项目主要讲解了法律任务,和对性能指标的简单探讨,可以看到实际更多问题是关于多标签分类的。
  ChinaAILawChallenge(CAIL)中国法研杯司法人工智能挑战赛本项目数据集:https:github。comchinaailawchallengeCAIL2019treemasterE8A681E7B4A0E8AF86E588AB
  数据集自取:
  欢迎大家关注我的主页:https:aistudio。baidu。comaistudiousercenter
  以及博客:https:blog。csdn。netsinat39620217?typeblog
投诉 评论 转载

北京阿尔山自驾6日之旅今天给大家介绍一下阿尔山6天自驾之旅。Day1:北京盘锦红海滩由于是国庆第一天,高速上车很多,一直是低速行驶,本来计划下午赶到红海滩看日落,实际晚上才到,景点已经关……高诗岩朱荣振双双被雪藏,已经成为了辽鲁博弈的牺牲品先说明啊,这个标题不是我想出来的,是我对各大平台上对于高诗岩和朱荣振二人大量报道的一个总结。因为之前宫鲁鸣的一句朱荣振在我们球队未来规划中,占有非常高的比重开始,好巧不巧的朱荣……把鸡腿放进微波炉!几分钟就出炉,方便又美味的低卡掉秤神器!头条创作挑战赛作为一名美食博主,今天我想分享的是一道非常适合懒人的美食微波炉烤鸡腿。相信很多人都有过这样的经历,下班回家累得不想动弹,但又想吃点美味的食物,此时微波炉烤鸡……正式官宣!张本智和一家四口全入日本籍,此前妈妈一直不愿改国籍近日张凌这位非常优秀的乒乓球运动员,正式改了国籍,她曾经在四川省队效力,是非常优秀的中国队运动员,然而在1995年的世乒赛中,张凌表现非常差劲,没能帮助球队获得好成绩,个人表现……篮网宣布新消息,贝弗利可被交易,爵士再次索要1换10要价北京时间7月14日,NBA自由市场正在进行,其中赖特表示,库兹马在招募中的表现比奇才经理更出色,他有做经理的潜质,签下后卫布伦森是尼克斯有机会获得多诺要米切尔的关键因素。就在刚……日常使用手机都会泄露我们哪些隐私?之前有一个热点事件是关于facebook的,说它泄露了八千七百万的用户数据,这个说法各方报道的不太一样。《纽约时报》报道的是五千万,剑桥分析说大概是三千万。这个数据不是一……巴萨的青春风暴不会停!18岁的巴尔德取代阿尔巴成左路答案都在说巴萨的左后卫应该用谁,阿尔巴逐渐老去,阿隆索速度偏慢,18岁的巴尔德显然不想错过成功的最佳良机。在红蓝军团,18岁的年轻人都是最美的。佩德里拿了金童奖,加维一飞冲天……山西小伙来武汉,在路边点了一份早餐原谅我没见过世面,吃不下湖北地区的老百姓对吃早餐非常重视,他们把早餐叫做过早,当地人甚至更爱出门过早,去享受各种美食,才算一天的真正开始。而且当地人吃早餐一定是要吃饱,所以在湖北各地,各种重油重盐的高……微信外卖来了?广深用户可尝鲜!近日有消息称微信正在广州和深圳测试小程序快送服务门店快送,入口设在微信发现页面的小程序里面。腾讯官方向南方记者回应表示,门店快送是对此前附近小程序的升级,目前正在广深地区……基于Ernie3。0CAIL2019法研杯要素识别多标签分类本项目链接:基于Ernie3。0CAIL2019法研杯要素识别多标签分类任务(https:aistudio。baidu。comaistudioprojectdetail4……妈耶!时速97公里的特斯拉飞行汽车JetsonOne不需要驾据《每日星报》8月4日消息,特斯拉飞行汽车JetsonOne的司机不需要驾照。Jetson的创始人托马什帕坦(TomaszPatan)说,JetsonOne在2018年完……国产电脑横空出世,微软英特尔面临强敌,阿里这是要翻身了?咱们说起电脑,第一时间都会想到微软的操作系统,以及英特尔的芯片处理器,可以说他们垄断中国市场近几十年,我们就在这块领域被卡住了多少年,无论是windows操作系统还是intel……
联合国贸发会议最新报告预计贸易低迷状况下半年好转得鲜遮瑕液怎么用?关于得鲜遮瑕液原来小米系手机也能快速访问GooglePlay钧瓷长城鼎成为冬奥会特许商品,特制冰雪釉致敬冰雪盛事NBA历史最佳阵容要美容先养颜波司登回应先涨后跌仅便宜0。28元不超吊牌价都合理央视主持朱军媳妇祝福祖国,穿渐变裙过道跳舞,这身材老朱有福气无人值守洗车机怎么样?为什么苹果手机的平均寿命比安卓手机要长?内行人告诉你三个原因大道至简,实干为要越南首富sofm再战永劫无间,32杀杀疯,网友难怪LOL失利
养生知药干姜听说4000亿引导基金正在愁如何退出?热传聚热点网 怎样用卷发棒附款卷发棒卷出的好看发型26次失误差点浪输!杜锋练兵险玩砸,阿联两战46分31板拦不送友人往太原把人打伤法律上一般是怎么处理的年内肉眼可以看见银河系中恒星死亡红薯粉可别直接下锅煮,试试这个做法,清脆爽口,Q弹又开胃好吃高考语文常考必背的考点知识点演讲稿作文预算一千,如何在显卡起飞的日子里装出来一台能玩游戏的电脑服装年终工作总结

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形