李春楠,王 雷,孫媛媛,林鴻飛
(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 模型,提升了司法領域中文命名實體識別的效果。該模型存在的問題是難以解決實體嵌套問題,當存在上下文信息不足時,容易產生錯誤;難以解決數據不平衡問題。下一步的研究方向為兩個方面: 一是如何解決實體中數據不平衡問題;二是為模型引入更多上下文信息,進行文檔級法律文本命名實體識別研究。