廖 濤 付維成 方賢進
(安徽理工大學計算機科學與工程學院 安徽 淮南 232001)
隨著互聯網特別是移動互聯網的高速發展,人們越來越多地通過網絡來獲取資訊。網絡中充斥著海量的新聞文本,而這些新聞文本中又包含著許許多多的事件。
定義1事件(Event),指的是在某個特定的時間和環境下發生的、由若干角色參與、表現出若干動作特征的一件事情[1]。
對新聞文本中的事件進行處理與分析,在自動文摘[2-3]、文本分類[4]等領域有著重要應用。但是,計算機并不能直接識別新聞文本中的事件,因而將新聞文本中的事件抽取出來顯得尤為重要。
事件抽取是信息抽取的子任務,目的是將非結構化文本中的事件信息以結構化的形式抽取出來,便于后續對事件進行處理與分析。事件抽取一般包括事件識別和事件要素識別兩個部分,本文的研究內容是事件識別。作為事件抽取的子內容,事件識別的任務是找到文本中的事件觸發詞,它對后續的事件抽取效果有著重要影響。所謂事件觸發詞,它唯一、清晰地標識一個事件,以動詞和名詞居多。例如,在“5月12日14時28分,四川發生8.0級地震”這句話中,“地震”是事件觸發詞,它標識了一個地震類事件。此外,“5月12日14時28分”是事件發生的時間,“四川”是事件發生的地點,它們屬于事件要素。
現有的事件識別方法多從鄰近詞、詞性、依存關系等特征展開研究工作,并取得了一定的效果,但目前對單一特征的利用還不夠充分,在一定程度上影響了基于多特征的事件識別方法的效果。針對這個問題,本文通過構建包含正負關聯詞特征、正負詞性特征以及正負依存關系特征的觸發詞表,提出了一種基于正負加權的事件識別方法。首先,將前后位置詞與依存句法上的父節點詞及子節點詞結合在一起,定義了一種新的特征——關聯詞特征,與已有的前后位置詞特征、詞性特征、依存關系特征相比,使用關聯詞特征的事件識別方法效果更好。然后,根據單一特征所屬的詞是否為觸發詞將特征分為正特征或負特征,并將正負特征結合起來構建觸發詞表,將候選詞及其特征在觸發詞表匹配,計算出正負權重,結合正負權重進行觸發詞判定,提升單一特征在事件識別時的作用。在此基礎上,將正負關聯詞特征、正負詞性特征以及正負依存關系特征結合起來進行觸發詞識別,進一步提升事件識別效果。實驗結果表明,基于正負加權的事件識別方法得到了比較理想的效果。
現有的事件識別方法主要包括基于規則的方法和基于機器學習的方法。
在基于規則的方法領域,趙妍妍等[5]通過使用同義詞詞林對觸發詞進行擴展,擴大了觸發詞表的規模,有效緩解了數據正反比例不平衡的問題。張賀等[6]利用語言知識對語料庫中的文本進行信息單元融合,有效緩解了切分粒度過細問題,降低了事件識別的難度。Patwardhan等[7]提出了一種將文本相關區域的發現與抽取模式的應用這兩個任務分離的信息抽取系統,取得了不錯的效果。李培峰等[8]根據同一篇文檔中關聯事件間所具有的語義一致性來進行事件間的推理,該方法對貧信息事件實例中的事件觸發詞識別具有良好的效果。陳亞東等[9]通過使用框架語義將待測觸發詞泛化為框架類型,并以此為特征,結合框架類型和事件類型之間映射的概率進行事件識別,提高了召回率。Liao等[10]通過使用文檔級信息來提高事件識別的性能,他們不僅使用同一類型事件的信息,也使用其他類型的事件信息來做預測或者是消除給定事件的歧義性,提高了句子級基準事件識別系統的性能。
在基于機器學習的方法領域,Ahn等[11]將最近鄰分類器和最大熵分類器結合在一起進行事件識別,取得了不錯的效果。付劍鋒等[12]通過使用依存分析挖掘詞語之間的句法關系,并以此為特征在SVM分類器上進行事件識別,得到的結果優于傳統的方法,在此基礎上結合多特征進行事件識別,提高了F1值。侯立斌等[13]通過使用LDA模型對詞語聚類,緩解了詞性特征過擬合問題,同時使用CRFs模型進行觸發詞識別,緩解了中文分詞和標注的觸發詞邊界的不一致性。Nguyen等[14]使用卷積神經網絡(Convolutional Neural Networks, CNN)進行事件識別,該方法克服了富特征集中特征工程的復雜性和生成這些特征的前一階段的誤差傳播。Liu等[15]通過有監督的注意力機制,利用論元信息進行事件識別,提高了F1值。張亞軍等[16]將待測觸發詞轉化為特征向量集,并通過混合監督的深度信念網絡訓練分類器,該分類器提高了事件識別效果。Liu等[17]通過上下文注意力機制,利用多語言數據中的一致性信息以及多語言數據傳遞的補充信息,緩解了數據稀疏問題和單語模糊問題。
從以上研究可以看出,無論是基于規則的事件識別方法,還是基于機器學習的事件識別方法,大都要先獲取特征,如鄰近詞、詞性和依存關系等,在此基礎上展開后續的研究工作。但是,目前對單一特征的利用還不夠充分,在一定程度上影響了基于多特征的事件識別方法的效果。針對這個問題,本文通過構建包含正負關聯詞特征、正負詞性特征以及正負依存關系特征的觸發詞表,提出了一種基于正負加權的事件識別方法。
本文的研究工作是進行事件識別,即找出文本中的事件觸發詞,主要包括四個部分:預處理、構建特征集合、構建觸發詞表和觸發詞識別,如圖1所示。

圖1 基于正負加權的事件識別系統框架圖
預處理的主要功能是將語料庫中已標注新聞文本解析為原始新聞文本,即去除掉原有的XML標簽得到純文本,然后通過自然語言處理(Nature Language Processing,NLP)工具對原始新聞文本進行分詞、詞性標注、依存句法分析。構建特征集合是將經預處理得到的各個詞的關聯詞、詞性以及依存關系找出來,作為事件識別時的特征,并將這三個特征組合在一起形成各個詞的特征集合。構建觸發詞表主要是對語料庫訓練集中的所有詞進行遍歷,根據該詞是否為觸發詞將其特征集合中的所有特征評定為正特征或負特征,之后存入到觸發詞表對應詞項的正特征集合或負特征集合中。在整個遍歷完成后,要對觸發詞表進行修剪,以去除掉冗余內容,完成對觸發詞表的構建。觸發詞識別是對語料庫測試集中的所有詞進行遍歷,若當前詞在觸發詞表中有對應的詞項,將該詞特征集合中的特征在該詞對應詞項的正特征集合和負特征集合中進行匹配,分別得到正權值和負權值,最后根據正負權值的差值判定當前詞是否為觸發詞。
本文使用的語料庫是由上海大學語義智能實驗室所構建的中文突發事件語料庫(Chinese Emergency Corpus,CEC)2.0版本。CEC 2.0采用XML作為標注語言,包括地震(62篇)、火災(75篇)、恐怖襲擊(49篇)、食物中毒(61篇)和交通事故(85篇)五大類共計332篇已標注的新聞文本。CEC 2.0雖然規模不大,但對事件和事件要素的標注卻十分全面,其中Event標簽用于表示事件,Denoter標簽用于描述事件的觸發詞,Time、Location、Participant和Object標簽用于描述事件要素。
此外,本文使用的NLP工具是哈爾濱工業大學社會計算與信息檢索研究中心獨立開發的語言技術平臺[18](Language Technology Platform,LTP),該工具可以為自然語言文本提供一整套自底向上的豐富且高效的中文語言處理模塊(包括詞法、句法、語義等6項中文處理核心技術)。本文主要使用LTP中的分詞、詞性標注和依存句法分析對CEC 2.0中的文檔進行預處理,為后續操作打下基礎。
對于語料庫中的XML文檔,預處理首先會對其Denoter標簽(該標簽用于描述事件的觸發詞)中的內容做好標記;然后,將XML文檔解析為不含標注的原始新聞文本;接著,通過LTP對原始新聞文本進行分句、分詞,并借助之前做的觸發詞標記記錄下觸發詞在句子中的索引,為后續的觸發詞判定提供依據;最后,通過LTP進行詞性標注和依存句法分析。表1給出了一個文檔片段經預處理的實例。

表1 文檔片段預處理實例
表1中,觸發詞索引用于記錄觸發詞的索引值,實例中“死亡”是觸發詞,它的索引值是6。詞性標注的結果與分詞的結果是一一對應的,例如實例中“死亡”的詞性是“v”,即代表動詞。依存句法分析的結果同樣與分詞的結果一一對應,但與每一個詞對應的內容包括兩個部分:前面的數字代表父節點詞的索引,后面的英文縮寫代表當前詞與父節點詞之間的依存關系。以實例中第一個“3:ADV”為例,冒號前面的“3”代表“目前”這個詞的父節點詞是索引值為3的“造成”,而冒號后面的“ADV”表示“目前”和“造成”之間的依存關系是狀中關系。
在預處理之后,即可以進行特征集合的構建,特征集合構建包括關聯詞特征集合構建、確定詞性特征以及確定依存關系特征三個部分。
定義2事件觸發關聯詞,簡稱關聯詞,包括一個詞在依存句法中的父節點詞(核心詞的父節點詞為空)和子節點詞以及該詞在句子中的前后位置詞,但不包括標點符號。
首先,所謂關聯詞特征集合構建,就是將一個詞在其所在句子中的所有關聯詞找出來,組合在一起,形成一個集合。若用Srel表示關聯詞特征集合,而Wpar表示依存句法上的父節點詞,Wchi表示子節點詞,Wpre表示前位置詞,Waft表示后位置詞,Wwp表示標點符號,則關聯詞特征集合可表示為:
Srel=(WparUWchiUWpreUWaft)-Wwp
(1)
例如,在表1中,“死亡”這個詞在依存句法上的父節點詞Wpar為{“造成”},子節點詞Wchi為{“人”},而它在句子中的前位置詞Wpre為{“人”},后位置詞Waft為{“。”},這里的標點符號Wwp為{“。”}。根據式(1),可得關聯詞特征集合Srel為{“造成”,“人”}。
其次,確定詞性特征是指找到一個詞的詞性標注結果作為特征,這里用P代表該特征。例如,在表1中,“死亡”這個詞的詞性為詞性標注結果中與該詞有相同索引的“v”,即代表動詞。
然后,確定依存關系特征是指找到一個詞作為依存句法中子節點詞時的依存關系作為特征,這里用Ras_chi代表該特征。因為每個詞在一個句子的依存句法中只會有一個父節點詞,即每一個詞在一個句子中只會作一次依存句法上的子節點詞,所以確定依存句法關系時得到的結果唯一。例如,在表1中,“死亡”這個詞在依存句法中作為子節點詞時的依存關系特征Ras_chi為“VOB”,即動賓關系。
最后,將關聯詞特征集合Srel、確定的詞性特征P以及確定的依存關系特征Ras_chi結合在一起,形成一個特征集合Sfea,即完成特征集合的構建:
Sfea=SrelU{P}U{Ras_chi}
(2)
例如,在表1中,“死亡”這個詞的關聯詞特征集合Srel為{“造成”,“人”},詞性特征P為“v”,依存關系特征Ras_chi為“VOB”,故其特征集合Sfea為{“造成”,“人”,“v”,“VOB”}。
預處理和構建特征集合是在整個語料庫(包括訓練集和測試集)上進行的,而構建觸發詞表只在訓練集上進行。本文中,觸發詞表是以鍵值對(key-value)的形式進行存儲,這里的關鍵詞(key)指的是潛在觸發詞,即可能作為觸發詞的詞,而值(value)包括正特征集合和負特征集合兩個部分。對于值中的這兩個部分,它們里面的內容同樣是以鍵值對的形式進行存儲,為了和前面的有所區別,本文稱這里的關鍵詞為二級關鍵詞。以正特征集合為例,它是指潛在觸發詞作為觸發詞時的特征,存儲時以特征集合中的特征作為二級關鍵詞,其值則是該特征出現次數的統計。
構建觸發詞表時,以句子為單位進行處理。首先,對句子中的各個詞進行遍歷,根據觸發詞索引判斷正在遍歷的詞是否為觸發詞。然后,根據當前詞是否為觸發詞將該詞特征集合中的特征添加到觸發詞表對應的位置,完成一個構建流程。通過循環對訓練集中所有文檔中的句子進行相同的操作,初步完成觸發詞表的構建。最后,對觸發詞表進行修剪,即刪除掉正特征值都為空的鍵值對。因為本文是在正特征基礎上引入負特征來增強事件識別的,若只有負特征無法完成觸發詞識別,因而觸發詞表中正特征值都為空的鍵值對要被刪除掉,以去除掉無關、多余內容,完成觸發詞表的構建。觸發詞表構建算法的基本流程如下:
Step1設當前正在處理的詞為w,將w與正在構建中的觸發詞表中的關鍵詞進行對比,若已存在與w相同的關鍵詞,則執行Step2;若不存在,則先在觸發詞表中創建該關鍵詞,然后執行Step2。
Step2將w的索引與觸發詞索引對比。若相同,則執行Step3;否則,執行Step4。
Step3將w特征集合中的特征添加到關鍵詞的正特征集合部分作為二級關鍵詞,若該二級關鍵詞已存在,則將其值加1;若不存在,則先創建此二級關鍵詞,并將其值初始化為1。
Step4Step4與Step3處理過程類似,不同的地方是將特征添加到關鍵詞的負特征集合部分。
Step5對句子中除標點符號外的各個詞依次執行Step1至Step4的操作。
Step6對訓練集中所有新聞文本中的句子執行Step5的操作,完成后得到一個初步的觸發詞表Set0。
Step7對Set0進行修剪,即將正特征集合部分都為空的關鍵詞及其值從觸發詞表刪除,得到最終的觸發詞表Set。
構建好的觸發詞表,里面的內容是一個個的鍵值對,每一個鍵值對中的鍵為潛在觸發詞,值為該潛在觸發詞正負特征出現的次數。因而,可以認為觸發詞表是對訓練集中觸發詞及其正負特征的一個統計。這里以“燒傷”為例,展示其在觸發詞表中的內容,并分別指出該詞正特征集合部分和負特征集合部分的內容,見表2。

表2 觸發詞表中關鍵詞“燒傷”的內容
在構建好觸發詞表后,可在測試集上進行觸發詞識別。將測試集中各個候選詞及其特征集合一起在觸發詞表中進行匹配,并根據式(3)和式(4)分別計算出各個候選詞c的正權值posc與負權值negc,然后根據式(5)求出各個候選詞c的最終權值wc,最后根據匹配結果或最終權值wc來判斷候選詞c是否為觸發詞。
(3)
(4)
(5)
式(3)中:posc表示候選觸發詞c的正權值;nc表示候選觸發詞c特征集合中特征的個數;tp(ci)表示候選觸發詞c的第i個特征在觸發詞表正特征部分匹配成功時該特征在觸發詞表中的統計值,其值在自然數范圍內。式(4)中:negc表示候選觸發詞c的負權值;nc與式(3)中的nc意義相同;tn(ci)表示候選觸發詞c的第i個特征在觸發詞表負特征部分匹配成功時該特征在觸發詞表中的統計值,其值在自然數范圍內。式(5)中:wc為候選觸發詞c正權值和負權值的差值,也就是最終權值。觸發詞識別算法的基本流程如下:
Step1設當前正在進行觸發詞識別的候選詞為c,將c在觸發詞表中進行匹配。若存在與c相同的關鍵詞,找到該關鍵詞的值并設為v,同時設正權值posc=0,負權值negc=0,然后執行Step2;否則,將c判定為非觸發詞。
Step2將候選詞c特征集合中的各個特征i在v的正特征集合部分進行匹配。每當一個特征i與正特征集合部分中的二級關鍵詞匹配上時,將二級關鍵詞的值賦給tp(ci),否則tp(ci)的值為0。得到所有特征的tp(ci)值后,根據式(3)計算候選觸發詞的正權值posc。
Step3將候選詞c特征集合中的各個特征i在v的負特征集合部分進行匹配。每當一個特征i與負特征集合部分中的二級關鍵詞匹配上時,將二級關鍵詞的值賦給tn(ci),否則tn(ci)的值為0。得到所有特征的tn(ci)值后,根據式(4)計算候選觸發詞的負權值negc。
Step4根據式(5)計算出wc。若wc大于等于0,將該候選詞c判定為觸發詞;否則,將該候選詞c判定為非觸發詞。
通過觸發詞識別算法找到的觸發詞要與預處理時得到的觸發詞索引進行比對,以此來判斷識別結果是否正確并進行統計,為下一步事件識別效果評測做準備。
采用Anaconda版本的Python 3.6作為實驗工具,使用CEC 2.0作為語料庫,使用LTP的Python版本pyltp作為NLP工具,計算機配置為Intel Core i5-3337U CPU@1.80 GHz,8 GB內存。實驗時,將CEC 2.0語料庫分為訓練集和測試集兩部分,它們的比例為3∶1。先通過訓練集構建出觸發詞表;然后對測試集中的所有詞進行觸發詞識別,并統計通過本文方法識別出的觸發詞數Dr、識別正確的觸發詞數Dt和測試集中原本標注的觸發詞數Da;最后計算出精準率P、召回率R以及F1值來評價觸發詞識別的效果,計算方法如下:
(6)
(7)
(8)
實驗以使用詞特征進行事件識別的方法為基準,即以詞本身為特征,只要候選觸發詞出現在觸發詞表就將該候選詞判定為觸發詞,否則判定為非觸發詞。對比實驗1在基準方法上分別加入不同的特征來輔助觸發詞識別,以此驗證本文自定義的關聯詞特征在事件識別時效果的好壞。對比實驗2在基準方法上分別加入不同的特征并結合正負特征加權進行事件識別,通過和使用相同特征但未結合正負特征加權的事件識別方法進行對比,以此驗證正負加權方法對使用單一特征的事件識別方法效果影響的好壞。對比實驗3在基準方法上同時加入多個特征:關聯詞特征、詞性特征以及依存關系特征,并結合正負特征加權進行觸發詞識別,通過和使用單一特征的正負加權方法以及部分已有的事件識別方法進行對比,驗證本文事件識別方法效果的好壞。
為了驗證自定義的關聯詞特征對事件識別效果影響的好壞,我們設置了一組對比實驗。實驗以詞特征進行事件識別為基準,然后分別將前后位置詞特征、詞性特征、依存關系特征以及關聯詞特征加入到觸發詞表輔助觸發詞識別,通過式(3)分別計算正權值posc,根據posc是否大于0進行觸發詞判定,完成對比實驗1。
對比實驗1的結果見表3。由表3可知,在引入前后位置詞特征后事件識別的F1值反而比基準下降了1.37%,說明該特征對事件識別的效果有消極的作用。而詞性特征的引入使得F1值雖比基準有所提升,但也僅提升了1.23%,說明該特征對事件識別的效果影響有限。依存關系特征的引入使得事件識別的查全率降低的同時也提高了精準率,最終F1值較基準提高了4.54%,說明依存關系特征對事件識別有較好效果。而本文自定義的關聯詞特征與依存關系特征相比,雖然降低了查全率R,但也進一步提升了精準率P,使得最終的F1值較基準提高了4.81%,達到了表3中最高的68.85%,說明關聯詞特征和依存關系特征一樣,對觸發詞識別有較好效果。

表3 基準加入不同特征時的結果對比 %
由對比實驗1可以看出,通過使用關聯詞特征輔助觸發詞識別,雖然使得F1值達到了68.85%,但顯然還不夠理想。為了進一步提升單一特征對事件識別的作用,本文根據特征所屬的詞是否為觸發詞將特征分為正特征或負特征,并將正負特征結合起來構建觸發詞表。之后將候選觸發詞在觸發詞表匹配,根據式(3)計算正權值posc,根據式(4)計算負權值negc,再根據式(5)計算最終權值wc來進行觸發詞識別。為了驗證正負加權方法的效果,在基準方法上分別加入前后位置詞特征、詞性特征、依存關系特征以及關聯詞特征,結合正負特征加權進行觸發詞識別,并和使用相同特征但未結合正負特征加權的事件識別方法進行對比,完成對比實驗2。
對比實驗2的結果見表4。由表4可知,通過使用正負加權的方法,所有單一特征對事件識別的效果都有不同程度的提升,原因在于同一個詞,既有作為觸發詞的情境,也有作為非觸發詞的情境,甚至有可能作為非觸發詞的情境多于作為觸發詞的情境。此時,若只考慮該詞作為觸發詞時的特征進行觸發詞識別,很可能會產生不好的識別效果。而正負加權的方法能充分考慮正反兩個方面的情況,更符合真實的情境,因而更加充分地發揮單一特征在事件識別時的效果。其中,提升最大的是前后位置詞特征,相較于普通的前后位置詞特征方法,使用正負前后位置詞特征的方法的F1值提高了11.18%。而使用正負依存關系特征的事件識別方法的F1值最高,達到了77.80%。因此,基于正負加權的事件識別方法對單一特征作用的提升是明顯的,且最后的實驗結果也是理想的。
表4 基準加入不同特征并結合正負加權方法結果對比%

方法精準率P查全率RF1值詞特征(基準)50.7386.8564.04基準+前后位置詞特征74.4954.0962.67基準+正負前后位置詞特征68.3880.2773.85基準+詞性特征52.3586.6465.27基準+正負詞性特征76.1172.6874.36基準+依存關系特征61.3277.7968.58基準+正負依存關系特征78.0977.5277.80基準+關聯詞特征68.4469.2668.85基準+正負關聯詞特征72.5579.1375.70
為了進一步提升事件識別的效果,本文將正負關聯詞特征、正負詞性特征以及正負依存關系特征結合起來進行觸發詞識別,即觸發詞表中每個關鍵詞的值包括正特征集合和負特征集合兩部分,觸發詞識別時先匹配,然后根據式(3)和式(4)分別計算正權值posc與負權值negc,再根據式(5)計算最終權值wc來進行觸發詞判定。為了驗證該方法的效果,將該方法與只使用單一特征的正負加權方法以及已有的事件識別方法進行了對比,完成對比實驗3。
對比實驗3的結果見表5。由于語料庫選擇的不同、預處理方式的不同、甚至是同一語料庫測試集和訓練集中文檔選取的不同,都會對事件識別結果產生很大的影響。而目前在事件識別領域還沒有一個規范、開放、統一的評測體系,因而無法完全客觀公正地比較各個方法的優劣,只能在一定程度上反映某個方法的有效性。首先,本文方法4是將本文方法1、本文方法2以及本文方法3進行了結合。由表5可知,在本文的4個方法中,方法4在精準率P上相較于其他3個方法有較大提升,在查全率R上較方法1和方法3有一定下降,較方法2有一定上升,而79.17%的F1值為4個方法最高。然后,與已有事件識別方法相比,本文方法4的精準率P、查全率R以及F1值都是最高的。雖然與本文所列舉的已有的4種事件識別方法中效果最好的文獻[8]相比提升不是很大,但在一定程度上反映本文方法的有效性。通過對比實驗3的結果可以看出,基于正負加權的事件識別方法取得了比較理想的效果。

表5 本文方法與已有事件識別方法對比 %
本文針對目前在事件識別領域對單一特征的利用還不夠充分的問題,從正向特征和反向特征兩個方面出發,通過構建包含正負特征的觸發詞表,提出一種基于正負加權的事件識別方法。通過實驗可知,關聯詞特征和依存關系特征對事件識別有較好的效果,而基于正負加權的方法使得單一特征在事件識別時的作用提升明顯。最后,將多種特征結合正負加權方法進行事件識別,取得了比較理想的結果。然而,本文方法以詞特征輔助事件識別為基準,無法找到在訓練集中未曾出現過的觸發詞。同時,本文提出的多特征的正負加權方法僅僅是對單一特征的正負加權方法的簡單疊加,相較于最好的單一特征正負加權方法,在F1值上僅提升了1.37%,未能充分發揮基于多特征的正負加權方法的作用。因此,下一步的工作是將本文方法與深度學習的方法相結合,提高本文方法的通用性,并進一步挖掘基于多特征的正負加權方法在事件識別時的潛力。