張曉芳,歐 睿,饒攀軍,鄭 元,張 雷,陳 科,周郴蓮,王浩暢,趙鐵軍
(1 太極計(jì)算機(jī)股份有限公司,北京 100083;2 東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318;3 哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150001)
合同是民事主體之間設(shè)立、變更、終止民事法律關(guān)系的協(xié)議,依法成立的合同,受法律保護(hù)。近年來,經(jīng)濟(jì)活動(dòng)持續(xù)增長(zhǎng),各企業(yè)需要審查的合同數(shù)量逐年上升,合同審查陷入“數(shù)多人少”的困境??茖W(xué)有效地提高合同的審查速度及準(zhǔn)確率已然成為一個(gè)亟待解決的問題。
隨著自然語言處理技術(shù)的發(fā)展,越來越多的研究者開始關(guān)注特定領(lǐng)域的任務(wù)。其中,文本分類(Text Classification,TC)任務(wù)對(duì)數(shù)據(jù)的管理至關(guān)重要,是信息檢索和文本挖掘的基礎(chǔ),利用自然語言處理、數(shù)據(jù)挖掘和深度學(xué)習(xí)等技術(shù),對(duì)各類文本內(nèi)容進(jìn)行自動(dòng)分類。信息抽?。↖nformation Extraction,IE)是從海量的文本、圖片和視頻等數(shù)據(jù)中自動(dòng)抽取用戶感興趣的結(jié)構(gòu)化信息的過程。
本文研究合同文本的分類和要素抽取,需要解決3 個(gè)問題:
(1)針對(duì)合同類型和要素的劃分不合理的問題,研究描述合同體系以及知識(shí)點(diǎn)之間的關(guān)聯(lián)關(guān)系的方法。
(2)根據(jù)合同文本的特點(diǎn)訓(xùn)練適合的分類和要素抽取的方法。
(3)確保合同要素抽取的準(zhǔn)確率,解決合同文本訓(xùn)練數(shù)據(jù)少的問題。
針對(duì)上述合同文本中存在的問題,結(jié)合自然語言處理技術(shù),本文提出了基于深度學(xué)習(xí)的合同分類及要素抽取模型,通過人工標(biāo)注構(gòu)建合同文本語料庫。為了能夠及時(shí)、有效地對(duì)合同文本進(jìn)行分類,提出了改進(jìn)的Bert-BiLSTM+Attention 深度學(xué)習(xí)模型;針對(duì)合同文本存在的信息難以抽取問題,提出了基于BiLSTM-CRF 深度學(xué)習(xí)模型獲取準(zhǔn)確的合同要素信息。實(shí)驗(yàn)表明,這2 個(gè)模型在合同分類與合同要素抽取中取得了較好的效果。
本文原始語料的收集是以《民法典》為基準(zhǔn)、常用合同類型為中心,合同數(shù)據(jù)來源于企業(yè)已過濾掉隱私信息的真實(shí)合同,主要包括買賣、建設(shè)工程、技術(shù)服務(wù)、租賃、承攬、運(yùn)輸、委托、借款這8 類合同。在人工采集合同文檔時(shí),會(huì)先去除合同文本中空白數(shù)據(jù)與不符合要求的合同數(shù)據(jù),確保原始語料的質(zhì)量。標(biāo)注前,對(duì)合同文本原始數(shù)據(jù)進(jìn)行預(yù)處理,主要是轉(zhuǎn)換原始合同數(shù)據(jù)的格式,將其保存為json 格式的.txt 文檔。
本文合同文本標(biāo)注,遵循3 個(gè)原則:
(1)根據(jù)不同類型合同要素的特點(diǎn),進(jìn)行合同數(shù)據(jù)預(yù)標(biāo)注,同時(shí)匯總整理合同要素標(biāo)注過程中遇到的問題,如標(biāo)注要素在文本中出現(xiàn)多次、標(biāo)注要素不準(zhǔn)確、標(biāo)注錯(cuò)誤等,給出相應(yīng)的解決方案,再進(jìn)行正式標(biāo)注。
(2)對(duì)于有爭(zhēng)議的問題,參考《民法典》細(xì)則或者與領(lǐng)域?qū)<疑套h后解決。
(3)合同標(biāo)注數(shù)據(jù)一致性需達(dá)到了90%以上。
本文采用了多輪標(biāo)注的方法,可以獲取大規(guī)模合同文本標(biāo)注數(shù)據(jù),研究展開的標(biāo)注過程具體如下:
(1)第一輪標(biāo)注。標(biāo)注人員平均分組,每組的標(biāo)注人員分別單獨(dú)標(biāo)注同一份合同,對(duì)比每組標(biāo)注人員的標(biāo)注結(jié)果,對(duì)合同文本語料中存在標(biāo)注不一致的問題,根據(jù)專家意見及結(jié)合《民法典》進(jìn)行修正。
(2)第二輪標(biāo)注。根據(jù)第一輪的標(biāo)注結(jié)果,完善標(biāo)注方案后進(jìn)行第二輪標(biāo)注,每名標(biāo)注人員將會(huì)獨(dú)立標(biāo)注數(shù)據(jù),并對(duì)標(biāo)注后的數(shù)據(jù)進(jìn)行匯總。
(3)第三輪標(biāo)注。根據(jù)前兩輪標(biāo)注結(jié)果進(jìn)行方案完善,對(duì)不同類型的合同再次進(jìn)行標(biāo)注,糾正標(biāo)注不一致性的數(shù)據(jù)。
為了確保合同文本標(biāo)注數(shù)據(jù)的一致性,每一輪標(biāo)注都會(huì)對(duì)標(biāo)注人員重新進(jìn)行分組,保證標(biāo)注數(shù)據(jù)的準(zhǔn)確性。
文本分類是指按照一定的分類體系或者規(guī)則對(duì)文本實(shí)現(xiàn)自動(dòng)劃歸類別的過程。
合同文本的標(biāo)題可以較直觀地對(duì)合同文本進(jìn)行分類,但是在處理大批量的合同數(shù)據(jù)時(shí),借助分類模型可以加快分類速度,本文采用的是基于注意力機(jī)制(Attention Mechanisms,AM)的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bi -directional Long Short -Term Memory,BiLSTM)模型對(duì)文本標(biāo)題進(jìn)行分類,模型如圖1 所示。該模型主要由4 部分組成:
圖1 基于注意力機(jī)制的BiLSTM 模型Fig.1 BiLSTM model based on attention mechanism
(1)采用詞向量表示合同標(biāo)題。
(2)利用BiLSTM 模型獲取合同標(biāo)題的特征。
(3)引入AM 表示不同合同文本標(biāo)題特征的重要性。
(4)經(jīng)過池化后,將利用分類器進(jìn)行合同標(biāo)題分類。
采用BiLSTM 模型實(shí)現(xiàn)合同文本標(biāo)題分類,在訓(xùn)練階段將預(yù)定義的8 類合同文本標(biāo)題嵌入到模型中。首先,將合同文本的標(biāo)題進(jìn)行分詞處理,輸入層在詞向量中嵌入其維度,BiLSTM 層提取每個(gè)合同標(biāo)題的特征;拼接雙向的特征,將相應(yīng)單詞的特征作為輸出;在層對(duì)每個(gè)詞語進(jìn)行加權(quán)求和訓(xùn)練;輸出層使用全連接層,作為激活函數(shù),輸出的是合同標(biāo)題的分類結(jié)果。
合同標(biāo)題雖然可以較好地完成大部分的合同文本分類任務(wù),但也存在一些通過標(biāo)題分類無法確定其類型的合同文本,此時(shí)就需要利用合同文本內(nèi)容來輔助其分類。本文采用層次注意力網(wǎng)絡(luò)(Hierarchical Attention Networks,HAN),模型結(jié)構(gòu)如圖2 所示。由圖2 可知,該模型由詞序列編碼器、詞級(jí)Attention 層、句子序列編碼器和句子級(jí)Attention層組成。
圖2 HAN 模型結(jié)構(gòu)圖Fig.2 Structure diagram of HAN model
研究中,設(shè)一份合同由個(gè)句子組成,第s(∈[1,])個(gè)句子包含T個(gè)單詞。對(duì)此擬做剖析分述如下。
(1)在詞編碼器部分,已知句子詞序列w,∈[1,] 組成句子,句子中每個(gè)單詞的詞向量經(jīng)過詞嵌入矩陣W把詞轉(zhuǎn)換成詞向量,這里需用到的數(shù)學(xué)公式見式(1):
其中,w表示句子中的第個(gè)單詞,為句子的總長(zhǎng)度。
使用雙向門控循環(huán)單元(Gate Recurrent Unit,GRU)對(duì)詞嵌入后的句子進(jìn)行編碼,結(jié)合正反向的上下文信息,獲取隱藏層的輸出,經(jīng)過式(2)、式(3)的操作后,得到編碼向量h,h包括了w兩個(gè)方向的信息。式(2)、式(3)具體見如下:
(2)詞級(jí)Attention 部分。首先使用一個(gè)單層的感知機(jī),計(jì)算編碼向量h,得到句子中的第個(gè)單詞的隱層向量u,即:
其中,W表示權(quán)值矩陣,b表示偏置向量。
計(jì)算詞級(jí)上下文向量u的相似性,測(cè)量單詞在隱層向量u中的重要性;通過進(jìn)行標(biāo)準(zhǔn)化操作,得到歸一化權(quán)重矩陣α,α表示句子中第個(gè)詞的權(quán)重。該值可由如下公式計(jì)算求出:
另外,標(biāo)準(zhǔn)化時(shí),上下文向量u是隨機(jī)初始化的,同時(shí)在訓(xùn)練過程中也不斷改變。最終一個(gè)句子的表示就是權(quán)重α與編碼向量h的和,也就是s,計(jì)算過程如式(6):
需要指出的是,這里的維度與編碼向量一致。
(3)句子編碼器部分。連同句子級(jí)Attention,與上面提到的2 層本質(zhì)一樣,只是將單詞換成了句子,研究后推演可得:
其中,為句子的總長(zhǎng)度,為句子的總數(shù)。
計(jì)算編碼向量h,得到一個(gè)隱層向量u,求得的數(shù)學(xué)表述如下:
其中,W表示權(quán)值矩陣,b表示偏置向量。
(4)句子級(jí)Attention 部分。提出了一個(gè)句子級(jí)別的上下文向量,計(jì)算句級(jí)上下文向量的相似性,測(cè)量句子在隱層向量u里的重要性;通過進(jìn)行標(biāo)準(zhǔn)化操作,得到歸一化權(quán)重矩陣α,數(shù)學(xué)定義可表示為:
其中,u表示句級(jí)上下文向量。
在此基礎(chǔ)上,通過式(11)計(jì)算得到合同文本的特征向量:
合同要素抽取、即抽取合同文本中用戶需要的要素信息,如:合同編號(hào)、簽訂時(shí)間等。
對(duì)完成標(biāo)注的合同數(shù)據(jù)進(jìn)行預(yù)處理,獲取合同要素抽取數(shù)據(jù)集。首先,將標(biāo)注后的合同數(shù)據(jù)從標(biāo)注軟件中導(dǎo)出;其次,提取標(biāo)注要素的信息與合同原文,提取的要素信息中如存在20%未出現(xiàn)任何要素的語句,則將其刪除,同時(shí)定義合同要素詞典;最后,根據(jù)合同要素詞典將提取的標(biāo)注要素信息與經(jīng)過處理的合同原文融合,轉(zhuǎn)換成適用在要素提取任務(wù)的BIO 格式的.txt 文檔。其中,BIO 格式是將每個(gè)合同要素標(biāo)注為“B-X”、“I-X”或者“O”,這里的“B”表示實(shí)體的開頭位置,“I”表示實(shí)體的中間或結(jié)尾位置,“O”表示不屬于實(shí)體的標(biāo)簽。
在數(shù)據(jù)清洗中,需清除數(shù)據(jù)集中所有的空數(shù)據(jù);在不破壞文本要素完整性的前提下,每100 行處添加截?cái)鄻?biāo)志,避免輸入語句過長(zhǎng)。另外,不同類型的合同存在的要素信息有部分不一致,如“技術(shù)服務(wù)合同”中是出賣人和買受人,而“油工合同”則是發(fā)包方和承包方,這會(huì)影響抽取的效果。因此,本文需要對(duì)要素詞典的類型進(jìn)行部分刪減,重復(fù)上述步驟,得到BIO 格式的.txt 文檔。
本文針對(duì)合同要素抽取難以實(shí)現(xiàn)以及抽取效率不高等問題,提出了基于BiLSTM-CRF 的合同抽取深度學(xué)習(xí)模型,如圖3 所示。該合同要素抽取模型基于字符的序列標(biāo)注模型,由輸入特征層、BiLSTM 中間層、條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)輸出層這3 個(gè)部分組成。首先,把合同要素拆成單個(gè)的字,其中每個(gè)字都用拼接的特征向量表示;然后,使用BiLSTM 神經(jīng)網(wǎng)絡(luò)層對(duì)輸入的合同要素文本序列進(jìn)行建模;最后,利用CRF 輸出層生成對(duì)應(yīng)的類別標(biāo)簽序列。這里,對(duì)模型中的各個(gè)組成部分?jǐn)M給出重點(diǎn)解析如下。
圖3 基于BiLSTM-CRF 的合同抽取深度學(xué)習(xí)模型Fig.3 Contract extraction deep learning model based on BiLSTM-CRF
(1)輸入特征層。本文將訓(xùn)練集文本看作是字的聚合,每個(gè)字在模型的輸入層由字向量(Char Embedding)與額外的特征向量(Additional Features)聯(lián)結(jié)而成。
(2)BiLSTM。LSTM 是具有記憶長(zhǎng)短期信息的能力的神經(jīng)網(wǎng)絡(luò),前向的LSTM 與后向的LSTM 結(jié)合成為BiLSTM 神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,可以更好地捕捉雙向的語義依賴。由圖4 可知,對(duì)LSTM 的計(jì)算過程可做分析表述如下。
圖4 BiLSTM 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of BiLSTM neural network
設(shè)時(shí)刻的遺忘門、輸入門和輸出門的輸出為f、i、o,由此計(jì)算得到的數(shù)學(xué)公式為:
其中,x是時(shí)刻的輸入向量;h是時(shí)刻的隱藏層的向量;表示使用的激活函數(shù)是函數(shù);W、W、W分別為時(shí)刻的遺忘門、輸入門和輸出門對(duì)應(yīng)的權(quán)重矩陣;b、b、b分別為時(shí)刻的遺忘門、輸入門和輸出門對(duì)應(yīng)的偏置向量。
其中,W是權(quán)重矩陣,b是偏置向量。
緊接著,計(jì)算長(zhǎng)記憶C與短記憶h的值,C是時(shí)刻的單元狀態(tài),h是隱節(jié)點(diǎn)的輸出。具體數(shù)學(xué)公式可寫為:
其中,f、o分別是時(shí)刻的遺忘門、輸出門的輸出。
輸入序列信息是BiLSTM 循環(huán)神經(jīng)網(wǎng)絡(luò)提取的合同要素,結(jié)合前后向的LSTM 輸出,傳進(jìn)CRF 層。
(3)CRF 模型輸出層,得到合同文本的要素抽取結(jié)果。在BiLSTM-CRF 模型中,首先定義了句子輸出標(biāo)簽序列的分值(,),這里推得的數(shù)學(xué)運(yùn)算式可寫為:
其中,是轉(zhuǎn)移矩陣,表示將所有狀態(tài)向下一步轉(zhuǎn)移的概率;是LSTM 輸出的矩陣。
利用維特比算法推斷合同要素標(biāo)簽,搜索具有最高條件概率的合同要素標(biāo)簽序列,計(jì)算公式的數(shù)學(xué)表述如下:
在輸入層和BiLSTM 層中間,使用一個(gè)正則化,使得模型中神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)隨機(jī)失活,在訓(xùn)練時(shí)不會(huì)出現(xiàn)某一個(gè)節(jié)點(diǎn)權(quán)重過大的情形。
本文在合同文本分類和要素抽取的任務(wù)中,采用準(zhǔn)確率()、召回率()和值作為評(píng)價(jià)指標(biāo),各指標(biāo)的數(shù)學(xué)運(yùn)算公式見如下:
其中,為實(shí)際值和預(yù)測(cè)值均為正值時(shí)數(shù)據(jù)的數(shù)量;為實(shí)際值為負(fù)值、預(yù)測(cè)值為正值時(shí)的數(shù)據(jù)數(shù)量;為實(shí)際值為正值、預(yù)測(cè)值為負(fù)值時(shí)數(shù)據(jù)的數(shù)量。
在合同分類中,選用合同文本的中文文本數(shù)據(jù)集。從合同數(shù)據(jù)中抽取了2 000 條標(biāo)題和2 000 條文本數(shù)據(jù),其中的1 500 條作為訓(xùn)練集,500 條作為驗(yàn)證集。合同文本包括8 個(gè)類別,即買賣、建設(shè)、服務(wù)、租賃、承攬、運(yùn)輸、委托、借款。
神經(jīng)網(wǎng)絡(luò)模型取得良好性能的關(guān)鍵是選擇合適的超參數(shù)。合同分類模型參數(shù)設(shè)置:層數(shù)為30 層、詞向量維度為768 維、的值為0.5 和學(xué)習(xí)衰減率為0.001。
4.2.1 標(biāo)題分類
為了驗(yàn)證本文提出的基于注意力機(jī)制的BiLSTM 模型用于合同標(biāo)題分類中的有效性,將本文模 型 BiLSTM+Attention 與 TextRNN、LSTM 和BiLSTM 模型進(jìn)行合同標(biāo)題分類的對(duì)比實(shí)驗(yàn),其實(shí)驗(yàn)結(jié)果見表1。
表1 標(biāo)題分類不同模型的實(shí)驗(yàn)結(jié)果Tab.1 Titles test results of different models %
由表1 可知,在合同標(biāo)題分類中,本文模型的召回率和值比其他3 個(gè)對(duì)比模型高。TextRNN 模型的準(zhǔn)確率、召回率和值分別比本文模型低2.37%、8.13%和5.67%;LSTM 模型準(zhǔn)確率、召回率和值比本文模型低1.19%、6.23%和3.76%;BiLSTM 模型準(zhǔn)確率比本文模型高0.83%,但召回率和值卻比本文模型低1.29%和0.47%。綜合來看,在標(biāo)題分類性能對(duì)比中,本文提出的BiLSTM+Attention 模型標(biāo)題分類效果最好。
4.2.2 文本分類
將本文模型BiLSTM+HAN 與TextRNN、CNN 和RCNN 模型進(jìn)行文本分類的實(shí)驗(yàn),驗(yàn)證該模型用于文本分類的有效性,實(shí)驗(yàn)結(jié)果見表2。
表2 文本分類不同模型的實(shí)驗(yàn)結(jié)果Tab.2 Text test results of different models %
由表2 可知,BiLSTM+HAN 模型的要素抽取值達(dá)到了90.76%,且在準(zhǔn)確率和召回率上的值都達(dá)到了最佳。本文模型比TextRNN 模型準(zhǔn)確率、召回率和值分別提高了6.18%、3.54%和5.03%;比CNN 準(zhǔn)確率、召回率和值分別提高了0.73%、5.28%和4.17%;雖比RCNN 準(zhǔn)確率低0.61%,但召回率和值卻提高了5.26%和2.42%。本文提出的BiLSTM+HAN 模型在合同文本分類上效果明顯優(yōu)于其他模型。
合同要素抽取模型中各參數(shù)設(shè)置如下:學(xué)習(xí)率為0.015、隱藏層大小為200、的值為0.5、層數(shù)為32 層和學(xué)習(xí)衰減率為0.05。
為了驗(yàn)證本文提出的基于BiLSTM-CRF 的合同抽取模型的有效性,將本文模型與CRF、LSTM、Flat 和Lattice LSTM 模型進(jìn)行合同要素抽取的對(duì)比實(shí)驗(yàn),抽取效果見表3。
表3 不同模型的合同要素抽取效果Tab.3 Contract elements extraction effect of different models%
由表4 可知,相較于其他要素抽取模型,本文提出的BiLSTM-CRF 模型的抽取效果最好。與判別式模型CRF 相比,本文模型的準(zhǔn)確率、召回率和值分別提高了2.89%、22.04%和11.8%;與Lattice LSTM 模型相比,本文模型的準(zhǔn)確率、召回率和值分別提高了0.83%、1.32%和1.13%。綜合來看,本文提出的基于BiLSTM-CRF 的合同抽取模型在進(jìn)行合同要素抽取的任務(wù)上,明顯優(yōu)于其他模型。
本文根據(jù)《民法典》、合同文本及要素的特點(diǎn),構(gòu)建了合同文本的語料庫,提出了基于深度學(xué)習(xí)的合同分類及要素抽取模型,實(shí)現(xiàn)了對(duì)合同文本標(biāo)題分類、文本分類和要素抽取,并實(shí)驗(yàn)驗(yàn)證了本文提出模型的有效性。
在合同文本分類中從標(biāo)題分類與文本分類兩方面展開研究,提出了一種基于注意力機(jī)制的BiLSTM模型,采用詞向量表示合同標(biāo)題,利用BiLSTM 模型獲取合同標(biāo)題的特征,實(shí)現(xiàn)了對(duì)合同標(biāo)題的分類任務(wù);提出了一種基于改進(jìn)的HAN 深度學(xué)習(xí)模型,經(jīng)過詞序列編碼器、詞級(jí)Attention 層、句子序列編碼器和句子級(jí)Attention 層實(shí)現(xiàn)了對(duì)合同文本分類。提出了一種基于改進(jìn)的HAN 深度學(xué)習(xí)模型,將合同要素拆成單個(gè)的字,使用包含前向和后向的BiLSTM神經(jīng)網(wǎng)絡(luò)層對(duì)輸入的合同要素文本序列進(jìn)行建模,利用CRF 層作為模型的輸出層生成對(duì)應(yīng)的類別標(biāo)簽序列,實(shí)現(xiàn)合同要素抽取,并實(shí)驗(yàn)證實(shí)了合同要素抽取模型的有效性。
在未來工作中,將嘗試實(shí)現(xiàn)更多不同類型合同分類和抽取任務(wù),進(jìn)一步提高合同文本分類與要素抽取的性能。