【自然语言处理】:实验5,司法阅读理解

清华大学驭风计划课程链接 

学堂在线 - 精品在线课程学习平台 (xuetangx.com)

代码和报告均为本人自己实现(实验满分),只展示主要任务实验结果,如果需要详细的实验报告或者代码可以私聊博主

有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~

任务说明

裁判文书中包含了丰富的案件信息,比如时间、地点、人物关系等等,通过机器智能化地阅读理解裁判文书,可以更快速、便捷地辅助法官、律师以及普通大众获取所需信息。 本次任务覆盖多种法律文书类型,包括民事、刑事、行政,问题类型为多步推理,即对于给定问题,只通过单句文本很难得出正确回答,模型需要结合多句话通过推理得出答案。

数据说明

本任务数据集包括约5100个问答对,其中民事、刑事、行政各约1700个问答对,均为需要多步推理的问题类型。为了进行评测,按照9:1的划分,数据集分为了训练集和测试集。注意 该数据仅用于本课程的学习,请勿进行传播。

发放的文件为train.jsondev.json,为字典列表,字典包含字段为:

  • _id:案例的唯一标识符。

  • context:案例内容,抽取自裁判文书的事实描述部分。数据格式与HotpotQA数据格式一致,不过只包含一个篇章,篇章包括标题(第一句话)和切割后的句子列表。

  • question:针对案例提出的问题,每个案例只标注一个问题。

  • answer:问题的回答,包括片段、YES/NO、据答几种类型,对于拒答类,答案应该是"unknown"。

  • supporting_facts:回答问题的依据,是个列表,每个元素包括标题(第一句话)和句子编号(从0开始)。

同学们需根据案例描述和问题,给出答案及答案依据,最终会综合两部分的效果并作为评判依据,评价方法与HotpotQA一致。

我们提供基础的模型代码在baseline目录下

评分要求

分数由两部分组成。首先,读懂已有代码并添加适量注释。使用已有代码在训练数据上进行训练,并且完成开发集评测,这部分占60%,评分依据为模型的开发集性能和报告,报告主要包括对于模型基本原理的介绍,需要同学阅读代码进行学习。 第二部分,进行进一步的探索和尝试,我们将在下一小节介绍可能的尝试,并在报告中汇报尝试的方法以及结果,这部分占40%。同学需要提交代码和报告,在报告中对于两部分的实验都进行介绍。

探索和尝试

  • 使用2019年的阅读理解数据集(CJRC)作为辅助数据集,帮助模型提高阅读理解能力

  • 使用别的预训练语言模型完成该实验,例如THUNLP提供的司法BERT

  • 对于新的模型架构进行探索,例如加入图神经网络(GNN)来加强模型的推理能力

参考资料

  • CAIL2020——阅读理解

实验结果 

基本模型训练+别的预训练模型训练

这 一 部 分 我 使 用 了 5 个 模 型 进 行 训 练 , 分 别 是 chinese-bert-wwm-ext, chinese_roberta_wwm_ext_pytorch, ms_BERT, xs_BERT, baidubaike_BERT 。训练完后需要
进行结果预测,通过查找资料找到了 hotpot_evaluate_v1.py ,运行这个文件就可以得出验证集的结果,下面是我汇总的结果

 除了 chinese_roberta_wwm_ext_pytorch 训练时候学习率为 4e-5,其他四个模型训练都用的 1e-5(因为 roberta 模型用 1e-5 学习率训练时候结果太差,通过查询参考资料看到这个模型最 佳学习率是 4e-5,所以试了发现效果不错)其他超参数都相同

通过汇总结果图表看出在 12 项评价指标中 chinese-bert-wwm-ext 模型的 8 项指标为最好,所 以 后 面 加 辅 助 数 据 集 进 行 训 练 的 时 候 也 是 选 择 这 个 模 型 , 其 次 比 较 好 的 是 chinese_bert_wwm_ext, 四项指标优于 chinese_roberta_wwm_ext 而其他三个模型训练出的
结果普遍不好,与前两个模型得出的结果有相当大的差距,个人认为造成这样的原因是那三个模型都是对于单个领域的专用模型,因为数据集是对于民事、刑事、行政这三种法律文书类型,所以即使对于单个领域预测好,但是平均三个领域下来结果就会被平均降低。

添加2019CJRC数据集作为辅助数据进行训练

这一步的难点主要是数据转换成 train.json 一样的格式 
因为 2019CJRC 数据集中是一个案例对应多个问题,而 train.json 文件中是一个案例对应一个问题,所以转换的时候多个问题的 id 就作为单个案例来处理 ( 比如一个案例对应三个问题,转化后就变成三个案例,所以数据量增加特别多)

 

通过上面代码再合并 train.json 文件和前面转换后的文件 CJRJ_data 文件,案例总数来到 35411, 约为原数据集的 8 倍,数据预处理的时候也很耗时,大约耗时 10 分钟。

最终使用 chinese-bert-wwm-ext 模型来进行训练,训练汇总结果如下 

从结果看出对比在不加辅助数据集的情况下在 12 项结果指标中 10 项指标都有比较明显的提
升,可以看出同模型同参数的情况下,训练数据的增大使得验证集的结果指标明显提升,这
部改进提升很成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity接入SQLite (一):SQLite介绍

1.简介 SQLite是一个开源的嵌入式关系数据库管理系统。它是一种轻量级的数据库引擎,不需要单独的服务器进程,可以直接嵌入到应用程序中使用。Sqlite使用简单、高效,并且具有对标准SQL的完整支持。它适用于需要在本地存储和访问数据的应用程序…

hash,以及数据结构——map容器

1.hash是什么? 定义:hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出, 该输出就是散列值。这种转换是一种压缩映射&…

Maven depoly:Skipping artifact deployment

问题描述: 使用IDEA执行mvn depoly将本地开发的模块发布到Maven私服时,一直提示:Skipping artifact deployment,自动跳过了depoly部署阶段。 问题分析 Maven构建生命周期中的每一个阶段都是由对应的maven插件执行具体工作的。既然…

linux运维xshell同时控制多个窗口的快捷方式

下面去实现同时操作的功能。 1. 找到 工具- 2. 根据需要,选择需要操作的窗口即可。 以上就是对xshell中同时操作多个窗口的方法

【k8s核心概念与专业术语】

k8s架构 1、服务的分类 服务分类按如下图根据数据服务支撑,分为无状态和有状态 无状态引用如下所示,如果一个nginx服务,删除后重新部署有可以访问,这个属于无状态,不涉及到数据存储。 有状态服务,如redis&a…

四、矩阵的分类

目录 1、相等矩阵 2、同形矩阵 3、方阵: 4、负矩阵、上三角矩阵、下三角矩阵: 5、对角矩阵:是方阵 ​编辑7、单位矩阵:常常用 E或I 来表示。它是一个方阵 8、零矩阵: 9、对称矩阵:方阵 1、相等矩阵 …

力扣经典题目解析--两数之和

两数之和 题目地址: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 简单来说就是在一个数组中找出两个数,这两个数相加要等于给定的target,下面是完整的题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中…

阿里云SSL免费证书到期自动申请部署程序

阿里云的免费证书只有3个月的有效期,不注意就过期了,还要手动申请然后部署,很是麻烦,于是写了这个小工具。上班期间抽空写的,没有仔细测试,可能存在一些问题,大家可以自己clone代码改改&#xf…

(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程

相似对角化 和 对角化 很大程度上是一回事 甚至判断两个矩阵的相似性,也跟对角化有很大关系 参考视频1:https://www.bilibili.com/video/BV1PA411T7b5/?spm_id_from333.788&vd_source7a1a0bc74158c6993c7355c5490fc600 参考视频2:http…

【移动安全】MobSF联动安卓模拟器配置动态分析教程

原文链接 MobSF联动安卓模拟器配置动态分析教程 实现方式 Windows开启安卓模拟器并进行相关配置作为调试客户端,Linux使用docker开启MobSF作为服务端。 好处:干净,部署简单,不用安装乱七八糟的环境,防止破坏其他应…

最新YOLOv9论文理论:使用可编程梯度信息学习您想学习的内容 | Programmable Gradient Information

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information YOLOv9 论文地址:https://arxiv.org/pdf/2402.13616.pdf 摘要 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果最接近真实情况。同时&…

CSS轻松学:简单易懂的CSS基础指南

css基础 更多web开发知识欢迎访问我的专栏>>> 01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:…

Qt事件过滤器

1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象,它接收发送到此QObject对象(安装事件过滤器的部件对象)的所有事件。筛选器可以停止事件…

【Oracle】玩转Oracle数据库(四):SQL语言

前言 嘿,各位数据达人们!准备好迎接新的挑战了吗?今天,我们要探索的是数据库世界的魔法咒语——SQL语言!🔮💻 在这篇博文【Oracle】玩转Oracle数据库(四):SQL…

ssm+springmvc基于springboot的宠物领养系统的设计与实现_j5fk4

宠物领养系统主要是为了提高管理员的工作效率,满足管理员对更方便、更快、更好地存储所有信息和数据检索功能的要求。通过对多个类似网站的合理分析,确定了宠物领养系统的各个模块。考虑到用户的可操作性,经过深入调查研究,遵循系…

Web 前端 UI 框架Bootstrap简介与基本使用

Bootstrap 是一个流行的前端 UI 框架,用于快速开发响应式和移动设备优先的网页。它由 Twitter 的设计师和工程师开发,现在由一群志愿者维护。Bootstrap 提供了一套丰富的 HTML、CSS 和 JavaScript 组件,可以帮助开发者轻松地构建和定制网页和…

css3d制作正方体

使用css3d技术 &#xff0c;制作一个可以动态动画的正方体模型 效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><style>/* 设置高度宽度100%并且左右居中、上下居中 */html,body {width: 100%;height: 100%;display: flex…

【Python笔记-设计模式】对象池模式

一、说明 用于管理对象的生命周期&#xff0c;重用已经创建的对象&#xff0c;从而减少资源消耗和创建对象的开销 (一) 解决问题 主要解决频繁创建和销毁对象所带来的性能开销问题。如数据库连接、线程管理、网络连接等&#xff0c;对象的创建和销毁成本相对较高&#xff0c…

求最短路问题总结

图论题最重要的是如何抽象出图&#xff0c;怎么定义点和边。 朴素Dijkstra算法&#xff1a;稠密图 堆优化版的Dijkstra算法&#xff1a;稀疏图 存在负权边一般用SPFA&#xff0c;个别情况用Bellman-Fold。 多源汇最短路用Floyd算法。

React18源码: reconciler执行流程

reconciler执行流程 1 &#xff09;概述 此处先归纳一下react-reconciler包的主要作用&#xff0c;将主要功能分为4个方面&#xff1a; 输入&#xff1a;暴露api函数&#xff08;如&#xff1a;scheduleUpdateOnFiber&#xff09;, 供给其他包&#xff08;如react包&#xff0…