一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多罪名预测方法

2022-05-21 11:36:15 来源:中国专利 TAG:


1.本发明涉及一种多罪名预测方法。


背景技术:

2.当今社会,在政府相关部门以及各大信息平台的大力宣传之下,人们通过法律手段维护自身权益的意识日益提高。目前人工智能技术在智慧法院各建设领域呈不断拓展的趋势,深度学习模型在经过大量数据训练之后,能够快速学习到案件事实中的重要信息并做出相应判断,从而为司法从业人员减轻负担,提高工作效率。
3.罪名预测任务是智慧审判领域的核心任务之一,其旨在依据犯罪事实自动预测出犯罪主体触犯的罪名。现有研究通常将罪名预测任务建模为多标签分类问题进行求解,通过编码器把案情描述文本压缩为一个融合语义信息的上下文向量,然后将该向量输入分类器生成每个罪名的概率,最后设定一个先验阈值,如果概率大于阈值就认为罪名与案情对应。
4.此类方法在单罪名案例上表现尚可,但在多罪名案例上表现不佳,主要存在以下问题:首先,将多罪名预测转化为多个单罪名预测没有考虑到罪名之间潜在的逻辑关系,不具有解释性;其次,将不同罪名以数字或者符号加以区分,不仅没有考虑到罪名本身带有的语义信息,而且罪名编码向量的欧式距离还不能很好反应罪名之间的差异性。


技术实现要素:

5.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种多罪名预测方法,从自然语言生成的角度对案情描述序列和罪名序列进行建模,对案情描述以及所有罪名分别采用unilm(统一预训练语言模型)的双向语言模型进行编码,引入案情-罪名注意力机制,来缓解多标签分类模型的不足之处。
6.为达到上述目的,本发明提供了一种融合罪名语义与案情-罪名注意力的多罪名预测方法,分别对案情描述和所有罪名进行编码,计算解码器当前时间步的隐藏状态与所有罪名的相关性,并将结果融入到解码器当前隐藏状态中。具体包括以下步骤:
7.输入案情描述文本,经过一个文本自动摘要模型获取案情描述中的关键信息,将案情描述与案情摘要进行拼接,输入表征方式同bert,采用unilm模型的双向语言模型对其进行编码,将输入的文本转化为向量表示;
8.同样采用unilm模型的双向语言模型对所有罪名进行编码,输出为对应的罪名编码序列,该序列不仅能够包含所有罪名的语义信息、体现罪名之间的差异性,还能学习到罪名之间的相互关系;
9.取案情编码模块的最后一个位置对应的输出作为解码器的当前隐藏状态,其中包含了前向序列包括已生成罪名的相关重要信息,计算其和罪名编码器输出序列中每一项的相关性系数,把相关性系数通过归一化指数函数softmax进行归一化,代表注意力权重,将每个罪名编码器的输出与其对应的归一化权重相乘再求和,就得到当前时间步的罪名注意
力编码向量;
10.采用unilm模型的单向语言模型完成罪名预测,仅对前向序列可见,隐藏状态为案情编码模块最后一个位置对应的输出向量,将其与当前时间步的罪名注意力编码向量拼接起来作为当前解码器的输入,经过全连接层映射到输出词典的维度进行罪名预测,直到预测出结束标记为止。
11.本发明方法包括如下步骤:
12.步骤1,对文本摘要模型进行训练,将案情描述输入训练好的文本摘要模型,得到案情摘要;
13.步骤2,将案情描述与案情摘要拼接,
14.步骤3,将所有罪名精简为长度x1(一般取值为504)的字符串;
15.步骤4,取步骤2得到的案情编码向量作为解码过程中的当前隐藏状态,计算其和步骤3的罪名编码序列中每一项的相关性系数,把相关性系数通过归一化指数函数 softmax进行归一化,代表注意力权重,将每个罪名编码器的输出与其对应的归一化权重相乘再求和,就得到当前时间步的案情和罪名注意力编码向量;
16.步骤5,将案情编码向量与案情和罪名注意力编码向量拼接作为解码过程中的当前时间步的输入,解码过程由多个全连接神经网络实现,将所述输入经过全连接层(由多个全连接神经网络组成)映射到中文字典的维度,取概率最大的位置对应的罪名即当前时间步预测出的罪名。
17.步骤1包括:文本摘要模型同样选择unilm模型,训练数据集为thucnews新闻数据集。在训练文本摘要模型时,输入内容包括:“[cls]新闻内容[sep]新闻摘要 [sep]”,其中“[cls]”为开始标记,“[sep]”为结束标记,通过unilm的掩码机制掩盖新闻摘要中的字,让unilm模型学习逐个恢复被掩盖的字,训练目标是基于上下文最大化被掩盖字的似然度,结束标记“[sep]”也能够被掩盖,模型预测到结束标记即结束预测。
[0018]
步骤2包括:案情描述与案情摘要之间加入“@@@”作为分隔符,通过bert官方给出的字级分词器和中文字典分别进行分词和词嵌入,将输入文本转化为向量序列,采用unilm模型的双向语言模型对该序列进行编码,取输出的最后一个向量作为当前时间步的案情编码向量。
[0019]
步骤2中,训练时案情描述和对应罪名以句子对的形式进行输入,测试时仅输入案情描述,,格式为:“[cls]案情描述@@@案情摘要[sep]”,其中“@@@”用于区分案情描述和案情摘要,“[cls]”和“[sep]”分别为句子开始和结束的特殊标记。每个字的表征方式由词嵌入、位置嵌入和分段嵌入组合而成。
[0020]
步骤2中,首先由bert的字级分词器对拼接的案情描述和案情摘要进行分词,返回分词后的字的数组,再根据中文字典中字和数值的一一对应关系将字的数组转化为值的数组,通过深度学习pytorch框架的nn.embedding方法将每个字的独热编码转化为 768维的稠密向量。
[0021]
位置嵌入将单词的位置信息编码成特征向量,从而引入单词位置关系;
[0022]
步骤2还包括:对于长度512的输入,词向量维度为768,位置嵌入是(512,768) 的查询表,序列的每个位置的位置嵌入对应表中相应的行,其中的值在模型训练过程中不断学习。分段嵌入用于区分两个句子,例如b是否是a的下文(对话场景,问答场景等),可以作
为模型采取何种训练方式(单向,双向,序列到序列)的一种标识。对于句子对,第一个句子的特征值是0,第二个句子的特征值是1。
[0023]
步骤2还包括:unilm模型的骨干网络包括24层transformer网络(transformer 是基于注意力的编码器解码器框架),经过词嵌入之后,unilm模型的输入向量转化为由768维词向量组成的序列h0=[x1,...,x
|x|
],送入24层transformer网络,在不同层融合上下文信息,每层transformer使用多头注意力融合上一层输出的向量,第层编码输出为表示词向量在第l层编码对应位置的输出;
[0024]
对于第l层transformer网络,transformer网络中的自注意头的输出的计算方式为:
[0025][0026][0027][0028]
上一层的输出h
l-1
通过第l层三个参数矩阵分别被线性的投影为查询向量q、键向量k和值向量v(三个矩阵在创建时都采用随机初始化的方式,在训练过程中参数会更新,是模型参数的一部分),dk为词向量的维度,掩码矩阵m则用来控制对应位置的信息是否对上下文可见,m
ij
表示掩码矩阵m中第i行第j列的值;如果m
ij
值为0,则allow to attend表示所有字都可以访问,如果m
ij
值为-∞,则 prevent from attending表示对上下文不可见。输入的第一个分段即为罪名预测的输入,由案情描述文本和案情摘要构成,模型在对此部分词向量编码时,使用unilm的双向语言模型进行编码,即掩码矩阵m的所有元素设为0,让模型能够充分学习到上下文信息。而对于第二个分段即对应罪名部分则需要采用单向语言模型进行编码,掩码的方式与transformer模型相同,为了使模型具有并行计算的能力,将序列复制n次, n为第二个分段的长度,再与一个下三角为0,上三角为负无穷的掩码矩阵相加,从而达到对当前位置后向的词向量进行掩码的目的,让模型在对当前位置进行预测时,仅能注意到前向序列的信息,取案情编码的最后一个位置作为解码器的当前隐藏状态。
[0029]
步骤3包括:通过bert官方给出的字级分词器和中文词典分别进行分词和词嵌入,将输入文本转化为向量序列,采用unilm模型的双向语言模型对向量序列进行编码,取编码后所有位置的输出向量。
[0030]
步骤3中罪名编码取编码后所有位置的输出向量,其中词嵌入和编码方式均与步骤2中相同,不再赘述。
[0031]
步骤4包括:取步骤2的案情编码向量作为解码过程中的当前隐藏状态,计算当前隐藏状态和罪名编码中每一项的相关性系数,对于首次计算注意力,结束标记[sep] 对应的输出向量作为解码器的初始隐藏状态hidden,对hidden向量和步骤3罪名编码的输出序列[key1,key2,

,keyn]做点积运算:
[0032]
similarity(hidden,keyi)=hidden
·
keyi[0033]
其中keyi为罪名编码的输出序列中的第i项,n为罪名序列的长度,similarity为当前隐藏状态hidden与所有罪名之间的相关性系数,把得到的相关性系数归一化指数函数softmax进行归一化:
[0034][0035]
其中similarityi表示similarity中第i项的值,l
x
表示similarity的总长度也就是罪名编码输出序列的长度,ai代表罪名编码的输出序列第i项的注意力权重,计算得到当前时间步的案情和罪名注意力编码向量attention(hidden,keys);
[0036]
步骤4中,采用如下公式计算得到当前时间步的案情和罪名注意力编码向量 attention(hidden,keys):
[0037][0038]
其中keys表示罪名编码的输出序列,keyi为keys中第i个位置的值。得到当前时间步的案情-罪名注意力编码向量,其中不仅包含了案情描述的重要信息,还有相关罪名的语义信息。
[0039]
步骤5包括:将解码过程中的当前隐藏状态与案情-罪名注意力编码向量进行拼接,通过全连接网络映射到字典的维度获取预测出的罪名。
[0040]
有益效果:本发明从序列生成的角度完成多罪名预测任务,在对案情描述编码时,融入案情摘要进行关键信息的增强,同时对所有罪名进行编码,能够获取各罪名的语义信息以及罪名之间的相互关系,最后在解码过程中加入案情-罪名注意力机制,计算解码过程中隐藏状态和所有罪名的相关性,显著提升了多罪名预测的准确率。
附图说明
[0041]
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。
[0042]
图1为本发明的系统架构图;
[0043]
图2为调用模型预测的数据流程图;
[0044]
图3为多罪名预测模型结构图。
具体实施方式
[0045]
实施例
[0046]
如图1所示为本发明的系统架构图,核心在于多罪名预测系统的设计与实现。
[0047]
如图2所示是调用模型预测的数据流程图,核心在于对模型输入输出的预处理操作。
[0048]
图3为多罪名预测模型结构图,核心在于罪名预测模型的整体结构。
[0049]
一种融合罪名语义与案情-罪名注意力的多罪名预测方法,通过对案情描述进行预处理操作,并基于大量训练数据,训练预测模型,精准预测案件对应罪名,辅助法院工作人员判案参考;其包括:
[0050]
首先选用unilm的seq2seq模型训练文本自动摘要模型,训练数据集为thucnews 新闻数据集,thucnews是根据新浪新闻rss订阅频道2005-2011年间的历史数据筛选过滤生成,包含74万篇新闻文档,其本来是一个文本分类的数据集,但是每一段新闻文本的第一行就是该段新闻对应的摘要,类似于传统新闻的一个大标题,其中包含了新闻的关键信息。以该数据集为基础构建文本自动摘要模型的输入和输出进行训练,生成的摘要不仅能够包含输入的关键信息,还能够具有很好的可读性,
[0051]
以“被告人胡某在某市某镇的某公司车间内,与被害人孙某因工作琐事发生口角, 后被告人胡某用木制坐垫打伤被害人孙某左腹部。经鉴定:孙某的左腹部损伤已达重伤二级”为一个实施例中的案情描述,将该案情描述输入提前训练好的文本摘要模型中,得到案情摘要“被告人胡某用木制坐垫打伤被害人左腹部”,将案情描述和案情摘要以如下形式进行拼接得到案情编码的输入:[cls]被告人胡某在某市某镇的某公司车间内,与被害人孙某因工作琐事发生口角,后被告人胡某用木制坐垫打伤被害人孙某左腹部。经鉴定:孙某的左腹部损伤已达重伤二级@@@被告人胡某用木制坐垫打伤被害人左腹部[sep]。
[0052]
由于直接将2018法研杯中涉及的所有罪名拼接之后长度超出unilm模型输入的最大长度,因此对罪民进行精简,保留每个罪名与其他罪名区别的主要信息,精简之后的罪名拼接起来为:[cls]罪名[sep]。
[0053]
其中[cls]和[sep]分别为文本的开始和结束标记,@@@作为案情描述和案情摘要的分隔标记。
[0054]
然后分别采用unilm模型对上述文本进行编码,由字级分词器将其拆分为字的序列,如案情编码部分被分词为:[cls,被,告,人,
……
,左,腹,部,sep],再将每个字转化为该字在bert中文字典中对应的值得到一个值的序列,通过bert模型的词嵌入方式将值序列中的每一项转化为768维的字向量,分别得到一个案情字向量序列 [fact1,fact2,

,factm]和一个罪名字向量序列[accusation1,accusation2,

,accusation],其中m 和n分别为案情编码输入和罪名编码输入经过分词后的字的个数。
[0055]
分别将案情字向量序列和罪名字向量序列送入24层transformer网络,在不同层融合上下文信息,每层transformer使用多头注意力融合上一层输出的向量,第层编码输出为
[0056]
对于第l层transformer网络,transformer网络中的自注意头的输出的计算方式为:
[0057][0058][0059][0060]
上一层的输出h
l-1
通过第l层三个参数矩阵分别被线性的投影为查询向量q、键向量k和值向量v,dk为词向量的维度,softmax为归一化指数函数,掩码矩阵m则用来控制对应位置的信息是否对上下文可见,如果值为0,表示所有字都可以访问,如果值
为-∞,表示对上下文不可见。第24层transformer的输出即为编码后的输出向量。
[0061]
取案情编码向量的最后一个向量作为解码过程中的当前隐藏状态,计算当前隐藏状态和罪名编码中每一项的相关性系数,对于首次计算注意力,结束标记[sep]对应的输出向量作为解码器的初始隐藏状态hidden,对hidden向量和步骤3罪名编码的输出序列[key1,key2,

,keyn]做点积运算:
[0062]
similarity(hidden,keyi)=hidden
·
keyi[0063]
其中keyi为罪名编码的输出序列中的第i项,n为罪名序列的长度,similarity为当前隐藏状态hidden与所有罪名之间的相关性系数,把得到的相关性系数归一化指数函数softmax进行归一化:
[0064][0065]
其中similarityi表示similarity中第i项的值,l
x
表示similarity的总长度也就是罪名编码输出序列的长度,ai代表罪名编码的输出序列每一项的注意力权重,计算得到当前时间步的案情和罪名注意力编码向量attention(hidden,keys):
[0066][0067]
其中keys表示罪名编码的输出序列,keyi为keys中第i个位置的值。得到当前时间步的案情-罪名注意力编码向量,其中不仅包含了案情描述的重要信息,还有相关罪名的语义信息。将解码过程中的当前隐藏状态与案情-罪名注意力编码向量进行拼接,通过全连接网络映射到字典的维度获取当前时间步预测出的罪名。将预测出的罪名与拼接到案情编码输入的后面,重复上述编码以及解码过程,直至预测出结束标记为止。
[0068]
本发明的总体流程如图2所示:分别对案情描述和所有罪名进行编码,对案情编码末位输出和罪名编码序列进行注意力操作,将注意力编码融入解码过程的隐藏状态进行罪名预测。
[0069]
融合罪名语义与案情-罪名注意力的多罪名预测方法,如图3所示。首先将案情描述输入已经训练好的文本摘要模型获取案情摘要,案情摘要的融入能够提高关键信息在输入文本中的比例,丰富输入中蕴含的与罪名预测相关的重要信息;其次,将摘要放在输入文本的末尾显著缩短了关键信息和目标罪名的距离,有助于为输入和输出快速建立连接;最后,由于输入文本具有长度限制,通过融入摘要可以有效缓解在数据预处理过程中由于文本过长进行截断而导致的信息丢失问题。然后将案情描述与案情摘要以“[cls]案情描述@@@案情摘要[sep]”形式进行编码,其中“@@@”用于区分案情描述和案情摘要,“[cls]”和“[sep]”分别为句子开始和结束的特殊标记,取“[sep]”位置对应的输出向量作为解码器的初始隐藏状态。接着对所有罪名同样采用 unilm模型的双向语言模型进行编码,取所有位置对应的输出[h1,h2,

,hn],对解码器隐藏状态和罪名编码序列计算相关性系数score,把相关性系数通过归一化指数函数 softmax进行归一化,代表注意力权重,将每个罪名编码器的输出与其对应的归一化权重相乘再求和,就得到当前时间步的罪名注意力编码向量,然后将案情编码向量与罪名注意力向量拼接作为解码器当前时间步的输入,将该输入经过全连接层映射到中文字典的维度,取概率最大的位置对应的罪名即当前时间步预测出的罪名。
[0070]
本发明提供了一种多罪名预测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献