徐 惠,蘇 同,俞鵬飛,江全勝,朱咸軍2,,4*
(1.南京航空航天大學,江蘇 南京 210016;2.金陵科技學院,江蘇 南京 211169;3.東部戰(zhàn)區(qū)總醫(yī)院,江蘇 南京 210002;4.江蘇省信息分析工程研究中心,江蘇 南京 211169)
當前“互聯網+法律”的模式中,法律相關信息種類繁多,信息量大,加大了相關從業(yè)人員法律文書寫作的難度。法律文書是日常生活中一切涉及法律內容的文書,如:訴訟法律文書、合同、協議等。由一個案件到一個法律文書的生成,拋去法律文書本身固定的模板以外,文書內容信息主要表達的是案件信息。非從業(yè)人員撰寫的法律文書一般具有自然性、口語性,缺乏了法律化、規(guī)范化。因此,可以將自然語言轉化成規(guī)范法律文書的過程認為是一種“翻譯”的過程,是一個序列到另一個序列的問題,即序列模型(Seq2Seq)[1]。
LSTM(Long Short-Term Memory)[2]是一種特殊的循環(huán)神經網絡(Recurrent Neural Network,RNN)[2],它在訓練中會隨著訓練時間加長以及網絡層數增多,很容易出現梯度爆炸或者梯度消失的問題,導致無法處理較長序列數據,從而無法獲取長距離數據的信息,而LSTM能夠較好地解決長序列依賴問題;Encoder-Decoder[3]模型,即“編碼-解碼”模型,是一個主要解決Seq2Seq問題的框架;Attention模型[4]是Encoder-Decoder模型的優(yōu)化模型,打破在編解碼時都依賴于內部一個固定長度向量的限制,能夠更加準確地獲得模型的輸出。
本文將LSTM的Encoder-Decoder模型和Attention模型進行了綜合,實現了法律文書的自動生成。
在處理自然語言的任務中,一個案件中案情信息轉化成法律文書的處理過程分為兩個步驟:
第一,識別篩選出案件中的案情信息(如案件的原被告信息、過程、內容、訴求等)。
第二,案情信息規(guī)范化。法律文書的書寫具有嚴格的規(guī)范性,可以預先準備好對應法律文書類別的模板。
對一個普通案件性的描述語言進行特征提取、特征組合和規(guī)范化,并填充至法律文書的模板中。對于不同類型的案件描述,可能存在多個實體類別,產生的法律文書種類亦有所不同。
本文以婚姻類法律文書作為研究數據集,提出一種基于Encoder-Decoder模型和Attention模型的法律文書自動生成方法,并以婚姻糾紛類法律文書生成為例。
在自然語言敘述的一個法律案件中,不同人描述的習慣、方法、順序都是不唯一的,具有多樣性。這也就導致一個案件描述的機器可讀性很差,需要對其進行一些預處理操作,進一步精簡案件描述,便于找出其中的關鍵信息。
數據樣本中不可避免地會有一些停用詞(如:“的”“啊”等)。這些詞的存在,會使接下來的模型訓練和預測效果不佳,可以使用一個停用詞集來去除文本中的停用詞。
對于去除停用詞后的文本,重要信息之間的關系十分明顯。接下來要對其進行分詞操作,本文采用的是中文分詞組件“Jieba”庫。該組件有3種分詞模式:精確模式、全模式和搜索引擎模式。如:“結婚以后我花的錢裝修了房子”。停詞處理和分詞后“結婚”“以后”“我”“花錢”“裝修”“房子”。
詞性分析結果:[pair('結婚', 'v'), pair('以后', 'f'), pair('我', 'r'), pair('花錢', 'n'), pair('裝修', 'v'), pair('房子', 'n')]。全文本采用TF-IDF算法得到關鍵詞抽取結果['裝修', '花錢', '結婚', '房子']
分詞結束后,使用詞向量工具Word2vec[5]將詞語向量化,并將詞語、詞性及詞向量構成字典形成語料庫。
構建一個動態(tài)語料庫[6],在讀取新的文本數據時,重復以上分詞向量化以及詞性分析等操作;與原語料庫形成多個文本語料庫,并通過關鍵詞抽取各文本的詞匯特征向量,使用K-means算法對各文本的詞匯特征向量進行聚類處理[7],獲得多個文本的集合語料庫,使得語料庫可以不斷學習新的詞語,使文本生成效果更佳。
長短期記憶模型(LSTM)是一種特殊的遞歸神經網絡模型(RNN),可以較好地解決梯度彌散的問題。在學習序列數據的長期規(guī)律時,能很好地處理序列內部的長期依賴關系。在自然語言處理方面,用LSTM模型提取文本的語義語法信息,完成各種(如文本分類、序列標注、文本匹配、翻譯等)具體的任務。
Seq2Seq模型問題的特征是其輸入的是一個序列,輸出的也是一個序列,如:機器翻譯、自動問答系統等。法律文書的生成實際上也是一種序列到序列生成的Seq2Seq問題。本文探究的過程以上述數據預處理中的例子——“結婚 以后 我 花錢 裝修 房子”為例。
使用Encoder-Decoder(編碼-解碼)風格的神經網絡模型以及注意力(Attention)模型來解決該問題并比較生成效果。
在Encoder中將一個長度模糊的數據序列轉化成一個固定長度的數據向量,表達為原數據序列的語義向量;Decoder將這個語義向量解碼,產生一個長度可變的目標序列向量。而Encoder、Decoder的過程本質都是基于LSTM模型的,故整個模型的結構如圖1所示。
圖1 LSTM模型結構
參數含義如下:
{n1,n2,n3,n4,n5,n6}:分詞結果的案件信息詞向量輸入ni。
{h1,h2,h3,h4,h5,h6}:Encoder階段神經元在每個詞向量輸入后的隱藏層狀態(tài)向量hi。
{t1,t2,t3,t4,t5,t6}:Decoder階段神經元在每個預測詞向量輸出后的隱藏層狀態(tài)向量ti。
{m1,m2,m3,m4,m5,m6}:詞向量預測輸入mi。
S:Encoder階段結束后輸出的句子的語義向量,包含了句子的語義信息。
Go:Decoder階段的起始符號,表示開始執(zhí)行解碼操作。
Eos:Decoder階段的結束符號,表示已完成解碼。
算法過程如下:
如圖1所示的模型實現過程,首先把經過預處理的案件信息向量化得到的Word Embedding[8](詞嵌入)矩陣ni,作為輸入,依次傳入模型。在Encoder階段,每個狀態(tài)節(jié)點(圖中雖然有多個節(jié)點,其實只是同一個神經元每個時間點下的狀態(tài))中要經歷3個門操作來控制語義信息。
(1)遺忘門。該門決定放棄當前狀態(tài)節(jié)點中一些信息,讀取狀態(tài)節(jié)點的前一個狀態(tài)向量hi-1和ni,經過權重wf、偏移量bf以及sigmoid()函數,輸出一個數值在0到1之間的向量矩陣fi,即:
fi=sigmoid(wf·[hi-1,ni]+bf)
(2)輸入門。經過遺忘門,已經丟棄掉一些多余語義信息,此時通過輸入門需要經歷3步。
①決定狀態(tài)節(jié)點中的更新信息,通過權重Wg,偏移量bg以及sigmoid()函數來得到更新向量矩陣gi;
gi=sigmoid(wg·[hi-1,ni]+bg)
(3)輸出門。最后先要設置一個初始輸出,同樣用一個sigmoid()函數來獲取初始輸出向量矩陣oi;然后用一個tanh()函數縮放遺忘門和輸入門的信息向量ci,并與oi結合生成下一個狀態(tài)節(jié)點的初始狀態(tài)向量hi,同時也該狀態(tài)節(jié)點的輸出,即:
oi=sigmoid(wo·[hi-1,ni]+bo)
hi=oi*tanh(ci)
當Encoder階段所有詞向量的編碼完成后,可以設置一個全連接層把每個狀態(tài)的輸出壓縮成一個固定維度的語義向量S,也可以直接將最后一個狀態(tài)的輸出作為語義向量S。
將語義向量S輸入Decoder階段,即圖1中的右半部分。由于Encoder階 段和Decoder階段都是基于LSTM模型的,其主要算法過程是一致的;不同的是在Decoder階段,當語義向量S輸入時,需要一個觸發(fā)向量Go,即開始解碼的標志;在解碼結束時,需要一個終止向量Eos,即停止解碼的標志。
在解碼過程中的輸出向量mj,可以先用一個SoftMax()函數產生一個關于法律語料庫中的N個詞向量的概率分布p(mk|m p(mk|m mk=arg max[p(mk|m 最后輸出的{m1,m2,m3,m4,m5,m6}序列,根據語料庫轉化成{“婚后”,“原告”,“出資”,“裝修”,“房屋”}為本例的生成結果,即實現了由“結婚以后我花錢裝修房子”到“婚后原告出資裝修房屋”的法律文本轉化。 Attention模型實際上模擬的是人類的注意力行為,即人在觀察一件事物時的關注點是不同的。在自然語言處理中,每句話中信息的重要程度并不是均衡的,是有一定的權重區(qū)分的;通過對不同重要程度的詞附上不同的權重,可以表達出更加合理的語義向量。 Attention模型的結構如圖2所示。參數含義如下。 圖2 Attention模型 {x1,x2,x3,x4,x5,x6}:經過attention層處理后存在“注意力”的非固定長度的語義向量,在Decoder階段,可選擇性地挑選其子集進行解碼輸出; aij:Encoder階段中每一個隱藏層狀態(tài)向量hi的權重值。由于Attention模型是以Encoder-Decoder模型為基礎的,其編碼解碼的過程類似,主要添加了一個attention層,來分散注意力。 其attention層的算法過程如下。 在Encoder的基礎上,對于隱藏層輸出的每一個狀態(tài)向量hi乘一個權重aij,求其加權平均,作為新的一個語義編碼向量,即一個attention層的輸出向量xi: 其中權重aij的計算需要Decoder階段的隱藏層向量tj反饋,先用一個評分函數score(),來評價Encoder階段hi和Decoder階段tj的效果,記為eij,然后計算該評分與總評分中的比率就是該hi的權重,即: eij=score(hi,tj) SoftMax()函數可以產生一個關于之前制作的法律語料庫中N個詞的概率分布,其概率之和為1,即可在Decoder階段每個狀態(tài)向量輸出時,預測出概率較高的轉義詞向量{mk},接下來輸出預測詞向量的過程參照Encoder-Decoder模型,最后同樣能夠產生語義類似的結果。 本文采用來自某法律案例網站的10 000條真實案件數據集,將數據集分為4個類別,即交通糾紛、債務糾紛、財產糾紛和婚姻糾紛。對數據進行清洗得到數據內容包括案件類型、原被告信息、案件描述和申訴請求。然后,對數據進一步去停用詞、分詞、人工標注等預處理工作。 本文實驗的訓練過程和預測過程的Encoder-Decoder模型(表格中簡寫為ED)和Attention模型,是使用基于Python語言的TensorFlow庫構建的。在模型的訓練過程中,進行了實驗1:比較兩種模型的訓練效果(誤差函數LOSS);LOSS函數是通過將目標序列(target)作為輸入傳給Decoder端LSTM的每個階段,做前一階段預測輸出和目標傳入的差值產生的;通過調整設置的超參以獲得近似的最優(yōu)解,超參分別為:模型訓練的學習率(LR_RATE)、向量元素的保留率(KEEP_PROB),實驗結果數據如表1所示。 表1 2類模型下的訓練效果 根據實驗結果發(fā)現,學習率(LR_RATE)過大,在算法優(yōu)化的前期會加速學習,使得模型更容易接近局部或全局最優(yōu)解。但是在后期會有較大波動,甚至出現損失函數的值圍繞最小值徘徊,波動很大,始終難以達到最優(yōu)解;甚至在訓練“世代”(EPOCHS),即訓練的迭代次數比較大的時候,會產生梯度爆炸或者彌散;兩種模型分別在相同保留率以及學習率為1e-2,1e-3及1e-4下的誤差函數LOSS的變化曲線如圖3所示。 圖3 實驗對比 圖中的變化曲線顯示,可以引入學習率隨迭代次數的增加隨衰減的機制,即在模型訓練初期,會使用較大的學習率進行模型優(yōu)化,隨著迭代次數增加,學習率會逐漸進行減小,保證模型在訓練后期不會有太大的波動,從而更加接近最優(yōu)解。向量元素的保留率(KEEP_PROB),是各層向量元素的一個保留概率,當KEEP_PROB為0時,就意味著讓所有的神經元都失活,而KEEP_PROB為1時,就是全部保留。在語義豐富的一個案件的描述語句中,其隱藏層的數量較多,為了更大程度地使語義向量S保留更多信息以及解碼時減少語義缺少,同時由于數據集較大,防止過擬合,故可以將KEEP_PROB設置為一個0~1的小數,實驗1中分別設置了0.4,0.5,0.6的保留率,除在學習率為1e-2的情況下,Attention發(fā)生了誤差彌散直指梯度消失;其他情況下兩種模型均可以收斂于一個的LOSS值,該保留率對變化效果不明顯;但明顯可看出ttention模型的訓練效果要優(yōu)于Encoder-Decoder模型,誤差loss能夠更貼近最小值。 實驗2:比較兩種模型算法的生成效果;主要評價的是模型的預測效果。實驗2為生成效果設置了以下幾個指標: (1)實驗室測試效果。選取100份新的樣本數據作為測試用例,以模型預測輸出的結果和人工標注的結果對比,做一個相似度分析(包含語義是否完全表達、語句連貫性、規(guī)范性),最后得出一個加權平均值作為生成效果,評估結果如表2所示。 表2 實驗室測試效果 (2)實際用戶測試效果。用戶分為兩類,普通大學生和職業(yè)律師,獲取他們的采納率,后臺隨機抽樣調查,取平均結果作為生成效果。評估結果如表3所示。 表3 實際用戶測試效果 從實驗1—2結果數據來看,本文所提及的兩種模型Encoder-Decoder模型和Attention模型,在法律文書生成訓練過程的實驗1中,Attention模型在整體上的收斂效果是優(yōu)于Encoder-Decoder模型的,對于長文本的法律文書信息的處理具有更佳優(yōu)越的效果;在預測生成法律文書評估的實驗2中,不論是從實驗室測試結果還是用戶測試結果來看,對于法律文書的規(guī)范合理性,Attention模型的預測效果也是較好于Encoder-Decoder模型的。故Attention模型,在本實驗中法律文書的生成準確性更佳,更加符合原法律案件,初步滿足了一般用戶對法律文書的需求。 本文提出的數據預處理方法和基于LSTM的兩種模型來解決由案件信息到法律文書信息的過程問題,實現案件信息處理以高效獲取有用信息,代替人對信息進行分析和綜合。在實驗過程中,案件信息根據用戶描述的案件生成對應的案件詞向量序列,將案情要素,輸入模型進行學習,輸出為生成對應案情描述的法律文書。同時, 對信息源的理解和文書生成需要一定的背景知識,可從語料庫的學習中得到,并在實際應用中不斷地自學習新的知識。從實驗結果來看,Attention模型在訓練過程以及生成效果方面的部分指標,都較優(yōu)于普通的Encoder-Decoder模型,可以根據不同的案件完成對應法律文書的自動生成,且效果能使較大部分用戶滿意,可以使初步制作法律文書節(jié)省很多的時間和人力。3.3 Attention模型
4 實驗分析
4.1 數據來源
4.2 算法效率分析
4.3 算法生成效果評估分析
5 結語