王竣平 白 宇 蔡東風
(沈陽航空航天大學人機智能研究中心 遼寧 沈陽 110136)(遼寧省知識工程與人機交互工程技術(shù)研究中心 遼寧 沈陽 110136)
數(shù)值信息是文本中的一種重要信息,也是數(shù)據(jù)中直觀的表達方式之一。而且數(shù)值信息的抽取對信息檢索、數(shù)值類問答,知識庫或事實庫構(gòu)建、文本可視化分析等應(yīng)用具有重要的現(xiàn)實意義。
數(shù)值在非結(jié)構(gòu)化文本中非常普遍,常見的數(shù)值包括時間、貨幣、數(shù)量詞、電話號碼等,但僅僅單純對數(shù)值的抽取意義不大,因為數(shù)值只有存在于相應(yīng)的語言環(huán)境中,和相關(guān)的主體,單位等元素一起存在,才能更全面地表達出其本身所攜帶的信息。一個數(shù)值信息應(yīng)該包括主體、屬性、屬性值等基本元素,考慮到數(shù)值信息表述中的相對性特征,數(shù)值信息還應(yīng)該包括比較詞、趨勢詞、比較對象、時間、地點等元素。
當前的數(shù)值信息的抽取以模板的方式為主,且抽取的格式無法完全表達數(shù)值信息的含義。為了更加全面地描述數(shù)值信息且克服模板抽取的局限性,本文提出了一種數(shù)值信息的存儲格式和抽取方法。輸入例子和輸出結(jié)果分別如表1和表2所示,數(shù)值信息的抽取流程圖如圖1所示。
表1 輸入句子
表2 部分輸出結(jié)果
圖1 數(shù)值信息抽取流程圖
關(guān)于信息抽取方面目前主要有4種方法:基于規(guī)則、基于統(tǒng)計機器學習、基于規(guī)則統(tǒng)計相結(jié)合以及基于深度學習的方法。基于規(guī)則的方法有:封春生等[3]人利用關(guān)鍵字來定義模式匹配原則;朱文琰等[4]提出一種基于正則表達式狀態(tài)轉(zhuǎn)換的算法,來學習復(fù)雜正則表達式來抽取網(wǎng)頁中的信息;仇培元等[5]提出使用詞性序列來制定抽取模式。這些方法的移植性較差?;诮y(tǒng)計機器學習方法有:使用條件隨機場[6-8],利用序列標注的思想對命名實體來進行抽取。文獻[9-10]采用了基于規(guī)則和統(tǒng)計相結(jié)合的方法進行屬性的抽取。通常來說結(jié)合的方式有兩種,先使用規(guī)則后使用統(tǒng)計和先使用統(tǒng)計后使用規(guī)則兩種方法,具體選擇哪種方法,需要根據(jù)具體的問題來選擇方法?;谏疃葘W習的方法:這類方法通常不再依賴于人工特征或領(lǐng)域知識,實現(xiàn)了端到端的抽取模式,減少了人工特征提取所需的代價。文獻[11]提出了BI-LSTM-CRF模型,通過序列標注進行命名實體識別均達到了最好的效果。
在數(shù)值信息抽取方面,大部分相關(guān)工作都是采用基于模式匹配的方式。對數(shù)值信息進行抽取,首先要對數(shù)值進行識別。石海峰等[12]利用數(shù)字+單位的方法來對數(shù)值信息進行識別;文獻[13]對數(shù)詞和量詞進行分類,分析數(shù)詞和量詞的組合方式并對組合方式進行分類,形成知識庫。利用知識庫對數(shù)量名短語進行識別(包括數(shù)值)。肖洪等[14]采用了基于規(guī)則的方法,從海量年鑒文本中抽取宏觀數(shù)值信息,為了使數(shù)值信息含義更加明確,使用了由六元組結(jié)構(gòu)表示數(shù)值信息的方法,但沒有對數(shù)值信息的表達模式做具體的分析,只定義了3種抽取模式。溫有奎等[15]利用人工抽取數(shù)值的經(jīng)驗,開發(fā)了數(shù)值型知識元抽取軟件,用于抽取《年鑒》中的數(shù)值信息。文獻[16]開發(fā)了一個可以從大量的日文文檔中半自動抽取數(shù)值信息的一個系統(tǒng),并能夠根據(jù)抽取到的數(shù)值信息自繪制多種圖形。文獻[17]將數(shù)值信息根據(jù)時間將數(shù)值信息分為了絕對數(shù)值信息和相對數(shù)值信息,采用了一種數(shù)值信息抽取模板輔以條件隨機場的方法。但文獻[17]的相對數(shù)值信息只做到了在時間上的比對,并且對含有多數(shù)值的句子的抽取效果不佳。
本文針對數(shù)值信息抽取過程中比較信息處理比較單一和多數(shù)值抽取效果不佳的問題,并結(jié)合數(shù)值信息的特點,提出了一種抽取框架和抽取方法。比較關(guān)系的處理上,不僅僅局限于時間上的比較,而且對于含有多數(shù)值、多同種類型元素的句子,數(shù)值信息抽取效果也得到了改善。相比于單純用模式匹配來對整個數(shù)值信息抽取的方法,本文方法有效改善了大量人工干預(yù)來制定抽取模式和模式?jīng)_突的問題。
屬性值是判斷數(shù)值信息是否被抽取的關(guān)鍵所在,也是判斷一個數(shù)值信息是否存在的關(guān)鍵。所以本文先對屬性值進行抽取,并將屬性值作為抽取的觸發(fā)詞。但在非結(jié)構(gòu)化的文本中,屬性值存在大量省略表達的情況。而且無論是省略還是非省略的情況,屬性值規(guī)律性比較強,而模板相比于其他方法,更適合抽取這種表達規(guī)律性較強的屬性值。故本文采用模板的方式對屬性值進行識別。
2.1.1屬性值抽取模板
通過觀察文本,趨勢詞和單位會因并列表達而存在省略的情況,故本文在定義屬性值抽取模板時,同時將趨勢詞、單位和量詞進行抽取。抽取數(shù)字的趨勢詞和量詞,不僅對數(shù)字的意義表示的更為全面,同時也能表示出數(shù)字之間的邏輯關(guān)系。
本文定義的屬性值抽取模板如表3所示。其中:“Qu”代表趨勢詞;“Num”代表數(shù)字;“Dan”用來代表單位;“Li”代表量詞。并按表格的順序由上至下進行匹配。
表3 屬性值的抽取模式
2.1.2單位、量詞和趨勢詞知識庫的建立
本文通過建立知識詞庫結(jié)合模板來對屬性值進行抽取。單位、量詞、趨勢詞相對有限,所以通過建立知識庫來進行抽取屬性值進行抽取。
1) 單位。從知網(wǎng)和外部知識中獲取單位的個數(shù)為673個。將數(shù)值單位的類型分成14大類分別為:長度、質(zhì)量、體積、面積、溫度、密度、壓強、功率、力、速度、電、光照度、組合單位、其他。單位詞表如表4所示。
表4 單位表
2) 趨勢詞和量詞。趨勢詞表達了屬性值所在數(shù)值信息之間的邏輯關(guān)系,是進行推理的重要標志。本文在文獻[17]收集的趨勢詞的基礎(chǔ)上進行補充,趨勢詞表如表5所示。
收集到的方向量詞為:及以上、以上、左右。
數(shù)值信息元素識別的目的是為了標注出句子中各詞匯是否在數(shù)值信息中,可以看作序列標注問題,目前常見的用于序列標注的模型有CRF模型、BI-LSTM-CRF模型。BI-LSTM-CRF模型具有對句子整體信息的長距離依賴、自動抽象特征等以及利用CEF假設(shè)標簽之間存在關(guān)系而非獨立性的特點[11,20],而且不需要人工精心構(gòu)建特征,編寫特征模板等優(yōu)勢,因此被越來越多研究者使用。本研究選擇BI-LSTM-CRF模型來完成數(shù)值信息的主體、屬性、比較詞關(guān)鍵元素進行識別。
2.2.1模型建立
BI-LSTM-CRF模型是將BI-LSTM網(wǎng)絡(luò)和 CRF模型結(jié)合起來,即在BI-LSTM網(wǎng)絡(luò)的隱藏層后加一層CRF線性層,BI-LSTM層可以有效地使用之前或者之后的輸入特征[11]。通過CRF層可以使用句子級別的之前或之后的標簽信息。BI-LSTM-CRF模型結(jié)構(gòu)如圖2所示。
圖2 BI-LSTM-CRF模型結(jié)構(gòu)
對于句子序列X=(x1,x2,…,xn),分別進入兩個LSTM,將LSTM正序輸出和反序輸出的進行拼接,通過引入狀態(tài)轉(zhuǎn)移矩陣[A],然后設(shè)定矩陣P為雙層LSTM網(wǎng)絡(luò)的輸出。[A]i,j表示時序上從第i個狀態(tài)轉(zhuǎn)移到第j個狀態(tài)的概率;[P]i,j表示輸入觀察序列中第i個詞為第j個標注的概率。則觀察序列[X]對應(yīng)的標注序列y=(y1,y2,…,yn)的預(yù)測輸出為:
動態(tài)規(guī)劃算法可以有效地計算狀態(tài)轉(zhuǎn)移矩陣和優(yōu)化標簽序列,具體算法請參考文獻[18]。
2.2.2訓(xùn)練方法
本文將主體、屬性、比較詞標注體系如表6所示。圖3為數(shù)值信息元素標注示意圖,其中,文字部分為文本經(jīng)中文分詞后的詞序列,各詞上方代碼為輸入的數(shù)值信息元素類型標記代碼。
表6 主體、屬性、比較詞標注體系
圖3 標注示意圖(非數(shù)值信息元素標記代碼為“NaN”)
分詞后的詞序列首先需要分布式向量化,這里采用的是文獻[19]提出的word2vec方法。基于本文構(gòu)建的標注流程圖如圖4所示。
我們將整個訓(xùn)練數(shù)據(jù)分批次,并每次處理一批包含一個由批量大小參數(shù)確定的句子數(shù)量的句子列表,本文選擇的批大小為50。對于每一批次,我們分別運行BI-LSTM-CRF模型。首先運行雙向LSTM-CRF模型正向傳播,通過正向傳播BI-LSTM網(wǎng)絡(luò)的前向狀態(tài)和后向狀態(tài),得到所有詞對應(yīng)所有標簽的概率。然后,運行CRF層來計算網(wǎng)絡(luò)輸出和狀態(tài)轉(zhuǎn)移矩陣邊緣概率的梯度。之后,將錯誤從輸出反向傳播到輸入,其中包括向前和向后狀態(tài)的反向傳播。進而可以更新相應(yīng)的狀態(tài)轉(zhuǎn)移矩陣[A],標簽標注概率矩陣[P][11],并使用了dropout方法來減少過擬合。
將標注出來的語料進行整理,通過如下標簽來對句子中的數(shù)值信息所屬元素進行標記:主體:、屬性:、比較詞:、比較對象:、時間:、地點:、屬性值:
數(shù)值信息地點元素的識別則使用了公開的工具,地名和機構(gòu)名的識別采用了哈工大的LTP工具,時間元素的識別則采用了正則表達式匹配的方法。并根據(jù)實際情況,利用正則表達式和知識庫對地點和時間元素進行補充。比如地點中表達:中、西部地區(qū),需要抽取出中部地區(qū)和西部地區(qū)。再比如時間上的省略表達:2016年3月、4月,需要抽取出2016年3月、2016年4月。
通過含有數(shù)值的文本進行分析,比較對象均來自于除比較詞外的其他元素,為了不增加標注的標簽量,識別出比較詞之后,采用如下規(guī)則從已識別的數(shù)值信息元素中將比較對象識別出來。
(1) 將比較詞和數(shù)值之間的數(shù)值信息元素標記為比較對象。
(2) 將介詞后面到分句結(jié)束之間的數(shù)值信息元素標記為比較對象。
(3) 若上面兩種情況都不滿足且還存在比較詞,上一個分句的主體和屬性值補充到該分句作為比較對象。
(4) 對于不同的元素則組合為一個比較對象,相同則認為多個比較對象。
例如:經(jīng)過標注后處理成、。橡膠和消費量在比較詞和數(shù)字之間且一個是主體一個是屬性,元素類型不同,經(jīng)過規(guī)則(1)和規(guī)則(4)后,我們將比較對象識別出并標記為:、。
非結(jié)構(gòu)化文本含有多個屬性值時,頻繁出現(xiàn)的省略描述方式造成不同數(shù)值信息混雜,不利于計算機自動區(qū)分。在訓(xùn)練數(shù)據(jù)集有限,特征明顯且確定的情況下,本文采用基于特征的方式進行識別,去判斷屬性值和識別出的其他元素之間是否有語義關(guān)系。本文所選擇的特征如表7所示。
表7 特征列表
在進行識別之前,先將識別好的句子按逗號進行分割,以含有屬性值的分句為單位,對分句中的元素進行識別。如果分句中缺少元組中需要的數(shù)值信息元素,即有省略的情況,則將前面分句中最近出現(xiàn)的相同數(shù)值信息元素按表7中的特征進行判別。若整個句子所有分句無相應(yīng)元素,則認為數(shù)值信息不含有該元素。
從表7中,由上到下對特征進行匹配只要有一條符合的結(jié)果為是,則我們就認為該成份和該屬性值有關(guān)系。例如經(jīng)過識別后得到這樣的一個標注的句子:
已達,
比如要尋找屬性值41.8%的其他數(shù)值信息元素,在該分句中含有兩個主體,其中天然橡膠出現(xiàn)次序和41.8%在該分句中同類型屬性值均為第一次出現(xiàn)。根據(jù)特征4,認為41.8%的主體為天然橡膠。而上一個分句中有屬性且只有一個,即消費量,所以我們認為消費量是41.8%的屬性。對于比較對象、比較詞、時間、地點全部都唯一,根據(jù)特征3,判斷屬性值41.8%和三者有關(guān)系。
本文從工信部的網(wǎng)站上爬取了工信數(shù)據(jù),經(jīng)過篩選出含有屬性值的句子共4 725句。經(jīng)人工標注后為實驗語料,并按4∶1的比例隨機劃分出訓(xùn)練集和測試集,語料樣例如表1所示。
為對比本文方法與模式比配方法的效果,本文參照文獻[19]已有成果構(gòu)建了基于模式匹配的數(shù)值數(shù)值信息抽取方法。每一個模式對應(yīng)一個數(shù)值信息數(shù)值信息。并將本文標注出來的主體,比較詞作為知識對該方法進行補充。
本文采用正確率(P),召回率(R),和F-值(F)來對方法的性能進行評價。三個指標的計算公式如下:
(1)
(2)
(3)
本文選用了712 M搜狗全網(wǎng)新聞?wù)Z料訓(xùn)練詞向量,采用的分詞工具為清華大學的THULAC。采用了tensorflow深度學習框架。將分好詞的語料以詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入。參考文獻[21-22]的經(jīng)驗值,設(shè)置的參數(shù)為:詞向量200維、學習率0.01、迭代次數(shù)300、批大小50、Dropout取0.5。
為判定每一步的結(jié)果,將屬性值識別結(jié)果,以及主體、屬性、比較詞的識別的抽取結(jié)果,分別如表8、表9所示。
表8 屬性值識別結(jié)果
表9 數(shù)值信息元素的識別結(jié)果
為評價對數(shù)值信息抽取的效果,在對屬性值標注和BI-LSTM-CRF模型的識別的主體、屬性、比較詞基礎(chǔ)上,分別進行數(shù)值信息抽取實驗,抽取得到的數(shù)值信息中的成員全部正確則認為數(shù)值信息抽取正確。與模式匹配法比較的實驗結(jié)果如表10所示。
表10 數(shù)值信息抽取結(jié)果
對于屬性值識別部分,準確率、召回率和F-值均到達95%以上,這是因為屬性值在非結(jié)構(gòu)化文本中的表達比較固定且規(guī)律明顯,而模板的方法的優(yōu)勢在于對固定規(guī)律的表示,因而可以用較少的代價實現(xiàn)很好的效果。然而一些不常見的組合單位和包含數(shù)字的主體則對屬性值的識別造成了干擾,比如:分鐘、月戶等。
從數(shù)值信息中的主體、屬性、比較詞的元素識別結(jié)果可以看出,BI-LSTM-CRF模型在不使用人工設(shè)計特征和編寫特征模板的前提下,對三種元素的識別的F-均達到了84%以上。對于主體和屬性來說,文本中有很多較長的表達。BI-LSTM-CRF模型能夠自動從文本序列中抽象出文本特征進而給CRF層進行訓(xùn)練,因而抽象過程中使用的詞向量能夠抽象出很多人工無法表達的特征,所以對文本的觀察更為全面。比如“石油基合成橡膠”在訓(xùn)練語料中并沒有完全出現(xiàn),只出現(xiàn)了“合成橡膠”,BI-LSTM-CRF模型就能識別出此主體。原因在于輸入的詞表示向量帶入了一定的語義信息,雖然訓(xùn)練語料中未出現(xiàn),但經(jīng)過BI-LSTM-CRF模型的抽象可以較好地學習出一些特征。
對于比較詞識別的F-值達到了90%以上,但在識別時會將不含屬性值的分句中的比較詞識別出來。像“比較明顯”、“占主導(dǎo)地位”中的,“比”、“占”也有些會被識別成比較詞,但因為本文方法是以屬性值作為數(shù)值信息抽取的觸發(fā)詞,故這種比較的錯誤詞對最后的數(shù)值信息抽取結(jié)果并不會產(chǎn)生影響。
從表10的數(shù)值信息抽取結(jié)果可以看出,本文提出的方法要好于模式匹配的方法。原因在于,對于只含有一個屬性值的句子來說,這種句子表達具有一定的規(guī)律性,有利于模式匹配。但對于含有多個屬性值的句子來說,屬性值和主體的元素都存在省略表達情況,而且對于含有多個屬性值、多個主體、屬性等元素時,這種之間的關(guān)系抽取利用模板很難表達出來,而非結(jié)構(gòu)化文本中隨意表達的無關(guān)詞較多。并且有時候一個句子會被多個模式匹配或者不被匹配,從而抽取出錯誤信息或者抽取不出來。本文方法以屬性值為觸發(fā)詞,通過特征識別各個元素和屬性值的關(guān)系,對句子含有多數(shù)值和多主體等元素情況具有較好的抽取結(jié)果,方法具有靈活性和可移植性。本文方法的數(shù)值信息最終抽取結(jié)果是建立在其元素識別的基礎(chǔ)之上,因此各個識別過程產(chǎn)生的誤差會傳遞積累,有時一個主體等相關(guān)元素識別錯誤,會導(dǎo)致多個數(shù)值信息的抽取產(chǎn)生錯誤。因此,提高識別階段的識別質(zhì)量是提高本文方法抽取精度的關(guān)鍵,也是后續(xù)研究的主要內(nèi)容之一。
在非結(jié)構(gòu)化文本中,對于定中關(guān)系的屬性值和主體會省略一些屬性的表達。比如“180臺平板電腦”,由于表達習慣將“數(shù)量”這個屬性省略,省略的屬性往往是這個單位所屬的類別。所以今后要對收集到的單位進行更加詳細的分類,加入句法分析等特征,進而對屬性進行推理補充,以減少這種因為省略而造成的數(shù)值信息的抽取錯誤。
對于抽取出來的數(shù)值信息中比較類型的數(shù)值信息,可根據(jù)需要做相應(yīng)的邏輯處理,推理出句子中隱含有的數(shù)值信息,表示成不含有比較元素的數(shù)值信息。
本文提出一種數(shù)值信息表示方法和數(shù)值信息抽取框架。該表示方法可以全面地表示出數(shù)值信息。抽取過程主要分為兩步:數(shù)值信息元素和關(guān)系識別。其中針對屬性值表達比較固定的特點,利用模板的方法對句子中的屬性值在進行識別。采用了BI-LSTM-CRF模型對數(shù)值信息主體、屬性和比較詞進行識別。通過選取特征,判斷屬性值和其他元素之間的關(guān)系。實驗結(jié)果表明,采用BI-LSTM-CRF識別的抽取方法正確率和召回率都達到75%以上,優(yōu)于現(xiàn)有的模式匹配方法。
在未來的工作中,我們將嘗試對深度學習模型參數(shù)進行改進,分別對主體、屬性、比較詞的識別進行優(yōu)化。同時增加句法和句子角色等特征,嘗試采用機器學習相關(guān)模型來進行元素之間的關(guān)系識別,進一步提高數(shù)值信息抽取的準確率。