姚春華,劉 瀟,高弘毅,鄢秋霞
(1.中國電子科技集團公司第三十研究所,四川 成都 610041;2. 解放軍駐西安郵電大學選培辦,陜西 西安 710061;3.中國電子科技網絡信息安全有限公司,四川 成都 610041)
隨著 計算機的普及和互聯網的迅猛發展,大量信息以電子文本的形式出現在人們面前。為了應對信息爆炸帶來的挑戰,迫切需要一些自動化的工具幫助人們在海量信息源中迅速找到真正需要的信息。信息抽取研究,正是在這種背景下產生的。信息抽取的主要目的是將無結構的文本轉化為結構化或半結構化的信息,并以數據庫的形式存儲,供用戶查詢以及進一步分析利用。信息抽取系統的主要功能是從文本中抽取出特定的事實信息,稱之為實體,如時間、組織機構以及人物等。
然而,在大多數應用中,不但要識別文本中的實體,還要確定這些實體之間的關系,稱其為實體關系抽取。與實體抽取類似,實體關系的類型也是預先定義的,如地理位置關系(PHYS)、雇傭關系(EMP-ORG)等。信息抽取的主要功能是自動將文本轉化為數據表格,實體抽取確定了表格中的各個元素,實體關系抽取則是確定這些元素在表格中的相對位置。可見,實體關系抽取是信息抽取中的重要環節。
通常,人們將關系抽取問題轉化為一個分類問題,即首先識別一個句子中所有的二元實體對,然后使用一個分類器決定哪些是真正需要的關系。
和分類問題通常的解決辦法一樣,人們最初使用知識庫的方法來解決該問題。但是,方法需要專家構建大規模的知識庫,不但需要有專業技能的專家,還需要付出大量勞動。
為了克服知識庫方法的缺點,人們使用機器學習的方法來解決此問題。該方法不需要有專業技能的專家書寫知識庫,只需要有一定專業知識的人對任意兩個實體之間的關系做出是與不是需要判定的關系即可,然后以此為訓練數據,使用各種學習方法構造分類器。
通常的機器學習算法需要構造特征向量形式的訓練數據,然后使用各種機器學習算法,如支持向量機(SVM)、Window、邏輯回歸Logistic等作為學習構造分類器。這種方法被稱作基于特征向量的機器學習算法。因此,本文采用詞法、句法語義特征,以基于特征向量的機器學習算法作為實體關系抽取的方法,采用的機器學習算法是Logistic回歸算法。
CNKI統計顯示,自2007年以來,實體關系抽取研究的關注度一直呈上升趨勢,說明實體關系抽取得到了越來越多的重視。目前,ACE會議也將關系抽取作為評測內容之一。
實體關系抽取的研究思路主要有基于語言規則模板的方法、基于詞典驅動的方法、基于Ontology的方法、基于機器學習的方法和基于深度學習的方法等。近幾年的研究趨勢表明,機器學習、深度學習成為主流。
英文的實體關系抽取已經有非常成熟的技術。在非監督算法領域,通常會用到上下文特征。
1954年,Harris在Distributional hypothesis theory指出,如果兩個詞經常出現在同一個上下文環境中,在語義上極有可能近似,進而以此作為理論基礎來判定此二元實體對是否包含同樣的實體關系[1]。
2004年,Hasegawa通過采用分等級聚類方法來聚類實體的上下文,簡單選擇上下文中最常用的詞作為特征來表示實體之間的關系[2]。
而在監督算法領域,實體關系抽取通常是一個多分類問題,傳統的機器學習通常會構造復雜的特征來增強模型的性能。
Kambhatla于2004年采用詞匯、句法和語義特征來構建特征向量,再與最大熵模型相結合來提取實體關系[3]。
Suchanek等人于2006年結合語言和統計分析來構建特征向量,從網絡文本中提取實體關系[4]。
2011年,Phillippe Thomas等人提出了一種利用集成學習(Ensemble Learning)抽取藥物之間的相互作用的方法。該方法基于不同語言特征空間構建多種機器學習方法,選出了實驗效果最好的方法[5]。
2012年,Mihai Surdeanu等人采用多實例多標記學習引入到關系抽取中,形成了一種新的方法。它利用帶有潛在變量的圖模型,將文本中實體對及其標記融合在一起,一定程度上克服了遠距離監督學習的缺陷。實驗表明,它在兩類不同領域的文本中性能表現良好[6]。
2013年,Haiguang Li、Gongqing Wu等 在Applied intelligence提出了一種基于位置語義特征的命名實體關系抽取方法。它利用位置特征的可計算性和可操作性、語義特征的可理解性和可實現性,整合了詞語位置的信息增益與基于HowNet的語義計算結果,最終明顯提升了關系抽取效果[7]。
近幾年,隨著深度學習的推廣,它廣泛應用于自然語言處理領域。深度學習并不依賴于所設計的特征,可以自動學習到高階特征。
2014年,zeng等人使用深度卷積神經網絡來提取實體關系,但CNN無法學習到長距離的語義信息[8]。
于是,2015年Zhang和Wang使用了BiRNN來進行實體關系抽取,能夠克服長距離語義信息,并且可以學習到過去和未來的特征,但是會產生上下文梯度消失的問題[9]。
中文實體關系抽取的研究也取得了豐碩成果。
何婷婷等人于2006年提出了一種基于種子自擴展的命名實體關系抽取方法,能夠從大量文本集合中自動抽取命名實體間關系。具體地,人工選取少量具有抽取關系的命名實體對作為初始關系的種子集合,通過自學習不斷擴展關系種子集合,再通過計算命名實體對和關系種子之間的上下文相似度來得到所要抽取的命名實體對[10]。
2007年,陳火旺等人通過使用一系列特征,包括詞、詞性標注、實體和出現信息、包含關系和知網提供的概念信息等,來構建實體關系抽取的特征向量,并使用SVM方法實現中文實體關系抽取[11]。
2013年,陳鵬等人提出一種基于凸組合核函數的中文領域實體關系抽取方法。首先選取實體上下文的詞、詞性等信息,短語句法數信息及依存信息作為特征,然后通過以徑向基核函數、Sigmoid核函數及多項式核函數組成的不同組合比例的凸組合核函數,將特征矩陣映射成為不同的高維矩陣,然后利用支持向量機訓練這些高維矩陣構建不同分類模型后測試抽取性能,以確定最優組合比例的凸組合核函數[12]。
由于中文語言結構的獨特性和語義的復雜性,中文實體關系抽取研究整體上與國外的研究還存在一定差距。一方面常用的基于淺層語法分析獲取特征、構建特征向量、進行機器學習的方法已經達到瓶頸,另一方面中文實體關系抽取開源的語料庫特別少,如果采用監督學習的方法需要克服語料缺少的情況。
本文針對人與人之間的六種關系——父母、子女、夫妻、兄弟姐妹、同事、其他,采用百度百科的語料庫構建五個類別(父母、子女、夫妻、兄弟姐妹、同事)的關系指示詞詞典,再根據關系指示詞詞典來判定實體對關系類型。采用上述方法,結合人工標定來擴充五個類別(父母、子女、夫妻、兄弟姐妹、同事)語料庫,根據中文的語法特點,設計了一系列特征,包括實體本身的詞、詞性標注和實體上下文環境的詞、詞性特征。另外,融入了實體的依存句法關系值、實體與核心謂詞距離的特征,采用logistic進行訓練和測試。此外,針對文本中含有多對二元實體對,通過統計文本中關系指示詞典的個數,使得句子中二元實體對不超過關系指示詞典的個數。
針對中文人與人關系語料庫缺少的情況,本文提出了基于關系指示詞詞典擴充實體關系語料。首先人工選出人與人五種關系的種子詞,再利用種子詞和《同義詞詞林(擴展版)》資源擴展形成關系指示詞詞典。根據人與人關系在中文語法句式結構的特點,可以總結出以下四條規則:
(1)根據實際經驗統計,兩個實體之間的詞數目小于等于5的實體關系三元組數目占總的實體關系三元組數目的74.57%。因此,在生成候選實體關系三元組時,兩個實體之間的詞數目不能超過maxDistance(設置為7)。若兩個實體之間含有標點符號,則標點符號與第二個實體之間的詞數目不能超過maxDistance。
(2)兩個實體之間其他實體數目小于或等于4的實體關系實例數目占實體關系三元組數目的98.55%,所以設定實體之間其他實體數量不能超過maxEntityDistance(設置為4)。
(3)通過統計發現,關系指示詞一般為名詞和動詞。
(4)關系指示詞通常與二元實體對之間有比較明顯的位置關系。關系指示詞一般位于第一個實體左邊的leftWordNumber(設置為3)個名詞和動詞、第二個實體右邊rightWordNumber(設置為3)個名詞和動詞和第一個實體與第二個實體之間。
為了處理句子中含有多對實體關系對,結合關系指示詞與二元實體對不同位置設置不同的權重。若關系指示詞位于第一個實體左邊為w1(設置為0.4),關系指示詞位于第二個實體右邊為w2(設置為0.3),關系指示詞位于兩個實體中間為w3(設置為0.2),分別計算關系指示詞與二元實體對之間的距離與其相應位置的權重乘積所得的分數,選出分數最低的為所識別關系三元組。
擴充實體關系語料庫的具體流程如圖1所示。首先,人工選出人與人五種關系的種子詞,利用種子詞和《同義詞詞林(擴展版)》資源擴展形成關系指示詞詞典;其次,結合人與人關系在中文語法句式結構的特點總結出的四條規則從百度百科文本中抽取滿足人與人五種關系的三元組;最后,加以人工輔助標定所識別的人與人的關系三元組(人名1,人名2,關系)來豐富語料庫,從而可以用于后續的Logistic機器學習算法。

圖1 基于關系指示詞詞典擴充實體關系語料庫
Logistic是應用非常廣泛的一個分類機器學習算法。它將數據擬合到一個logit函數(或者叫做logistic函數)中,從而能夠完成對事件發生概率的預測。
Logistic算法主要用于分類,屬于一種線性的分類器,適用于類別少、特征多的分類器,且對每一個類別的判定能給出一個概率值。模型相對比較簡單,訓練速度較快,在模型預測時計算量相對較小,模型的預測效率高,存儲資源低,適用大規模數據量訓練。
本文要解決人與人六種關系(父母、子女、夫妻、兄弟姐妹、同事、其他)六分類模型。另外,由于‘其他’這個類別比(父母、子女、夫妻、兄弟姐妹、同事)五個類別總的語料需求大,容易導致‘其他’特征較多,出現過擬合現象。所以,本文選取Logistic回歸模型,能夠預測每一個類別的概率。若五個類別(父母、子女、夫妻、兄弟姐妹、同事)概率小于預先設定的閾值(設置為0.5),則判為其他。
模型表達式:

其中z=θTX ,可以看作是一個線性回歸模型,θ為特征系數。可以通過最大似然估計來學習樣本的后驗概率,在學習過程中可以給模型參數添加L1或者L2正則來簡化模型,使得模型效率更高。
模型預測表達式:

模 型 參 數 估 計。 假 設 P(y=1|x)=π(x),P(y=0|x)=1-π(x),似然函數為:

對數似然函數為:

對L(θ)求極大值,得到θ的估計值。這樣問題就變成了以對數似然函數為目標函數的最優化問題。Logistic學習中,通常采用的方法是梯度下降法和擬牛頓法。
假設θ的極大似然估計值是θ^,那么學到的Logistic模型為:

多分類的Logistic模型。上述Logistic模型是二項分類模型,用于二類分類。可以將其推廣為多項Logistic模型,用于多類分類。假設離散型隨機變量y的取值集合是{1,2,…,K},則多項Logistic回歸模型為:

同理,二項Logistic的參數估計方法也可以推廣到多項Logistic回歸。
基于特征向量的機器學習算法是對給定的一組訓練數據(x1,y1),(x2,y2),…(xn,yn),其中對于二元分類問題yi∈{0,±1},學習一個分類函數f,使得對于給定新的特征向量x',f能夠將其正確分類,即f(x')=y'。
對于自然語言處理問題,如何構造特征向量成為使用基于特征向量學習算法的一個重要環節。例如,在文本分類任務中,通常使用一個詞作為特征向量,而向量中元素的值可以是二元的1或0,代表某個詞出現與否,或者是該詞在一篇文檔中出現的次數。目前,使用詞的tf×idf值作為元素值,取得了較好的分類效果。在其他一些自然語言處理問題中,向量的每個元素表示的是一些預先定義的特征在實例中出現與否,即根據特征函數fi∶H×T→{0,1}決定第i維向量元素的值。其中,H是實例上下文的集合,T是實例所屬類別的集合,則特征向量的第i維向量元素xi=fi(h,t)。于是,構造了一個維數巨大的特征向量。此特征向量即可作為某一機器學習算法的輸入數據進行學習和預測。
常規的實體關系特征主要從詞法分析結果來獲取,以往的研究已經表明了這些特征的有效性。面向句子中所有實體組成的二元實體對,本文結合詞法特征和句法語義特征,分析其選擇的實體關系特征。
(1)二元實體的長度。根據命名實體結果的標識信息中獲取多詞實體的邊界和其首尾詞的位置來計算實體長度。
(2)二元實體的種類。目前,使用的LTPCloud工具能夠識別的實體種類有人名、地名、組織機構名,所以實體種類只選擇這三種。
(3)二元實體的內容。
(4)二元實體中各詞的詞性標注。
(5)二元實體的上下文環境。通常,實體周圍的w個詞也是較好的特征,如實體前后w個詞的內容以及詞性標注信息,這里w可以取2或者3。因為一般情況下,距離較遠的詞對詞性標注不起重要作用,且如果w的選擇過大,會增加計算量。
(6)二元實體的句法依存關系。依存句法能夠有效分析句子中各詞語之間的依存關系,通過對其這一功能的應用,可以作為實體關系抽取一項特征。通過Ltp-Cloud對句子進行句法語義分析,獲取實體對中每一個實體在原句中所屬的句法依存關系值,其中包括每一個實體依賴的父節點的詞、詞性標注和每一個實體依賴的子節點的詞、詞性標注。
(7)二元實體與核心謂詞的距離。對句法分析的結果進行大量實驗后發現,在所有謂詞中,核心謂詞對獲取實體邊界、承接實體關系起著關鍵作用。句子中命名實體與核心謂詞的平均距離和命名實體與普通謂詞的平均距離有明顯差異,所以實體與核心謂詞的距離也是實體之間的一種隱含關系特征。根據實體首詞在句中的位置和核心謂詞的距離,計算每一個實體與核心謂詞的距離。
如圖2所示,本文利用基于關系指示詞詞典擴充實體關系語料庫,得到人與人關系三元組(人名1,人名2,關系)語料庫,再利用哈爾濱工業大學LTP-Cloud平臺對語料進行初步處理。以LTPCloud對語料的詞法、句法分析結果為基礎生成二元實體對,并采集所有二元實體對利用2.3章節的7條特征生成訓練文本,并交由logistic進行訓練。

圖2 二元實體對關系抽取的Logistic模型訓練流程
本文設定了五種人與人之間的實體關系類型,分別是父母、子女、夫妻、兄弟姐妹、同事。由于本文將實體關系抽取過程看作是分類過程,這里采用準確率、召回率和F1值作為評價方式。
準確率:

本文采用百度百科數據,人工標定的父母、子女、夫妻、兄弟姐妹、同事、其他的語料。其中,90%作為訓練語料,10%作為測試語料,具體數據如表1所示。然后,利用哈爾濱工業大學Ltp-Cloud分析每一對二元實體對所在句子中詞法、句法語義特征數據,并人工添加實體關系分類標注,最終形成訓練語料。采用scikit-learn中的DictVectorizer將特征數據進行特征向量化,采用scikit-learn中的LogisticRegression訓練模型。其中,DictVectorizer使用默認的參數設置,LogisticRegression函數的參數設置為penalty='l2',dual=False,tol=0.0001 solver='newton-cg',multi_class='multinomial'。

表1 人與人六種關系訓練和測試語料分布情況表
本文先針對人與人五種關系(父母、子女、夫妻、兄弟姐妹、同事)語料庫進行Logistic訓練和測試,表2分別為五種類別的精確率和召回率。

表2 去除實體識別錯誤,父母、子女、夫妻、兄弟姐妹、同事各個類別的準確率與召回率
另外,二元實體對之間的關系可能是無關系或者不在上述五類中,將這一類定義為“其他”類別?!捌渌鳖悇e數據過于繁雜,將易導致“其他”如果將“其他”和父母、子女、夫妻、兄弟姐妹、同事五類一起訓練出現“其他”這個類別特征數遠大于語料數而發生過擬合現象,最后導致模型預測出現誤差。由于本文收集的‘其他’這個類別語料庫遠遠小于實際需要的語料庫,為解決上述問題,將父母、子女、夫妻、兄弟姐妹、同事和其他六類訓練一個Logistic模型。對于一個二元實體對,構建其相應的特征向量,通過Logistic模型判定,若其判為這五個類別(父母、子女、夫妻、兄弟姐妹、同事)概率的最大值小于某個閾值(設置為0.5),則將其判為“其他”類別;若大于某個閾值,則將其判為既已判定的類別。另外,針對文本中含有多對二元實體對,通過統計文本中關系指示詞典的個數,使得句子中二元實體對不超過關系指示詞的個數。計算概率前n個二元實體對,其中n=min{句子中二元實體對個數,句子中關系指示詞的個數},具體流程圖如圖3所示。

圖3 采用Logistic模型識別實體關系抽取流程
本文提出了一種基于句法語義特征的實體關系抽取方法。與以往的實體關系抽取方法相比,本文新增了句法分析結果和語義分析結果作為實體關系抽取的特征,然后采用Logistic分類器進行訓練模型。句子中含有多對二元實體對,通過統計文本中關系指示詞的個數,需構建句子中實際含有的二元實體對,解決多判和漏判的二元關系實體對。針對采用Logistic分類訓練模型但缺乏樣本的情況,本文又提出了一種基于關系指示詞詞典擴充人與人關系語料。具體地,采用百度百科的語料庫構建五個類別(父母、子女、夫妻、兄弟姐妹、同事)的關系指示詞詞典,根據關系指示詞詞典判定實體對關系類型,采用上述方法,結合人工標定來擴充五個類別(父母、子女、夫妻、兄弟姐妹、同事)語料庫。本文是以句子為處理單位,缺少篇章處理的視野,未考慮實體的指代消解問題,未來,將在上述方面繼續做深入研究。另外,本文采用監督學習的方法,對樣本擴充有一定人工標定量,未來將在語料自動擴充做一些深入研究。