褚衍杰,魏 強,李云照
(盲信號處理重點實驗室,成都 610041)
事件檢測與描述由自動文本抽取(Automatcic Content Extraction,ACE)會議提出,主要研究從新聞語料中自動檢測事件及其描述信息,是ACE會議除實體識別和實體關系識別的又一研究熱點。在微博、論壇、短信等應用中,除了本身內容外文本一般還具有瀏覽與被瀏覽、轉發與被轉發、發送與接收等關聯要素,本文研究從具有關聯要素的中文文本中檢測目標事件的問題,以實現從此類文本中挖掘目標事件信息的目的。
事件檢測主要使用聚類、分類等機器學習方法,如文獻[1]提出利用MegaM和Timbl這2種機器學習方法分別實現事件類別檢測和元素識別;文獻[2]提出基于觸發詞指導的自相似度聚類方法,利用觸發詞及命名實體信息解決了對事件類別模板的依賴性問題;文獻[3]提出基于情感計算的微博突發事件檢測方法,利用突發情感特征及譜聚類方法實現微博突發事件檢測及抽取;還有很多學者致力于研究如何提升事件檢測的性能[4]。
本文在ACE事件檢測與描述框架的基礎上結合文本的關聯要素分析和內容分析,提出基于關鍵詞語義和作用域擴展的事件檢測方法。
自由文本中出現的事件,都有明確的當事者或者實施者,有構成事件的基本要素:時間,地點,人物等。ACE2005的思想是如果能夠把事件的特征要素識別出來,填入事件列表,那么維護此列表即可實現對事件的檢測和跟蹤。ACE2005對事件檢測技術進行分割,劃分為事件類別識別和事件元素提取2個主要步驟:
(1)事件類別識別:ACE2005定義了8種事件類別以及33種子類別。每種事件類別/子類別(簡稱為事件類別)對應唯一的事件模板,事件類別和模板如表1和表2所示(事件模版內容較多,僅列出部分,詳細內容可參見 ACE2005[5]相關章節)。

表1 ACE定義的事件類別

表2 ACE定義的事件模版
(2)事件元素提取:根據所屬的事件模板,提取相應的元素,并為其標上正確的元素標簽。
在事件類別識別中[6-8],一般分 2 步進行:確定候選事件集合和候選事件識別。其中,確定候選事件集合是根據語句中出現的觸發詞決定事件類別,如“小明出生在2000年”,其中觸發詞是“出生”,決定了該事件屬于“Life/Born”類。觸發詞-事件的對應關系由訓練得到。利用該方法可以對一段文本分析形成一個候選事件集合。候選事件識別是判斷該候選事件是否屬于該事件類別,一般根據詞法、上下文等特征進行判斷。
具有關聯要素的中文文本事件檢測問題,可以描述為從具有關聯要素的N個文本T={t1,t2,…,tN}中,發現與目標事件相關的所有文本ti,并提取出每個文本的簡要信息。每個文本由關聯要素和字符文本組成,即:ti={fromer,toer,time,c1c2…cMi},其中,fromer和toer分別表示文本關聯關系的雙方,比如評論人和被評論人、發送人和接收人等;time表示文本產生的時間,c1c2…cMi表示文本的內容;目標事件通常用一組關鍵詞向量 W={w1,w2,…,wK}表示,其中,wi(1≤i≤K)可能是事件涉及的人、物、時間、地點、動作等。
本文提出的事件檢測模型的基本思想是利用關聯關系分析擴展關鍵詞的作用域,利用基于文本庫的訓練擴展關鍵詞的語義,從而提高事件的檢測率,具體介紹如下:
(1)關聯關系分析:對于同一事件的不同發展階段,可能會涉及到不同的話題,例如一宗商業交易的事件中,一般會涉及合同簽訂、貨物運輸、貨物驗收、匯款交付等不同話題,其中涉及的關鍵詞可能相差甚遠。在沒有關聯要素的事件檢測中只能夠利用事件跟蹤技術跟蹤事件的發展變化,而在有關聯要素[9]的情況下,問題可以得到簡化,即利用關聯關系就可以將事件的不同階段組合起來,形成完整的事件流。但是從另一個角度來講,若文本集T中含有事件參與者參與非目標事件的文本時,使用關聯關系進行文本關聯會將其他事件也納入檢測結果。為了解決該問題,本文利用剪枝處理的方法濾除噪聲文本,即通過歷史經驗剪掉一條關聯鏈路,從而濾除該關聯鏈路涉及的大量文本,如圖1所示,假設A,B,C,D這4個文本是某事件的所有文本,但是由于B和E之間有一次關聯,導致了引入E,F,G,H的噪聲文本,由于本文討論的文本一般較短,目標文本量也較少,單純從文本內容相似度的角度很難區分噪聲,因此利用歷史經驗剪掉B,E間的鏈路,濾除E,F,G,H。

圖1 剪枝方法示意圖
(2)關鍵詞語義擴展:由于表達方式的多樣性,關鍵詞向量W={w1,w2,…,wK}并不能完全描述目標事件,以該向量為關鍵詞,極有可能無法檢測到事件的相關文本,因此使用關鍵詞語義擴展[10-12]的方法,即在文本資料庫中檢索每個關鍵詞,統計在關鍵詞周圍一定范圍內出現的名詞、動詞、時間詞,然后根據出現位置、出現頻次選取與關鍵詞語義關系最近的L個詞,依此形成擴展詞向量:W′={w1,w11,w12,…,w1L,w2,w21,w22,…,w2L,…,wK,wK1,wK2,…,wKL}。其中,L表示擴展詞的數量。在模式匹配模塊,同一關鍵詞及其擴展詞之間是“或”關系,而不同關鍵詞之間是“與”關系。分析顯示,擴展詞的數量越多,匹配的結果越多,但會引入很多噪聲文本,本文一般選取4個~6個擴展詞,以歷史數據和北大CCL語料庫作為訓練文本資料庫。
(3)關鍵詞作用域擴展:當關鍵詞數量較多時,由于事件描述過于精確,容易造成漏檢問題,例如同一商業事件的2個文本中分別出現了“采購”和“合同”2個關鍵詞,若使用“采購&合同”作為關鍵詞進行搜索,就會造成這2個文本的漏檢。為了避免上述問題,本文通過采用關鍵詞分組并進行2次關鍵詞匹配和關聯要素分析的方法來擴展關鍵詞的作用域。文中將 W={w1,w2,…,wK}分為2個組,W1={w1,w2,…,wθ}和 W2={wθ+1,wθ+2,…,wK}。其中,θ為關鍵詞分組的邊界。本文方法利用W1進行松散匹配,并通過關聯要素分析得到有關系的文本群,然后利用W2在文本群中進行匹配和關聯要素分析。在這種方法下如果W1出現在某個文本中,而W2出現在與該文本有關聯的另一個文本中,也不會出現漏檢現象,相當于將W1和W2的“與”關系的作用域擴展到具有關聯關系的文本群。分析顯示,關鍵詞分組數越多,作用域擴展效果越好,但關聯分析帶來的運算量越大。
本文提出的基于關鍵詞語義和作用域擴展的事件檢測流程如圖2所示。

圖2 基于通信關系和內容分析的事件檢測流程
歷史數據庫中包含按照政治、經濟、軍事、體育等主題劃分的歷史文本和新聞類文本,以及在過往處理中已經確認的事件參與者的關聯關系網。
關鍵詞語義擴展模塊通過歷史數據庫中的歷史文本以及新聞類文本,訓練得到關鍵詞向量的擴展詞向量,對每個關鍵詞wi(1≤i≤K)擴展的具體步驟如下:
(1)以關鍵詞wi作為條件,對所有訓練文本進行搜索。
(2)在匹配的文本中找到wi出現的位置P,對以P為中心,長度為2D的文本進行分詞處理。
(3)以P為中心,向前、向后分別搜索長度D,記錄出現的名詞、動詞、時間詞,并記錄出現的次數和到位置P的距離。
(4)完成對所有匹配文本的處理,計算每個詞的得分:

其中,w為詞頻和距離的權重比例;n為該擴展詞出現的次數;nmax為所有詞出現的最大次數;d為該詞與wi的平均距離。
(5)選取排名前L位的詞,與wi一起組成擴展詞向量={wi,wi1,wi2,…,wiL}。模式匹配模塊按照擴展詞向量對文檔執行匹配操作,選取所有匹配文本,供關聯關系分析模塊使用,本文采用正則表達式完成模式匹配。
關聯關系分析模塊對擴展詞向量的匹配文本進行處理,分析關聯關系,形成關聯關系網,并進行剪枝處理,形成該事件的待選文檔集合,具體步驟如下:
(1)提取每篇匹配文檔的fromer和toer。
(2)以fromer和toer為關鍵詞,對原始文檔集中所有文檔的進行匹配,選取所有匹配文本,并提取其 fromer和 toer。
(3)重復步驟(2)若干次,一般不超過5次。
(4)以獲取的所有fromer和toer信息為基礎,構造關聯關系網,利用歷史數據庫中的同類事件關系網,判斷每個fromer/toer是否可能涉及目標事件,并以此為標準進行剪枝操作。
(5)剪枝操作后,剩余的所有文檔形成事件的待選文檔集。
事件信息提取及確認模塊提取每個待選文本的事件元素信息,并按事件順序組織文本,形成對事件的整體描述,然后人工根據事件的描述信息判決是否是目標事件。由于本文涉及的文本一般較短,因此適合使用ACE的事件類別識別、事件元素提取方法。
算法具體步驟如下:
(1)將關鍵詞 W={w1,w2,…,wK}分成 2組:W1={w1,w2,…,wθ}和 W2={wθ+1,wθ+2,…,wK}。
(2)分別對W1和W2進行關鍵詞語義擴展,形成擴展詞向量 W′1和 W′2。
(3)利用擴展詞向量W′1對原始文本集進行模式匹配,得到匹配文本,然后在匹配文本的基礎上進行關聯關系分析,得到中間文本集。
(4)利用擴展詞向量W′2對中間文本集進行模式匹配,得到匹配文本,然后在匹配文本的基礎上進行關聯關系分析,得到待選文本集。
(5)在待選文本集的基礎上按照ACE框架判斷事件類別,提取事件信息,確認目標事件,將目標事件的文本、關聯關系存儲到歷史數據庫。
本文在以下實驗環境中對算法進行了測試。實驗平臺為Windows XP操作系統,系統配置為Intel(R)Core(TM)i7 -2600 CPU@3.4 GHz,內存4 GB,算法在Microsoft Visual Studio 2010環境下實現。測試目標事件是一個商業上關于物資發送-索賠的事件樣本,共包含12個具有關聯要素的文本;測試噪聲數據為4988個具有關聯要素的其他文本。關鍵詞語義擴展的訓練數據為北大CCL語料庫。在下面的測試結果中,事件群是指具有關聯關系的文本組成集合,例如12個目標文本就是一個事件群;事件群數量是指事件檢測結果中包含事件群的數量。
為了驗證算法效果,表3~表5分別給出了在單關鍵詞條件下,使用不同關鍵詞和不同擴展詞數量時的實驗結果,從實驗數據可以看出,由于算法使用了關鍵詞語義擴展,因此利用目標文本中未出現的詞作為關鍵詞時依然能夠發現目標事件,而且擴展詞數量越多,發現目標事件的概率越大;但是擴展詞越多會使運算量增大,且檢測結果中非目標事件群越多,本文推薦使用4個~6個擴展詞。

表3 目標文本中的詞作為關鍵詞的檢索結果

表4 目標文本外的詞作為關鍵詞的檢索結果(4個擴展詞)

表5 目標文本外的詞作為關鍵詞的檢索結果(6個擴展詞)
表6給出了使用含有2個詞的關鍵詞向量作為檢索條件時的實驗結果,而且在目標文本中不會同時出現關鍵詞向量中的詞或其擴展詞。如果按照正常的關鍵詞匹配,無法檢測到目標事件;由于本文算法采用了關鍵詞分組及2次匹配的方法擴展了關鍵詞作用域,相當于將事件群中的所有文本作為一個整體進行“與”關系的匹配,因而能夠檢測到目標事件,而且檢測結果中非目標事件群數量比單關鍵詞的結果顯著減少。

表6 關鍵詞向量檢索結果
本文研究具有關聯要素的中文文本事件檢測問題,通過關鍵詞語義擴展提高關鍵詞匹配的概率;通過關鍵詞分組、關聯關系分析和二次匹配實現了關鍵詞邏輯關系作用域的擴展,從而降低關鍵詞向量匹配的漏檢率;綜合上述方法提出的事件檢測算法能夠有效地從有關聯要素的中文文本中檢測到目標事件。實驗結果顯示,該算法能夠有效減少漏檢率,提高檢測率。
下一步將針對算法性能的定性分析、運算復雜度的簡化等問題開展研究,以提高其在實際應用中的使用效果。
[1]Ahn D.The Stages of Event Extraction[C]//Proc.of Workshop on Annotations and Reasoning About Time and Events.[S.l.]:ACM Press,2006:1-8.
[2]張先飛,郭志剛.基于觸發詞指導的自相似度聚類事件檢測[J].計算機科學,2010,37(3):212-220.
[3]張魯民,賈 焰,周 斌.基于情感計算的微博突發事件檢測方法研究[C]//第27次全國計算機安全學術交流會論文集.九寨溝,四川:[出版者不詳],2012:143-145.
[4]王穎穎,張 赟,胡乃靜.在線新事件檢測系統中的性能提升策略[J].計算機工程,2008,34(15):72-74.
[5]Linguistic Data Consortium.ACE(Automatic Content Extraction)Chinese Annotation Guidelines for Events[EB/OL].(2005-05-09).https://www.ldc.upenn.edu/Projects/ACE.
[6]付劍鋒,劉宗田,劉 煒,等.基于特征加權的事件要素識別[J].計算機科學,2010,37(3):239-241.
[7]將德良.基于規則匹配的突發事件結果信息抽取研究[J].計算機工程與設計,2010,31(14):3294-3297.
[8]姜吉發.一種跨語句漢語事件信息抽取方法[J].計算機工程,2005,31(2):27-29.
[9]李 瀟,羅軍勇,尹美娟.基于郵件通聯關系的郵箱用戶權威別名評估[J].計算機應用與軟件,2011,28(4):271-273.
[10]王昭龍,李 霞,許瑞芳.多關鍵詞查詢中LCA剪枝概念數的查詢擴展技術[J].計算機科學,2010,37(4):132-162.
[11]汪 洋,帥建梅.基于語義擴展模型的中文網頁關鍵詞抽?。跩].計算機工程,2012,38(22):163-166.
[12]杜金洋,易 河,楊 春.基于關鍵詞語義擴展的檢索策略[J].計算機應用,2009,35(6):1575-1577.