郭婷婷,劉嘉勇
(1.四川大學電子信息學院,成都 610065;2.四川大學網絡空間安全學院,成都 610065)
事件語料標注本質是事件提取,即從新聞報道等非結構化文本中提取出包含事件信息的要素,并以結構化形式呈現。事件抽取采用的方法主要有兩種,模式匹配和機器學習[1-2]。其中模式匹配是領域專家結合領域知識和語言知識構建目標信息的上下文約束環境及組成規則,抽取時通過各種模式匹配算法找出符合模式約束條件的信息,該方法準確率比較高,但是成本高而且領域移植性差。機器學習方法將事件抽取看成分類問題,人工干預較少,是目前常用方法,抽取結果的好壞取決于構建的分類器以及所選取的特征,構建的分類器需要訓練才能達到較好的效果,此時作為訓練文本來源的語料庫就很重要了。
目前常用的事件語料庫主要有自動內容抽取評測會議提供的ACE語料[3-4]、美國高級研究發展學會主辦的問題回答系統中的時間和事件的識別會議的Time?Bank語料[5]以及上海大學語義智能實驗室構建的中文突發事件CEC語料[6]。ACE評測會議將事件抽取這項任務定義為:識別特定類型的事件并進行相關信息的確定和抽取,關注的主要信息包括,事件的類型和子類型、事件元素角色等,ACE評測語料中定義了8個大的事件類型和33個事件子類,但是并不包括信息安全類事件,每種事件對應唯一的模板;TimeBank語料標注了事件、時間、時間指示詞以及事件和時間之間的關聯關系等它采用了一種改進的XML語言TimeML進行標注,更關注事件的時間信息。CEC語料采用XML語言作為標注格式,其中包含了事件(Event)標簽和其他5個事件要素:觸發詞(Denoter)、時間(Time)、地點(Lo?cation)、參與者(Participant)和對象(Object)。
與ACE和TimeBank語料庫相比,CEC語料庫的規模雖然偏小,但是它對語料的標注更全面,也與本文期望的信息安全事件語料中興趣點更貼合。目前國內缺少大規模的信息安全語料庫作為研究工作的支撐,本文在學習CEC語料庫標注規范基礎上,人工對語料進行標注。在傳統事件識別只利用詞匯、詞性信息構造特征向量的基礎上,引入詞與父節點的關系和語義角色來構造特征向量,采用CRF機器學習算法實現事件語料標注。
事件作為一種信息的表現形式,是指特定人、物在特定的時間,地點發生相互作用的客觀事實,通常是句子級的。現在還有一些跨篇章的事件抽取,針對的是以某個主題為中心的一組事件描述,但本文研究的標注方法致力于句子級的事件描述,對于篇章類的描述,首先會進行段落和句子的切分,然后再做事件要素的標注,事件要素就是事件中關注的興趣點,事件要素又包括觸發詞(Denoter)和事件元素(Time、Location、Par?ticipant、Object)。
中文突發事件語料庫(CEC)是由上海大學所構建,從互聯網上收集5類(交通事故、地震、恐怖襲擊、火災和食物中毒)突發事件的新聞報道作為生語料,然后再對生語料進行文本預處理、文本分析、事件標注以及一致性檢查等處理,最后生成的XML結構的標注結果。
對于一篇新聞報道,CEC語料標注方法首先將所有內容封裝到
中,文章標題標記為對CEC語料標注結果進行分析,CEC語料中出現的事件總和為5954,而觸發詞的個數也是5954,觸發詞和事件是一一對應的,如果一個句子中有觸發詞,則認為這是一個事件。利用LTP平臺對CEC生語料(未標注前的新聞文本)處理后,將得到的結果與CEC語料標注結果做比對,可以發現事件中觸發詞是動詞、名詞或其組合形式的個數是5548,在所有觸發詞中占比超過九成,所以在后續語料標注中詞性會作為標注模型的重要特征。
根據中央標準《信息安全技術信息安全事件分類分級指南》以及中央網興辦發布的《國家網絡安全事件應急預案》可知,信息安全事件是指由于人為原因、軟硬件缺陷或故障、自然災害等,對網絡和信息系統或者其中的數據造成危害,對社會造成負面影響的事件。可分為有害程序事件、網絡攻擊事件、信息破壞事件、信息內容安全事件、設備設施故障、災害性事件和其他事件。
信息安全事件和突發事件相比,特殊性在于信息安全事件中參與者可能不是傳統意義上的人,雖然部分事件描述中也有此類信息,例如事件中出現的攻擊人、組織,但所占比例較小。信息安全事件要素中的參與者(Participant)更偏向于軟件、供應商、應用程序名稱、硬件、操作系統等,例如“Twitter再現Windows 0 day漏洞”這樣的報道中,我們認為“Twitter”就是信息安全事件中關注的
所以在借鑒CEC語料對事件的標注規則基礎上,結合信息安全領域我們的關注點,對于事件標注保留了觸發詞和事件元素基本的特征,并選擇了信息安全領域新聞報道進行深入分析。其中,觸發詞(Denoter)是指在文本中能明確表示事件發生的詞語,事件其他元素包括事件的時間(Time)、地點(Position)、參與者(Participant,事件中參與主體或客體,可能是人、組織或軟硬件、操作系統等),其他對象(Object)。本文提出的信息安全事件語料標注方法包括三個部分分別是預處理,事件要素標注和XML結果生成和校驗,本文的重點在于中間的事件要素標注部分,標注流程如圖1所示。

圖1 標注流程
標簽,分句使用“。?!”等標點符號來做正則匹配,都比較容易,而且準確率較高,所以此處不做過多介紹。到了句子層級,本文采用哈爾濱工業大學開發的語言技術平臺(LTP)來完成初期的準備工作,該平臺目前在中文文本處理領域非常有影響力,提供包括中文分詞、詞性標注、命名實體識別、依存句法分析、語義角色標注等豐富、高效的自然語言處理技術。
將新聞文本通過LTP語言技術平臺處理過后,可以得到如圖2所示的分析結果。

圖2 LTP API分析結果
圖2中第一行是分詞結果,第二行是第一行對應分詞的id,第三行表示分詞對應結果的詞性,第四行是實體識別結果,第五行表示依存句法分析結果,第六行是該分詞父節點id,第七行表示分詞的語義角色。LTP中詞性標注集使用的是863標注集,命名實體識別采用的是O-S-B-I-E的標注形式,具體含義如表1表示。

表1 O-S-B-I-E標注含義
LTP平臺實體識別模塊目前主要識別人名(Nh)、地名(Ns)、機構名(Ni)三種實體,而給出的例子中沒有屬于這三種實體中的一種,所以實體識別結果全部都是‘O’;依存句法分析結果中出現的‘ATT’表示定中關系,‘ADV’表示狀中結構,‘SBV’表示主謂關系,‘HED’表示核心關系,即觸發詞所在的關系,是整個句子的核心;語義角色中包括核心語義角色和附加語義角色,A0-A5表示核心語義角色,A0表示動作的施事,A1表示動作帶來的影響,TMP是附加語義角色,表示時間,關于依存句法分析以及語義角色標注結果其他具體解釋可參考LTP使用文檔[8]。
(1)模型概述
在得到LTP對文本的分析結果后,將觸發詞和事件其他元素的標注看成是序列標注問題。序列標注常見的算法有隱馬爾科夫模型(HMM)、最大熵模型(ME)以及條件隨機場(CRF)模型[9]。假設模型輸入為X,輸出是一個序列Y=(yi)i∈V,隨機變量X和Y是聯合分布,P(Y|X)表示觀察序列和標記序列的條件概率模型,P(X)表示隱含的邊緣概率模型。
因為CRF相比于HMM沒有嚴格的獨立性假設,可以充分利用上下文信息,而且CRF統計了全局概率,考慮了數據在全局的分布,而不是僅僅在局部歸一化,解決了ME中的標記偏置問題,所以本文選用CRF模型對事件要素進行標注。
CRF是一種無向圖模型,對條件分布P(Y|X)進行建模。序列標注使用的是特殊的條件隨機場—線性鏈條 件 隨 機 場 。 其 數 學 定 義 是 :設 X=(x1,x2,...,xn) ,Y=(y1,y2,...,yn)都是線性鏈的隨機變量序列,若在給定隨機序列X的條件下,隨機變量序列Y的條件概率分布P(Y|X)滿足馬爾科夫性:

(2)特征選擇
特征選擇對于模型效果有著直接的影響,傳統事件識別只利用詞匯、詞性信息構造特征向量,通過對CEC語料分析可知,詞性和詞語所處的上下文環境很重要,詞的語義特征對于事件的描述也很關鍵,除了平面特征,句子結構也要考慮,所以本文使用的CRF模型選取的特征包括:
①候選詞及其詞性
②候選詞實體標注結果
③候選詞和父節點的句法關系
④候選詞的語義角色特征
舉個例子來說明特征構成。例如:“境外黑客組織“白象”蟄伏一段時間后,于今年3月上旬對國內發起攻擊。”假設“發起”作為候選詞,抽取特征為:
①“發起/v”
②“O”
③候選詞與父節點的句法關系是“HED”
④候選詞的語義角色特征即動詞
訓練語料是在LTP分析基礎上,人工對每個分詞進行標注,判斷其屬于關注的事件要素Denoter、Time、Location、Participant、Object中的哪個。
CRF模型的輸入如圖3所示。

圖3 CRF模型輸入格式
使用新聞文本的上述特征作為輸入后,可以得出最后一列特征的概率分布,即會得出一個分詞是Time、Denoter、Location、Object、Participant或 null的概率。如果用信息安全領域語料進行訓練,則該領域較常用的結構化表達和常見的詞語會使分詞被標記為其中一個標簽的概率大一些,本文選擇其中概率最大的作為該分詞最后的標注標簽。
本文最終的語料標注結果參照CEC語料,以XML形式表示,生成過程共包含以下幾步:
第一步:調用LTP API處理文本,設置返回結果格式為XML,如圖4所示。
第二步:將LTP分析結果以及人工標注結果整理成CRF模型要求的輸入形式,利用訓練好的CRF模型對新的語料進行標注
第三步:XML結果中
第四步:將CRF模型標注出的其他事件要素用相應的標簽標出,標記為null的詞不做處理;
第五步:在一個
為了保證標簽的正確嵌套,本文利用DTD對XML文件的結構和嵌套要素進行格式校驗。

圖4 LTP API的XML格式結果
(1)實驗數據
本文的數據源是收集自Tools網站的信息安全類新聞文本1060篇,對新聞摘要進行人工標注,將原始新聞文本做分句處理,之后利用LTP API對句子進行分析,將分詞的詞性、實體識別結果、與父節點的關系、語義角色以及人工標注的事件元素標簽融合構建CRF模型的特征向量。
(2)評價標準
本文使用自然語言處理中常采用的評價指標準確率P、召回率R和F值對模型的性能進行評價[6-7]。定義使用模型正確標注的事件要素個數為Nright,模型標注出的事件要素總個數為Ncrftag,人工標注的事件要素總個數為Npertag。因為目前沒有公開權威的對比語料,暫且認為人工標注的語料準確率比較高,計算召回率的時候,將模型標注和人工標注結果均值作為分母,各指標計算方式如下:

(1)實驗一信息安全事件要素識別
人工對于1060篇信息安全事件的新聞摘要進行標注,隨機選擇其中800篇將LTP分析結果和人工標注結果結合,作為CRF模型的特征向量用于訓練,這其中包含3489個事件,然后利用訓練好的模型對剩下的260篇做測試。測試語料中標注的事件要素個數統計如表2所示,實驗結果如表3所示。

表2 多特征CRF模型對信息安全新聞摘要中事件要素標注統計

表3 多特征CRF模型對信息安全新聞摘要事件標注實驗結果
由實驗結果可以看出,利用本文提出的多特征融合的CRF模型對信息安全事件中的事件要素提取F值都超過60%,說明該模型是有效的。其中Time要素結構比較單一,識別效果最好;Denoter識別效果也不錯,但是準確率不夠高,經分析可能原因是預處理結果不理想,例如“攻擊”一詞在普通事件中常作為動詞,就是一個事件中的Denoter,如“李某瘋狂攻擊他人”,而信息安全事件中攻擊經常是名詞,通常是事件要素中的 Object,如“對國內發起攻擊”或者“XSS攻擊”,這種不足可以通過構建信息安全領域觸發詞表改進;Partic?ipant和Object成分復雜,尤其Participant標簽中涵蓋內容過多,所以模型識別效果還有較大提升空間。
(2)實驗二與只使用常用特征的CRF模型標注作對比實驗
為了更客觀地說明多特征融合的CRF模型的有效性,選用常用特征CRF模型作對比實驗。實驗語料和步驟與實驗一基本相同,只是構建特征向量時不加入句法和語義角色特征。多特征融合的CRF模型實驗結果如實驗一中表3所示,只使用常用特征的CRF模型對事件標注要素個數統計如表4所示,實驗結果如表5所示,對比實驗結果如圖5所示。

表4 常用特征CRF模型對信息安全新聞語料要素標注統計

表5 常用特征CRF模型對信息安全新聞事件標注實驗結果

圖5 多特征CRF模型和簡單CRF模型對比圖
分析實驗結果,本文提出的CRF模型相比較只使用常用特征的CRF模型而言,Denoter的F值提升12.3%,Time的F值提升17.77%,Location的F值提升11.91%,Participant的F值提升10.82%,Object的F值提升21.26%。由對比結果圖可直觀看出,加入句法特征和語義角色特征后模型對每種事件要素的識別率都有了顯著地提高。
本文提出一種將信息安全新聞文本標注為事件語料的方法,提高了語料標注的效率。其中使用的CRF模型在構建特征向量時,除了常用特征外,還加入了候選詞與其父節點的句法關系特征以及語義角色特征,實驗證明有一定的效果。對于構建大規模語料庫時,這種方法可以作為人工標注的前期工作,減少人力成本,加快標注速度。
當然本文提出的方法還有很大改進空間,針對信息安全領域的觸發詞和事件元素識別,后續可以考慮構建自定義的信息安全領域事件要素詞典,然后和機器學習的模型相結合,進而識別出事件所屬類別。除此之外,一篇語料會存在多個事件,事件之間會存在語義上的關系,這對于后續的事件分析很重要,現在的標注方案沒有將其考慮在內,可以在此方面繼續做深入研究。