汪瀛寰,薛 嬋,包先雨,吳共慶
1.合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,合肥230601
2.深圳市檢驗(yàn)檢疫科學(xué)研究院,廣東 深圳518045
屬性值對抽取屬于信息抽取領(lǐng)域,是指從文本中識別出實(shí)體的屬性和屬性值并對二者進(jìn)行關(guān)系匹配,它是文本結(jié)構(gòu)化處理的核心關(guān)鍵技術(shù)。給定一個文本,傳統(tǒng)屬性值對抽取的任務(wù)在于從中識別出屬性字符串xi和屬性值字符串xj,并根據(jù)一些規(guī)則將它們匹配成屬性值對(xi,xj),以將文本轉(zhuǎn)化成結(jié)構(gòu)化的形式,幫助用戶快速獲取語義信息。
屬性值對抽取成功地應(yīng)用在醫(yī)學(xué)[1-2]、電子商務(wù)[3-5]等領(lǐng)域。屬性值對抽取是推理應(yīng)用的基礎(chǔ),如醫(yī)學(xué)上的診斷解釋[6-7]和智能化療效分析[8],又如電子商務(wù)中常見的商品推薦系統(tǒng)[9-10]。此外,屬性值對抽取也是知識庫構(gòu)建的基礎(chǔ)[11-12]。然而,這些成功應(yīng)用中所涉及的數(shù)據(jù)大都是短文本。
隨著Web技術(shù)的發(fā)展,網(wǎng)絡(luò)上出現(xiàn)大量的長文本數(shù)據(jù)。長文本中包含較多的冗余信息,這些冗余信息在幫助解釋說明的同時,帶來的是閱讀效率降低。本文提出通過抽取屬性值對完成長文本的結(jié)構(gòu)化處理,以快速捕獲核心內(nèi)容。然而,冗余信息的存在造成傳統(tǒng)屬性值對抽取方法效率低下。此外,傳統(tǒng)屬性值對抽取方法僅限于抽取字符串屬性,難以抽取二元語義屬性。這里的字符串屬性是指屬性或?qū)傩灾狄宰址问酱嬖谟谖谋局械膶傩?,二元語義屬性是指屬性值為“是”或“否”的屬性。
為此,引入觸發(fā)詞的概念,本文的觸發(fā)詞是指出現(xiàn)在描述屬性句子中的關(guān)鍵詞。反之,如果句子中不包含觸發(fā)詞,則其不可能描述屬性信息。將含有觸發(fā)詞的句子定義為候選信息語句,將描述屬性的句子定義為(真實(shí))信息語句。因此,本文屬性值對抽取主要包括兩個任務(wù)。
(1)觸發(fā)詞識別:識別觸發(fā)詞,判定候選信息語句是否為(真實(shí))信息語句。
(2)屬性-值識別:從(真實(shí))信息語句中識別出屬性和屬性值。
對于二元語義屬性,只需要確定文本中存在信息語句即可確定屬性值為“是”,故抽取任務(wù)只包括任務(wù)(1)。對于字符串屬性,需要繼續(xù)從信息語句中識別字符串屬性和屬性值,故抽取任務(wù)包括任務(wù)(1)和(2)。若將任務(wù)(1)和(2)看成順序的過程,則(1)中出現(xiàn)的錯誤會延續(xù)至(2),致使觸發(fā)詞識別的效果決定了字符串屬性值對抽取的總效果。考慮觸發(fā)詞、字符串屬性和屬性值在信息語句中的共現(xiàn)性,本文將三者的識別過程看作序列標(biāo)注任務(wù),基于條件隨機(jī)場(Condition Random Field,CRF)建立字符串屬性的聯(lián)合標(biāo)記模型。本文的主要貢獻(xiàn)如下:
(1)將觸發(fā)詞引入屬性值對的抽取方法中,考慮觸發(fā)詞、字符串屬性和屬性值間的相互依賴關(guān)系,基于CRF 建立觸發(fā)詞、字符串屬性和屬性值的聯(lián)合標(biāo)記模型,用于抽取長文本中的字符串屬性-值對。
(2)通過建立觸發(fā)詞識別模型判斷是否存在信息語句,以確定二元語義屬性的取值,用于抽取長文本中的二元語義屬性-值對。
(3)利用基于熵的特征排序方法挑選種子觸發(fā)詞,構(gòu)建初始觸發(fā)詞表;并利用模型每次標(biāo)注結(jié)果中新識別的觸發(fā)詞對觸發(fā)詞表進(jìn)行迭代擴(kuò)展。
這一部分,將分別介紹屬性值對抽取和觸發(fā)詞擴(kuò)展的相關(guān)工作。
屬性-值對抽取是指從文本中識別實(shí)體的屬性和屬性值并進(jìn)行關(guān)系匹配的過程,它是處理碎片化知識并將其結(jié)構(gòu)化的基礎(chǔ)。目前已有的屬性-值對抽取工作可以分為兩類:基于規(guī)則的方法和基于機(jī)器學(xué)習(xí)的方法。
基于詞匯-句法模式的抽取方法是典型的基于規(guī)則的方法。Raju 等[13]針對英文實(shí)體提出了“attribute of entity is value”的抽取模式。Bergsma 等[14]設(shè)計“my attribute is”的抽取規(guī)則,用于從社交媒體中抽取用戶的屬性-值對信息。Qiu 等人[15]根據(jù)Web 頁面中數(shù)據(jù)的半結(jié)構(gòu)化特征,提出“表格左列為屬性,剩下列的合并為屬性值”的抽取規(guī)則?;谝?guī)則的方法依賴領(lǐng)域?qū)<医⒁?guī)則表達(dá)式或要求數(shù)據(jù)以特定的結(jié)構(gòu)出現(xiàn),因此該方法缺乏兼容性和靈活性。
基于機(jī)器學(xué)習(xí)的方法是將屬性或?qū)傩灾悼闯擅麑?shí)體,將識別過程視為分類或標(biāo)注任務(wù)。文獻(xiàn)[16]采用BIO 標(biāo)簽(Beginning-Inside-Outside tagging)標(biāo)記訓(xùn)練集,并基于CRF 訓(xùn)練標(biāo)注模型,成功地從產(chǎn)品標(biāo)題中抽取了產(chǎn)品屬性值。文獻(xiàn)[1]利用CRF 標(biāo)注模型在已知屬性詞語的上下文中識別屬性值詞語。劉倩等[17]將全局特征引入屬性值的抽取問題中,通過捕獲屬性值邊界分布等全局信息提高屬性值的抽取精度。上述方法均在屬性已知的前提下進(jìn)行,未考慮從文本中直接抽取屬性。文獻(xiàn)[18]考慮屬性和屬性值的共現(xiàn)性,將屬性和屬性值的識別過程看作序列標(biāo)注任務(wù),訓(xùn)練序列標(biāo)注模型,直接從產(chǎn)品說明中抽取字符串屬性及屬性值。文獻(xiàn)[19]采用同樣的方法,結(jié)合用戶對產(chǎn)品的評價,抽取用戶感興趣的屬性。以上工作所涉及的數(shù)據(jù)均是短文本數(shù)據(jù)。對于長文本的數(shù)據(jù),文獻(xiàn)[2]先借助SVM(Sup‐port Vector Machine)模型從文本中區(qū)分描述屬性的語句和普通語句,然后利用CRF模型從描述屬性的語句中識別出屬性和屬性值。但該方法的不同屬性聚集在少數(shù)句子中,而長文本中不同屬性分布在不同句子中,因數(shù)據(jù)特征離散化,難以借助SVM 進(jìn)行區(qū)分。由于訓(xùn)練模型需要手工標(biāo)注大量數(shù)據(jù),文獻(xiàn)[20]利用主動學(xué)習(xí)降低手工標(biāo)注訓(xùn)練集的壓力,同時提出一種基于遞歸神經(jīng)網(wǎng)絡(luò)捕獲上下文及語義特征和基于CRF 模型進(jìn)行序列標(biāo)注的聯(lián)合模型。Shen 等[21]基于屬性和屬性值的共現(xiàn)性,將語料庫構(gòu)建成一個共現(xiàn)圖,借助領(lǐng)域知識庫對共現(xiàn)圖進(jìn)行迭代更新,同時抽取新的屬性和屬性值。這些工作為后續(xù)研究提供思路。
以上工作都是針對字符串屬性所做的研究,而對于二元語義屬性不具備抽取能力。本文將觸發(fā)詞引入屬性值對抽取方法中,通過匹配觸發(fā)詞獲取長文本中的候選信息語句,借助觸發(fā)詞識別來確定二元語義屬性的取值。此外,與傳統(tǒng)字符串屬性值對抽取方法相比,本文考慮觸發(fā)詞與字符串屬性和屬性值在信息語句中的共現(xiàn)性,構(gòu)建基于觸發(fā)詞、字符串屬性和屬性值的聯(lián)合標(biāo)注模型,借助觸發(fā)詞識別對屬性-值對識別的促進(jìn)作用,提高字符串屬性值對的抽取性能。
事實(shí)上,觸發(fā)詞是事件抽取中的概念,用來指示事件的發(fā)生。在事件觸發(fā)詞擴(kuò)展中,已有的工作大都利用預(yù)定義或自動聚類的同義詞集推測新的觸發(fā)詞。Chen和Ji[22]結(jié)合自舉框架,利用從英文事件系統(tǒng)中捕獲的額外信息來擴(kuò)展觸發(fā)詞。He 等[23]應(yīng)用“同義詞林”擴(kuò)展觸發(fā)詞。Li 等[24]結(jié)合中文詞語的組合語義提出一個用于識別新觸發(fā)詞的推理機(jī)制。這類擴(kuò)展方法并未考慮詞語所在上下文特征或者不同上下文中詞義的差異問題,因此引入很多偽觸發(fā)詞。
本文將觸發(fā)詞識別看作序列標(biāo)注任務(wù),引入觸發(fā)詞的上下文特征,建立序列標(biāo)注模型;并利用模型對真實(shí)數(shù)據(jù)集進(jìn)行標(biāo)注,由于模型的泛化能力可以識別到新觸發(fā)詞,以擴(kuò)展原始觸發(fā)詞。
針對長文本中存在的冗余信息和二元語義屬性,本文將觸發(fā)詞引入屬性值對抽取方法中,構(gòu)建觸發(fā)詞識別模型,并設(shè)計一種觸發(fā)詞與屬性值對的聯(lián)合抽取方法TAVPE。該方法不僅具備二元語義屬性值對的抽取能力,而且提高了傳統(tǒng)字符串屬性值對抽取方法的性能。該方法分為訓(xùn)練(TAVPE-Training)和抽?。═AVPEExtracting)兩個階段,如算法1和算法2所示。
算法1 TAVPE-Training
輸入:TrainTxtSets
輸出:TriggerTable,Models
1.TriggerTable←createTriggerTable();//觸發(fā)詞表Trigger-Table 結(jié)構(gòu)如(Attribute,Type,TriggerSet),其中Type 指屬性為“二元語義屬性”還是“字符串屬性”,TriggerSet初始化為空;
2.Models←?//記錄屬性和相應(yīng)的模型,形如(Attribute,Model)
3.InfoSens←manuallyLabelInfoSensbyAttributes(TrainTxt‐Sets);
4.InfoSenSets←classifybyAttribute(InfoSens)//InfoSenSets記錄屬性和信息語句集合的對應(yīng)關(guān)系,形如(Attribute,Info-SenSet)
5.for eachrow in InfoSenSets
6.Attribute←row.getAttribute();
7.InfoSenSet←row.getInfoSenSet();
8.TriggerSet←generateTriggers(InfoSenSet);
9.addToTriggerTable(Attribute,TriggerSet);//依據(jù)屬性將觸發(fā)詞集合加入觸發(fā)詞表中
10.model←buildModel(InfoSenSet);
11.addToModels(Attribute,model);
12.End for
13.return TriggerTable,Models
算法2 TAVPE-Extracting
輸入:TriggerTable,Models,TestTxt
輸出:AVPs
1.AVPs←?
2.CanInfoSenSets←?//記錄屬性和候選信息語句集合的對應(yīng)關(guān)系,形如(Attribute,CanInfoSenSet),
3.TrueInfoSenSets←?//記錄屬性和真實(shí)信息語句集合的對應(yīng)關(guān)系,形如(Attribute,TrueInfoSenSet)
4.SensSet←splitSentences(TestTxt);
5.for each sentence in SensSet
6.for each row in TriggerTable
7.if sentence contains word∈row.getTriggerSet()
8.addToCanInfoSenSets(row.getAttribute(),sentence);
9.End for
10.End for
11.for eachrow in CanInfoSenSets
12.CanInfoSenSet←row.getCanInfoSenSet();
13.if CanInfoSenSet≠?
14.Attribute←row.getAttribute();
15.preProcess(CanInfoSenSet)anduseModels.getModel(Attribute)to label it;
16.if(TriggerTable.getType(Attribute)==“二元語義屬性”)
17.addToTrueInfoSenSets(Attribute,標(biāo)注結(jié)果中包含“T”類標(biāo)簽的候選信息語句);
18.if(TriggerTable.getType(Attribute)==“字符串屬性”)
19.addToTrueInfoSenSets(Attribute,標(biāo)注結(jié)果中同時包含“T”、“A”和“V”類標(biāo)簽的候選信息語句);
20.End for
21.AVPs←extractAndExtension(TrueInfoSenSets,Trigger-Table);
22.return AVPs;
訓(xùn)練階段的目的在于獲取抽取階段所需的觸發(fā)詞表及模型。對于給定的訓(xùn)練文本集,首先以屬性為標(biāo)簽,手工標(biāo)注文本中的信息語句,并依據(jù)屬性對信息語句進(jìn)行分類,形成各屬性的信息語句集合;然后利用信息語句集合,結(jié)合基于熵的特征排序方法生成種子觸發(fā)詞,構(gòu)建初始觸發(fā)詞表,具體如3.1 節(jié)所述;接著對信息語句集合進(jìn)行預(yù)處理,并手工給預(yù)處理后的每個分塊一個標(biāo)簽,構(gòu)建各屬性的訓(xùn)練集,最后基于CRF 訓(xùn)練各屬性的序列標(biāo)注模型,具體如3.2節(jié)所述。
抽取階段的目的在于從給定的測試文本中抽取屬性值對集合。首先對給定的測試文本進(jìn)行分句處理,通過遍歷并匹配觸發(fā)詞表中的觸發(fā)詞,獲得各屬性的候選信息語句集合;然后對候選信息語句集合進(jìn)行預(yù)處理,并利用訓(xùn)練階段獲得的模型進(jìn)行標(biāo)注;挑選標(biāo)注結(jié)果中包含觸發(fā)詞標(biāo)簽的句子加入真實(shí)信息語句集合;基于啟發(fā)式規(guī)則從真實(shí)信息語句中抽取屬性值對,并利用真實(shí)信息語句中新識別的觸發(fā)詞擴(kuò)展初始觸發(fā)詞表,具體見3.3節(jié)所述。
本節(jié)對應(yīng)算法1中的generateTriggers函數(shù),本文選用文獻(xiàn)[25]中基于熵的特征排序方法幫助生成種子觸發(fā)詞。
令P(p1p2… pN)表示一個屬性的信息語句集合,考慮觸發(fā)詞中動詞所占比例較大,令W(w1w2…wM)表示所有出現(xiàn)在P 中的動詞集合,集合P 的熵定義如下:
其中,Si,j=-exp(α×Di,j)表示pi與pj間的相似度,Di,j表示pi與pj間的歐幾里德距離,α=-ln 0.5/Dˉ,表示集合P中所有信息語句的平均距離。
數(shù)據(jù)集的熵描述數(shù)據(jù)集的聚集程度,聚集程度越高,可分性越好,熵值越小。因此基于熵的特征排序方法基于一個假設(shè):如果一個特征提高數(shù)據(jù)可分性的程度越高,則該特征越重要。特征空間W 中每個詞語Wi的重要性由從特征空間中移除特征Wi后數(shù)據(jù)集的熵定義。如果移除某個特征后造成數(shù)據(jù)集的熵最大,則這個特征是最重要的。因此利用以下方式計算每個詞語的重要性:依次從特征空間W 中移除一個詞語,利用公式(1)計算此時數(shù)據(jù)集的熵。依據(jù)數(shù)據(jù)集的熵由大到小的順序?qū)λ瞥奶卣髟~語進(jìn)行排序,抽取排名靠前的三個詞語作為種子觸發(fā)詞。
本節(jié)對應(yīng)算法1 中的buildModel 函數(shù)。就二元語義屬性而言,屬性值由是否存在描述二元語義屬性的信息語句決定,故屬性值對抽取任務(wù)的核心在于判斷由觸發(fā)詞定位的候選信息語句是否為真實(shí)信息語句。為此,本文將構(gòu)建觸發(fā)詞識別模型,用于從候選信息語句中識別觸發(fā)詞以確定真實(shí)信息語句??紤]到觸發(fā)詞的上下文特征對于觸發(fā)詞識別具有促進(jìn)作用,可以將觸發(fā)詞識別看作序列標(biāo)注問題。就字符串屬性而言,屬性值對抽取任務(wù)包括觸發(fā)詞識別和屬性-值識別。因觸發(fā)詞、字符串屬性和屬性值在信息語句中的共現(xiàn)性,三者互為局部上下文,本文將從信息語句中同時識別三者的過程看作序列標(biāo)注問題。
CRF 是判別式概率模型,常用于解決序列標(biāo)注問題。當(dāng)給定輸入節(jié)點(diǎn)的值時,通過計算并比較輸出節(jié)點(diǎn)值的條件概率,確定最終的輸出值。將輸入序列看作單元節(jié)點(diǎn)X,輸出序列表示成Y(Y1Y2…Yn),即構(gòu)成圖1所示為線性鏈條件隨機(jī)場。根據(jù)公式(2)挑選使條件概率P(Y|X)最大的Y 作為輸出序列。
其中,tk表示局部特征,sl表示節(jié)點(diǎn)特征,λk和θl分別表示兩類特征的權(quán)重。
圖1 線性鏈條件隨機(jī)場模型
本文基于CRF 構(gòu)建屬性的序列標(biāo)注模型。為獲取模型的訓(xùn)練集,首先對各屬性的信息語句集合進(jìn)行預(yù)處理,將觸發(fā)詞詞語標(biāo)記為T(Trigger)。對于二元語義屬性,將其他所有非觸發(fā)詞詞語標(biāo)記為N(Neither)。對于字符串屬性,創(chuàng)建BME 標(biāo)簽,即根據(jù)預(yù)處理后的分詞是詞語的開始、中間和結(jié)尾分別手工標(biāo)記為B(Begin-of)、M(Middle-of)和E(End-of),然后組合分詞的類別標(biāo)簽,包括屬性標(biāo)簽A(Attribute)和屬性值標(biāo)簽V(Value),故字符串屬性的標(biāo)簽包括{T,B-A,M-A,E-A,B-V,M-V,E-V,N}。利用訓(xùn)練集,對于二元語義屬性,基于CRF訓(xùn)練觸發(fā)詞的序列標(biāo)注模型,即觸發(fā)詞識別模型;對于字符串屬性,基于CRF 訓(xùn)練觸發(fā)詞、屬性和屬性值的聯(lián)合標(biāo)注模型。
本節(jié)對應(yīng)算法2 中的extractAndExtension 函數(shù),目的在于完成屬性值對的抽取及觸發(fā)詞的擴(kuò)展工作。對于二元語義屬性,若真實(shí)信息語句集合(TrueInfoSenSet)不為空,表示存在這類二元語義屬性的信息語句,那么該二元語義屬性的取值為“是”,否則取值為“否”。對字符串屬性,遍歷真實(shí)信息語句集合中的每個信息語句;從信息語句中抽取類別標(biāo)簽為“A”的詞語按照“B-A+M-A+E-A”組合成屬性,抽取類別標(biāo)簽為“V”的詞語按照“B-V+M-V+E-V”組合成屬性值,在以“,”或“;”為分隔的短句中完成屬性和屬性值的匹配。
此外,對于各屬性的信息語句中標(biāo)簽為“T”的詞語,如果該詞語不在觸發(fā)詞表該屬性對應(yīng)的觸發(fā)詞集合中,說明是新識別出的觸發(fā)詞,則將其加入觸發(fā)詞集合中,完成觸發(fā)詞表的一次迭代更新。并且每次利用TAVPE-Extracting 進(jìn)行屬性值對抽取時,都使用最新的觸發(fā)詞表。
CRF在訓(xùn)練階段借助向前-向后算法,其時間復(fù)雜度為O(TSL2)[26],在預(yù)測階段借助維特比算法,其時間復(fù)雜度為O(SL2)[27],其中S表示待標(biāo)記序列的長度,T表示待標(biāo)記序列每個位置上的特征數(shù),L表示類別標(biāo)簽種類數(shù)。
算法1 的時間復(fù)雜度依賴于generateTriggers 函數(shù)和buidlModel 函數(shù)。假定Num 為InfoSenSets 的行數(shù),N 為屬性所對應(yīng)的信息語句數(shù),M 為信息語句中的動詞個數(shù),如果將兩個句子的相似度計算看作一個單元,則generateTriggers 函 數(shù) 的 時 間 復(fù) 雜 度 為O(MN2);buidl‐Model函數(shù)建立觸發(fā)詞識別模型時L=2,建立聯(lián)合標(biāo)記模型時L=8,與N 相比數(shù)量級較小,可忽略不計。故算法1 的時間復(fù)雜度取決于generateTriggers 函數(shù),為O(NumMN2)。
在算法2 中,令Ntt表示TestTxt 的句子總數(shù),Col 表示TriggerTable 的行數(shù),C 表示其中的觸發(fā)詞總個數(shù),步驟5~10 是為了獲取CanInfoSenSets,其時間復(fù)雜度為O(NttC);CanInfoSenSets 的行數(shù)≤Col,CanInfoSenSet 的集合大小≤Ntt,步驟11~20 利用算法1 所訓(xùn)練的CRF 模型對CanInfoSenSets 中的每個CanInfoSenSet 集合進(jìn)行標(biāo)注,已知CRF 在預(yù)測階段的時間復(fù)雜度為O(SL2),故此時算法2的最壞時間復(fù)雜度為O(Col×Ntt×SL2)。
本文挑選法律領(lǐng)域的司法判決書作為實(shí)驗(yàn)語料。司法判決書是基于判決結(jié)果書寫的文書,其主要包括六個部分:基本信息、法律角色、起訴書、案情信息、證據(jù)和判決結(jié)果。其中案情信息富含豐富的法律知識,但也包含冗余信息,因此可以將司法判決書中的案情信息看作一類長文本數(shù)據(jù)。
考慮當(dāng)前不存在“司法判決書”的公開訓(xùn)練語料,本文利用爬蟲技術(shù)從“中國裁判文書網(wǎng)(http://wenshu.court.gov.cn)”爬取不同地區(qū)不同法院發(fā)布的與機(jī)動車事故相關(guān)的司法判決書。隨機(jī)選取1 200 篇,借助抽取規(guī)則對司法判決書進(jìn)行篇章拆分,保留其中的案情信息部分,形成本文的實(shí)驗(yàn)語料,并按照10∶2 的比例分成訓(xùn)練語料和測試語料。
利用1 200篇機(jī)動車事故司法判決書的“案情信息”和“證據(jù)”部分,分別對兩部分內(nèi)容中用于描述屬性的句子進(jìn)行統(tǒng)計。發(fā)現(xiàn)包含描述“投保類型”句子的“案情信息”占總量的89.5%,包含描述“主體責(zé)任”的占88.33%,包含描述“傷殘等級”的占40.75%,這3個屬性是機(jī)動車事故司法判決書案情信息部分最常出現(xiàn)的字符串屬性;包含描述“是否造成死亡”的占15.75%,是常見的二元語義屬性;此外,這4 個屬性的描述句在“證據(jù)”部分也較為常見,可以認(rèn)為這4 個屬性是法院對機(jī)動車事故類型案件進(jìn)行判決的重要依據(jù),因此本文以從案情信息中抽取這4 個屬性為例,驗(yàn)證所提方法的有效性。首先以屬性為標(biāo)簽手工標(biāo)記訓(xùn)練語料中的信息語句;抽取信息語句并依據(jù)屬性分類;利用基于熵的特征排序方法獲得觸發(fā)詞表,如表1 所示;借助哈工大的LTP 工具[28],對訓(xùn)練語料進(jìn)行分詞、詞性標(biāo)注和依存句法分析,得到特征向量集合;給每個特征向量手工標(biāo)記一個標(biāo)簽,形成本文的訓(xùn)練集。對于諸如“投保類型”、“主體責(zé)任”和“傷殘等級”等字符串屬性,標(biāo)簽包括:{T,B-A,M-A,E-A,B-V,M-V,E-V,N};對于“是否造成死亡”等二元語義屬性,標(biāo)簽包括:{T,N}。
表1 初始觸發(fā)詞表
本文利用“CRF++(https://taku910.github.io/crfpp/)”工具訓(xùn)練模型,該工具需要指定特征模板。從預(yù)處理獲得的訓(xùn)練集來看,現(xiàn)有的特征類型包括詞語、詞性和依存句法關(guān)系。根據(jù)分析這些特征類型,本文確定以下特征:(1)當(dāng)前詞語;(2)前后兩個詞語;(3)當(dāng)前詞語的詞性;(4)前后兩個詞語的詞性;(5)依存句法關(guān)系;(6)前后兩個詞語的依存句法關(guān)系。本文從一元特征開始,先后添加了特征(1)、(3)、(5);又將特征擴(kuò)展到多元,先后加入特征(2)、(4)、(6)。此外,本文嘗試了加入詞性聯(lián)合依存關(guān)系特征,構(gòu)成多元交叉特征模板。表2 為本文所設(shè)計的5個特征模板。
表2 特征模板
CRF++工具利用參數(shù)c來平衡擬合程度。為了提高序列標(biāo)注模型的標(biāo)注效果,本文基于不同模板,選擇不同的特征和參數(shù)進(jìn)行實(shí)驗(yàn),采用十倍交叉驗(yàn)證的方法,將訓(xùn)練集均分為10 份,選取一份作為驗(yàn)證集檢測模型性能。圖2 是實(shí)驗(yàn)結(jié)果,從圖中可以看出,當(dāng)選用模板5且參數(shù)c=1.5時錯誤率最低。
圖2 模板及參數(shù)調(diào)整
本文通過準(zhǔn)確率(Precision)、召回率(Recall)和綜合指標(biāo)F值(F-measure)評估系統(tǒng)的處理效果。
Nr是正確抽取的司法判決書案情信息文本數(shù),Nc是錯誤抽取的文本數(shù),Nnum是處理的案情信息文本總數(shù)。
為了凸顯觸發(fā)詞和聯(lián)合標(biāo)記模型的貢獻(xiàn)性,本文設(shè)計了兩組對比實(shí)驗(yàn)。
對比實(shí)驗(yàn)1(basicCRF):不使用觸發(fā)詞,針對字符串屬性,訓(xùn)練基于屬性和屬性值的序列標(biāo)注模型,直接利用模型對案情信息文本進(jìn)行標(biāo)注。這類方法對二元語義屬性不具備抽取能力。
對比實(shí)驗(yàn)2(Trigger+CRF):將觸發(fā)詞識別和屬性值對識別看作兩個順序的過程。針對字符串屬性,分別訓(xùn)練觸發(fā)詞識別模型和基于屬性和屬性值的序列標(biāo)注模型。借助觸發(fā)詞表定位文本中的候選信息語句后,利用觸發(fā)詞識別模型標(biāo)記候選信息語句,從中識別真實(shí)信息語句;再利用序列標(biāo)注模型對真實(shí)信息語句進(jìn)行標(biāo)注。針對二元語義屬性,同本文所提方法一致。
本節(jié)主要考察本文算法TAVPE 的兩個實(shí)驗(yàn)性能,即TAVPE 算法在長文本中的屬性值對抽取性能和時間開銷。
表3給出TAVPE與對比方法的實(shí)驗(yàn)結(jié)果,由實(shí)驗(yàn)結(jié)果可知:
(1)與basicCRF 相比,引入觸發(fā)詞后的Trigger+CRF 和TAVPE 算法能夠抽取二元語義屬性,并且在抽取字符串屬性時準(zhǔn)確率、召回率和F 值都有提高。原因在于未使用觸發(fā)詞的basicCRF 方法不具備二元語義屬性的抽取能力,此外由于利用模型對案情信息的全部內(nèi)容進(jìn)行標(biāo)注,抽取到很多不相關(guān)的信息,從而導(dǎo)致準(zhǔn)確率較低。
(2)與Trigger+CRF 相比,TAVPE 算法在抽取精度上有所改進(jìn)。原因在于Trigger+CRF 方法使用了管道模型,使得觸發(fā)詞識別的錯誤延續(xù)至屬性-值對識別。而TAVPE 方法中的聯(lián)合標(biāo)記模型考慮到觸發(fā)詞、字符串屬性和屬性值在信息語句中的共現(xiàn)性,借助觸發(fā)詞識別對屬性-值對識別的促進(jìn)作用,提高了字符串屬性值對的抽取性能。
表3 實(shí)驗(yàn)結(jié)果
圖3 給出三種算法的時間性能比較。由實(shí)驗(yàn)結(jié)果可知:
(1)相比于basicCRF 方法,TAVPE 算法的耗時明顯縮短,并且隨著數(shù)據(jù)量的增加,兩者運(yùn)行時間差距增大。原因在于basicCRF 沒有引入觸發(fā)詞,需要對案情信息的全部內(nèi)容進(jìn)行預(yù)處理;而TAVPE 算法利用觸發(fā)詞獲取案情信息中的候選信息語句集合,僅需對候選信息語句進(jìn)行預(yù)處理,從而節(jié)省了運(yùn)行時間。
(2)與Trigger+CRF 相比,TAVPE 算法的耗時稍有縮短。原因在于當(dāng)抽取字符串屬性-值對時,Trigger+CRF 方法將觸發(fā)詞識別和屬性-值對識別看成兩個順序的過程,過程間存在時間延遲;而TAVPE 算法將觸發(fā)詞、屬性和屬性值識別視作一個序列標(biāo)注過程,從而節(jié)省了運(yùn)行時間。
由此可見,觸發(fā)詞與屬性值對的聯(lián)合抽取方法不僅具備二元語義屬性的抽取能力,而且提高了字符串屬性值對的抽取性能和抽取效率。
圖3 不同數(shù)據(jù)集規(guī)模下的運(yùn)行時間
本文基于CRF 提出一種觸發(fā)詞與屬性值對的聯(lián)合抽取方法。該方法借助基于熵的特征排序方法構(gòu)建觸發(fā)詞表,過濾長文本中的冗余信息,提高屬性值對的抽取效率;不僅通過構(gòu)建觸發(fā)詞識別模型識別信息語句,確定二元語義屬性的取值,因而具備二元語義屬性值對的抽取能力;而且利用觸發(fā)詞、字符串屬性和屬性值的共現(xiàn)性,借助觸發(fā)詞識別對屬性-值對識別的促進(jìn)作用,提高了字符串屬性值對的抽取性能。
然而,隨著觸發(fā)詞表的擴(kuò)展,抽取階段將定位到更多不相關(guān)的候選信息語句,使得預(yù)處理時間增加,抽取效率降低。另外,基于CRF 訓(xùn)練模型需要擴(kuò)展訓(xùn)練集,而手工標(biāo)注的過程是費(fèi)時費(fèi)力的。因此,未來計劃從以下兩方面擴(kuò)展實(shí)驗(yàn):(1)通過計算候選信息語句與信息語句的相似度排除不相關(guān)的候選信息語句;(2)借助半監(jiān)督方法充分利用未標(biāo)注的訓(xùn)練語料,降低手工標(biāo)注的工作量。