李春楠,王 雷,孙媛媛,林鸿飞
(1. 大连理工大学 计算机科学与技术学院,辽宁 大连116024;2. 锦州市人民检察院,辽宁 锦州121000)
近年来,随着国家司法改革的持续推进,人工智能技术在司法领域中的应用受到了研究者的广泛关注和重视,特别是对海量的法律文书进行智能分析和处理已成为司法人工智能研究的重要内容。而法律文书的命名实体识别,作为司法人工智能领域的关键性和基础性的工作,在法律问答、刑期预判和司法知识图谱构建等任务中具有重要应用。
法律文书,是指适用于法律活动,带有法律专业属性的所有非规范性文件的总称[1]。司法命名实体则是法律文书中所涉及的,具有司法领域特色的名词和短语,相比较通用领域的命名实体识别研究,司法领域命名实体识别面临以下问题和挑战(1)文中涉及数据均已脱敏。
(1) 法律文书的命名实体识别,关注的是与司法业务息息相关的司法属性。如“2019年2月15日上午10时许,犯罪嫌疑人张某盗窃了受害人李某iPhone6牌手机一部。”其中描述的“张某”和“李某”应该分别为“犯罪嫌疑人”和 “受害人”,而“iPhone6牌手机”应为被盗物品。现有的司法命名实体的研究则多偏向于实体的自然属性,如把“张某”“李某”识别为人名,把“iPhone6牌手机”识别为物品,这些信息对于下游的司法业务应用是不充分的。
(2) 法律文书命名实体相比通用领域命名实体描述粒度更细、更复杂,分词难度更大。如在通用领域,地点会被描述成“**市**县(村)”,而司法命名实体则被描述成“**街**小区**单元**室”“**大厦**层东北角”等,使用现有的分词方案准确率偏低,使用词嵌入作为输入的模型无法很好地解决误差传递问题,而使用字符嵌入作为输入的模型无法很好地解决一词多义问题[2]。
针对以上问题,本文提出了一种基于预训练语言模型BERT[3]的法律文书命名实体模型: BERT-ON-LSTM-CRF(Bidirectional Encoder Representations from Transformers-Ordered Neuron-Long Short Term Memory Networks-Conditional Random Field,BOCNER)。BOCNER利用预训练语言模型BERT根据字的上下文动态生成语义向量作为模型输入,并运用有序神经元长短期记忆网络[4]对输入进行序列和层级建模以提取文本特征,最后利用条件随机场[5]获取最优标记序列。本文在构建的法律文书命名实体数据集上进行了实验,BOCNER的F1值达到86.09%,相比基线模型lattice LSTM[2]F1值提升了7.8%。本文主要有以下三点贡献:
① 基于司法业务需求和罪名特点,提出一种侧重司法属性的命名实体定义方案,并构建了一个细粒度的法律命名实体识别数据集。
② 在法律命名实体识别任务中,首次引入预训练语言模型,有效解决了法律文本中一词多义的问题。
③ 将ON-LSTM结构引入模型中,用以捕捉句子结构信息和句法信息。据我们所知,本文首次将ON-LSTM结构引入中文命名实体识别任务。
命名实体识别(Named Entity Recognition,NER),是指识别文本中具有特定意义的实体,在CoNLL-2002、CoNLL-2003会议上将命名实体定义为包含名称的短语。常见的命名实体包括实体 (组织名称、人名、地名)、时间表达式(日期、时间)、数字表达式(货币值、百分比)等[6]。部分学者从应用角度对命名实体定义进行了探讨,Alfonseca等人[7]提出命名实体就是能用来解决特定问题的我们感兴趣的对象 (obiect);Marrero等人[8]提出定义命名实体唯一可行的标准,就是应用方面的需求目的。
早期的研究工作,命名实体识别的方法通常分为三类: 基于规则和词典的方法、基于统计的方法和两者混合的方法。随着神经网络的飞速发展,基于深度学习的端到端方法成为命名实体识别方法的主流。其主要思路是先使用 CNN、RNN 等网络结构提取序列隐含特征,然后利用条件随机场求解最优序列[9]。利用深度神经网络对原始数据进行建模提取其特征,不仅避免了传统方法中复杂的人工特征工程,还解决了由数据稀疏引发的维度灾难问题。对于通用领域(新闻等)、特定领域(生物医学、司法等)等领域的命名实体研究,已有许多研究工作。例如,Lample[10]、Ma[11]等人在BiLSTM-CRF模型基础上,分别用LSTM和CNN抽取字符特征,模型融合了字符信息,实现了对通用领域人名、地名、组织名等实体的识别; Zhang 等人[2]提出的 Lattice LSTM网络结构,既避免分词带来的错误传递问题,又可以显式地利用词与词序信息,在新闻、微博等多个数据集上都取得了最优结果; 赵浩新等人[12]针对汉字结构特点,提出依靠中文笔画序列生成字向量的Stroke2Vec模型用于中文命名实体识别;王路路等人[13]提出了以基于注意力机制的联合向量表示作为输入的BiLSTM-CRF方法用于维吾尔文命名实体识别;Luo等人[14]在化学药品识别任务中,使用了基于文档的模型和注意力机制,并从全文范围内获取上下文表示,一定程度上解决了标注不一致问题,结果优于基于句子的模型;李丽双等人[15]采用CNN-LSTM-CRF模型对生物医学命名实体进行识别,达到了当时最好的结果,在两个医学语料上F值分别为89.09%和74.40%。
近年来,随着ELMo[16]、GPT[17]、BERT[3]等预训练语言模型的陆续提出,预训练语言模型能够对多义词进行建模,且蕴含丰富的句法和语义信息,为多项自然语言处理(NLP)任务带来了优异的性能提升,受到了各界的广泛关注。李妮等人[18]、王子牛等人[19]、尹学振等人[20]、王月等人[9]采用基于BERT的模型分别对通用领域、军事领域、警情领域命名实体的识别进行了研究,实验结果表明,性能均有不同程度提高。
司法领域命名实体识别研究也有许多相关工作。谢云[21]提出了一种基于GCNN-LSTM模型的片段级法律命名实体识别方法,通过GCNN获得片段内的字符表示,通过LSTM获得片段上下文表示,对法律文书中涉及的人名、地名、刑期、罪名等10种实体进行识别;王礼敏[22]采用基于整数线性规划和基于多任务表示学习的方法,对法律文书中人名、地名、机构名三类实体进行识别;林义孟[23]采用基于LDA的层叠 BiLSTM+CRF方法,对法律文书中人名、地名、机构名和凶器四类实体进行了识别。
目前研究工作对司法领域命名实体的定义,大多采用通用领域实体定义方式,对于法律文本特点和司法业务需求研究不充分。这种定义方式容易导致概念混淆,如无法清楚区分“被害人”和“犯罪嫌疑人”。同时现有法律命名实体识别也没有关于引入预训练语言模型的研究。
法律文本不同于其他领域文本,具有主旨鲜明性、形式程式性、内容法定性、材料客观性,这对其行文结构、语言使用都产生了较大影响。以刑事案件为例,《中华人民共和国刑法》(2017年《刑法修正案(十)》修正版,以下简称《刑法》)规定了十类469个罪名,其中每个罪名所涉及的概念与构成、罪名认定及立案量刑的标准均不一致,所涉及的法律文书实体分布、业务重点也各有侧重。因此法律命名实体的定义需要满足以下三点需求: ①典型性,能反映所涉罪名的业务重点; ②精确性,实体标记要详细、准确,确保信息完整性; ③相关性,既要涵盖高度相关的实体,又要便于区分,避免混淆。
基于以上需求,目前采用统一模型识别所有法律文书实体较为困难,因此本文选取《刑法》侵犯财产罪中盗窃罪案件法律文书的命名实体识别方法作为研究目标,其识别的方法亦可以为其他案件命名实体识别提供借鉴。参考通用领域命名实体定义,并根据《刑法》中对数额范围、是否入户盗窃、携带凶器盗窃、扒窃等业务需求,定义为6个粗粒度分类和12个细粒度分类。
① 人名,指案件中出现的自然人的姓名、代号、绰号、社交媒体账号等表示身份的名称。犯罪嫌疑人,案件中犯罪的主体,指案件涉及的主犯、从犯等。受害人,指被侵犯公私财物的所有者,因语料中人名以外受害个体较少,此处特指人名。相关人,案件中出现的其他自然人名称,如民警、证人等。
② 物品,指案件中出现的公私财物(《刑法》第九十一条、九十二条所定义的公私财产),为了便于对物品进行精确区分,将表征物品的属性(数量、颜色、品牌和编号等)也包含于物品名称之内。被盗物品,指案件中被侵犯所有权的财物名称。作案工具,供犯罪分子实施犯罪使用的财物或器具,包含盗窃工具(撬棍、起子等)、凶器(枪支、爆炸物、管制刀具等)和交通工具(汽车、电动车等)。其他物品,指案件中出现的被盗物品和作案工具外的其他物品。
③ 货币,指我国国家法律承认的法定货币,形式包含贵金属货币、纸币、电子货币等。为了区分货币种类,货币的属性(人民币、美元等)也需要进行标注。被盗货币,指被犯罪嫌疑人以非法手段侵占的货币。物品价值,涉及财务经公证机构认定,被非法侵占财物的原本价值。盗窃获利,犯罪嫌疑人将非法侵占财物出售或其他方式获得的货币金额。
④ 时间,指案件所涉及时段和时刻的时间表达式,包含历法时间(年、月、日等)和非历法时间(上午、下午、夜里、凌晨等)。
⑤ 地址,指案件所涉及的地理位置信息,标注时尽量详细,包含行政区划地名、街巷名、小区名、楼(栋)号、楼层(室)号、标志物地址或自然景观等。同时应包含位置指示词,如房前、楼后、庭院内等。
⑥ 组织机构,指案件涉及的行政机构、企业机构及民间团体等。
我们收集了网上公开的1 500份盗窃类案件起诉意见书,利用规则将其中犯罪事实描述部分抽取出来,构建数据集原始文本。利用哈工大社会计算与信息检索研究中心开源的PYLTP(2)https://github.com/HIT-SCIR/pyltp工具进行分句、分词以及命名实体识别,并进行粗标注。再由三名志愿者进行手工标注,由两名志愿者进行一致性检验,一致性检验结果为92.5%。数据集经整理和扩充后将会进行开源(3)https://github.com/DUTIR-LegalIntelligence,供学者们共同研究。
数据集包含9 657个句子、615 757个字符,49 520个实体,句子长度100字以内占比84%,100至200字占比15%,200字以上占比1%。如图1所示,实体类别分布不平衡,其中,“犯罪嫌疑人”“被盗物品”“地点”合占总数60%,而“机构”“被盗货币”“作案工具”“盗窃获利”及“相关人”仅合占总数9%。数据集按8∶1∶1比例划分训练集、验证集和测试集。数据集每一行由两列组成,两列间用空格隔开,第一列为文本序列,第二列为IOBS格式的标签序列,句子边界用空行标识。结合例1,在表1中对实体标注规范和实体分布情况进行说明。
图1 法律命名实体分布图
表1 司法领域命名实体标注规范
例1“2018年5月9日23时许,被告人何某某到丹东市振兴区**街道**小区**幢**单元**室,用撬棍将窗户敲开后,将被害人覃某某魅族牌手机和钱包内现金7 400余元盗走,后何某某把手机卖给张某,获利500元。经丹东市价格认证中心鉴定,被盗窃的手机价值人民币2 023元。”
BOCNER模型结构如图2所示,模型包含三部分: BERT字向量表示层,基于ON-LSTM的特征提取层及基于CRF的解码层。模型首先通过BERT得到单个字符的动态语义向量表示,把字符向量表示输入ON-LSTM对其序列和层级建模以提取语义和结构特征,最后通过CRF层输出预测的标签序列。
图2 BOCNER模型结构图
传统利用GloVe或Word2Vec进行词向量表示的方法,得到的词表示不能随上下文变化,不能解决一词多义的问题,而预训练语言模型在一定程度上解决了这个问题。2018年由Devlin J 等人[3]提出的BERT模型,在11种不同的自然语言处理任务上都取得了良好的效果,被认为是NLP领域里程碑式的进步。
模型初始输入为句子集合S={s1,s2,…,sm},sm表示第m个句子,其中,m∈M;句子s可以表示成字符的集合s={w1,w2,…,wN},wn表示句子中第n个字符,其中,n∈N。BERT输入向量En(n∈N)表示如图3所示,由字嵌入向量、分段嵌入向量、位置编码向量组合而成。字嵌入向量是每个字符wn根据BERT嵌入矩阵查找对应的向量表示,[CLS]、[SEP]分别标识句子的开头和结尾;BERT可以用句子对的形式进行训练,使用分段嵌入向量标识句子对编号,命名实体识别任务属于序列标注任务,输入为一个句子,分段嵌入向量统一标识为句子A;在位置编码向量中,BERT使用了经过学习的位置编码来标识每个单词的位置信息。整个BERT进行向量矩阵转化的过程可以表示为式(1)。
图3 BERT模型结构图
X=BERT(E,θbert)
(1)
其中,E为模型输入的向量矩阵集合,X为模型输出的BERT向量矩阵,X∈N×dbert,θbert为BERT模型相关参数。
法律文书由于其领域的特殊性,行文比较规范。传统的LSTM[24]模型能够对输入进行序列建模,但无法学习到输入的句法信息。Shen等人[4]提出的有序神经长短时记忆网络(Ordered Neurons LSTM)是一种RNN的高阶变种,可以无监督地学习到模型输入的结构信息和句法信息。
ON-LSTM将自然语言中的语法信息看作是跨度不一的层级结构。在中文句子中,字被认为是最低层级的结构,词次之,再上面是词组、短语等。结构层级越高,颗粒度越粗,在句子中的跨度就越大。ON-LSTM通过将内部神经元进行分组更新,更高层的组信息能够传得更远、跨度更大,更低层的组跨度更小,从而使模型在训练的过程中自然地学习到层级结构。双向ON-LSTM的隐藏层状态h可以通过以下公式描述:
考虑到标签彼此之间的依赖关系,在模型的顶层引入CRF层,以特征编码层输出的h作为CRF层的输入来学习标签路径的概率分布。对于给定输入s={x1,x2,…,xN},其标签序列的概率y={l1,l2,…,lN}如式(5)所示。
(5)
(6)
训练时利用梯度反向传播方法来最小化损失函数。
使用精确率(P)、召回率(R)和F1值作为法律文本命名实体识别的评价指标,精确率、召回率、F1值的计算如式(7)~式(9)所示。
其中,correct表示正确预测的标签个数,predict_num表示预测的标签总数,P表示精确率,true_num表示实际正确的标签总数,R表示召回率。由于实验样本类别不平衡,实验中采用微平均以反映实体整体识别情况。
所有实验采用的环境如表2所示。
表2 实验环境
实验所使用的词向量,是由Zhang等人[2]基于Giga-Word中文语料训练的词向量。最大序列长度设为300,LSTM_dim设为300,初始learning_rate设为3e-5,train_batch_size设为16,drop_out_rate 设为 0.5,clip设 为 5。BERT模型经实验对比后,选择了更适用于本任务的哈工大讯飞联合实验室提供的RoBERTa-wwm-ext(4)https://github.com/ymcui/Chinese-BERT-wwm模型。
模型识别性能表3所示是各个模型对法律文本命名实体识别的结果。本文模型的F1值比基线BiLSTM-CRF和Lattice LSTM分别高出11.42%和7.8%。这表明BERT预训练模型词向量较Word2Vec训练的静态词向量,在命名实体识别性能上有较大提升。
表3 不同模型命名实体识别结果
为了验证特征提取层的作用,选取BiLSTM和BiGRU进行对比实验,结果如表3所示。实验结果表明,BERT能够较为充分地学习到上下文语义信息,加入常规RNN结构反而会使模型性能下降,ON-LSTM结构会在一定程度上为模型补充数据的层级和语法信息,使得准确率和召回率均有所提升。
预训练语言模型对模型的影响为了验证各类BERT模型的性能,我们在BERT-CRF模型结构上,选取BERT-large-zh(5)https://github.com/google-research/bert,Albert-large-zh(6)https://github.com/brightmart/albert_zh,清华大学利用2 654万篇民事文书训练的BERT-ms和利用663万刑事文书训练的BERT-xs(7)https://github.com/lichunnan/OpenCLaP以及RoBERTa-wwm-ext等模型进行对比实验,结果如表4所示。实验结果显示,利用法律文书训练的BERT模型优于利用通用语料的BERT模型,刑事文书BERT优于民事文书BERT(本文盗窃罪为刑事案件),而RoBERTa-wwm-ext由于其训练数据量和MASK方式,性能优于法律文本BERT模型。由于计算资源所限,本文没有利用法律文本训练BERT模型,仅选取已开源的BERT模型进行实验。
表4 预训练模型命名实体识别性能
案例分析参照文献[9]案例分析的形式,以下列举主要模型的具体识别结果,各实体以不同的下划线进行标记,**代表文字:
时 间:*****地 点:*****
犯罪嫌疑人:*****受害人:*****
被盗物品:*****其他物品:*****
物品价值:*****
Lattice LSTM:2018年8月7日凌晨4时至6时许,被告人石某甲伙同梁某某窜至**市**区**街道**村居住出租住房旅馆式管理店门前,窃走被害人唐某甲停放在门前的白色助力车一辆(价值人民币181元),盗窃得手后,被告人罗某某驾驶自己的摩托车、被告人梁某某驾驶盗窃来的电瓶车逃离现场。
BERT-CRF:2018年8月7日凌晨4时至6时许,被告人石某甲伙同梁某某窜至**市**区**街道**村居住出租住房旅馆式管理店门前,窃走被害人唐某甲停放在门前的白色助力车一辆(价值人民币181元),盗窃得手后,被告人罗某某驾驶自己的摩托车、被告人梁某某驾驶盗窃来的电瓶车逃离现场。
BERT-ON-LSTM-CRF:2018年8月7日凌晨4时至6时许,被告人石某甲伙同梁某某窜至**市**区**街道**村居住出租住房旅馆式管理店门前,窃走被害人唐某甲停放在门前的白色助力车一辆(价值人民币181元),盗窃得手后,被告人罗某某驾驶自己的摩托车、被告人梁某某驾驶盗窃来的电瓶车逃离现场。
从模型具体的识别结果看,法律文本中地点和时间多为描述复杂的长实体,Lattice LSTM模型虽然使用了字加词的方案,但仍存在未登录词的问题,相比之下使用BERT的模型较好地解决未登录词的问题,边界划分更为准确。BOCNER由于可以在一定程度上学习到句子的结构信息,可以准确识别出“石某甲伙同梁某某”和“罗某某驾驶自己的摩托车”中的实体。
错误分析如表5所示为BOCNER对各类实体识别的结果。
表5 各类实体识别结果
“相关人”、“盗窃获利”预测准确率偏低,主要是样本占比较少,模型无法充分学习到这两类实体的特征,易与相关实体混淆,经统计发现,“盗窃获利”近50%被识别为“物品价值”,“相关人”近30%被识别为“受害人”。
“地点”和“机构”准确率偏低,主要原因在于机构名中很多存在人名、地名嵌套、缩略词、歧义等干扰信息,如表6例1、例2所示,分别为地名嵌套人名和机构名称嵌套地名。
“其他物品”类实体准确率偏低,是因为其品类繁多,在行文中缺乏特征句式,例如,“作案工具”类实体有“使用…撬开”、“拿..划开”等句式,“被盗物品”类实体有“盗窃…”、“偷走…”等句式。因此与地点状语混淆的情况下容易预测错误,如表6例3所示,“聚兵楼收银台的抽屉”在句子中是表示位置的状语,但模型误判其为地点实体。
此外因为模型是以句子作为输入,但法律文书的特点是上下文联系紧密,部分实体会因缺乏上下文信息导致识别错误,表6例4中,“李**”的身份在句子1中明确为犯罪嫌疑人,但是在句2中“犯罪嫌疑人”字样被省略,模型将其识别成“相关人”。
表6 错误分析
本文针对传统词向量表示无法表征字的多义性问题,提出了BERT-ON-LSTM-CRF 模型。BERT 预训练语言模型比传统的词向量表示更能表征语句特征,该模型优于目前性能领先的 Lattice-LSTM 模型,提升了司法领域中文命名实体识别的效果。该模型存在的问题是难以解决实体嵌套问题,当存在上下文信息不足时,容易产生错误;难以解决数据不平衡问题。下一步的研究方向为两个方面: 一是如何解决实体中数据不平衡问题;二是为模型引入更多上下文信息,进行文档级法律文本命名实体识别研究。