張 萌, 陳佳惠, 孫然然, 李曉璐, 朱廣宇*
(1.北京交通大學, 北京市城市交通信息智能感知與服務工程技術研究中心, 北京 100044; 2.北京交通大學, 綜合交通運輸大數據應用技術交通運輸行業重點實驗室, 北京 100044)
城市軌道交通安全事件是對歷史的城市軌道交通突發安全事故的真實記述,詳細地描述了突發事故的發生、發展過程,并包含了大量客觀事物及其狀態變化信息[1]。城市軌道交通安全事件案例是指在事件發生之后,城軌交通的運營管理相關部門對所發生的事件進行整理所形成的文檔。合理地利用安全事件案例,會對輔助應急決策的制定產生積極的作用。目前,中國軌道交通運營商存儲了大量的安全事故案例,但大多以自由化或半自由化文本的形式存儲在數據庫中,使用率較低。為了有效地利用安全事件案例,應將安全事件構成要素進行結構化表示,所以需對安全事件案例進行信息抽取。
信息抽取是利用自然語言處理等方法對文本進行分析,提取用戶需要的實體、關系和事件,然后通過結構化處理將信息抽取結果以固定格式輸出[2]。而對安全事件案例進行信息抽取,則是對安全事件構成要素的信息進行提取。目前,主要有兩種信息抽取方法:基于規則的信息抽取方法和基于統計的信息抽取方法[3]。基于規則的信息抽取方法具有較高的準確率,但手工編寫抽取規則的過程復雜耗時,目前已被應用到許多領域。余晨等[4]使用基于規則的信息抽取方法對海事信息進行抽取,將海事事故轉化為結構化的數據,為安全水平評估和風險措施的有效性驗證提供了高效的數據支撐。丁晟春等[5]使用基于規則的信息抽取方法對動物衛生事件輿情信息進行抽取,為觀察中外動物衛生動態和提高監測人員的工作效率提供思路。熊志斌等[6]使用基于規則的信息抽取方法對網頁中的旅游突發事件信息進行抽取,有利于監管部門把握事故社會輿情。與基于規則的信息抽取方法相比,基于統計的信息抽取方法不依賴于所抽取信息的內容和格式,但是需要大量的標注語料,否則會出現嚴重的數據稀疏性問題[7]。肖曉霞[8]使用條件隨機場(conditional random field,CRF)、隱馬爾可夫模型(hidden Markov model,HMM)等對中醫臨床病例文本進行癥狀術語提取,可對癥狀數據進行規范化、標準化的管理。李中仁[9]使用CRF模型對人物信息進行抽取,為設計人物情報可視化分析系統提供數據支持。兩種抽取方法各有優劣,綜合考慮城市軌道交通安全事件案例內容的專業性、規律性與實驗案例的數量,選擇使用基于規則的信息抽取方法對安全事件案例進行信息抽取。
如何將信息抽取結果進行簡明、高效的結構化表示同樣為信息抽取領域的研究熱點。近年來,基于知識元的信息表達方法引起了研究人員的關注。知識元這一概念由美國情報學家弗拉基米爾在20世紀70年代末提出,是不能分割的最小的獨立知識單位,具有獨立性、完整性、鏈接性、可組合性、可認知性和不可再分性等特點[10]。王延章[11]將知識元應用在模型領域,提出了共性知識元模型,對現實世界中的各種客觀事物進行抽象表示。在應急領域中,已取得一些研究成果。王寧等[12]基于共性知識元理論將突發事件以知識元為基礎進行表示和存儲,并提出了基于應急知識元體系的應急案例存儲模式。劉佳琪[13]基于共性知識元模型理論,對應急案例進行信息抽取及結構化表示,并提出了基于知識元的應急案例相似度計算方法。陳湧[2]基于共性知識元模型理論,提出了基于事件知識元和承災體知識元的突發事件案例表示方法,實現了以信息抽取結果為檢索依據的突發事件案例檢索。
目前,針對城市軌道交通安全事件案例的信息抽取及表示方法研究均較少。于浩恬等[14]對城市軌道交通安全事件發展階段進行劃分,并基于知識元理論對事件信息進行結構化表示,但安全事件信息的處理依賴于人工整理,效率低下。王莉[15]使用基于規則的信息抽取方法對城市軌道交通施工事故案例進行信息抽取,并基于知識元理論對案例信息進行統一表示與存儲,但僅對一種城軌安全事件類型進行分析,使用的抽取規則及案例表示方法不具有泛用性。綜上所述,現提出一種城市軌道交通安全事件的信息抽取方法和共性知識元表示模型,實現了安全事件的半自動化信息抽取及其結果的結構化表示,以期為突發事故時的應急決策制定提供高效的數據支撐。
對大量的城市軌道交通安全事件案例進行閱讀與分析后,發現城市軌道交通安全事件案例文本的表達方式具有較強的規律性,描述城市軌道交通安全事件的關鍵信息有時間、地點、事故類型、原因和影響。上述關鍵信息的常見表達方式如下。
(1)時間:安全事件發生的時間,通常包括年、月、日,如“1994年4月28日”。
(2)地點:安全事件發生的地點,常用表達方式包括國家、城市、線路、站點,如“韓國大邱”“北京地鐵機場線”。
(3)事故類型:安全事件的事故類型,包括火災、爆炸、毒氣、踩踏、設備故障、列車脫軌、列車相撞、信號故障、自然災害和施工事故。
(4)原因:造成安全事件的原因,表達方法多樣,常見的表達方法有“由……引起”“由……造成”等。
(5)影響:安全事件造成的影響,包括人員傷、亡數量和對地鐵線路運營造成的影響,如“造成21人死亡”“全線停運2 h”等。
通過分析城市軌道交通安全事件案例內容的規律性,可將其用共性知識元模型進行簡明的結構化表示。
共性知識元模型由王延章[11]提出,由對象知識元模型Km、屬性知識元模型Ka和關系知識元模型Kr組成。將共性知識元模型引入應急管理領域,可得到應急案例知識元表示模型C,由致災因子知識元模型H、承災體知識元模型L和孕災環境知識元模型E組成[16],即
C=(H,L,E)
(1)
致災因子知識元模型H是對安全事件發生或發展起推動作用的因素;承災體知識元模型L是致災因子作用的對象及其具體屬性;孕災環境知識元模型E是災害發生、發展時所處環境的集合。
上述共性知識元模型側重于直觀表示出事故的原因及發生時的環境,不能直接表示事故的結果及造成的影響。如要將城市軌道交通安全事件案例應用于城市軌道交通應急決策管理中,除事故的原因與發生環境外,城市軌道交通安全事件案例的事故類型、事件結果和事件影響同樣對制定應急決策有著重要輔助作用。而且,由于城市軌道交通安全事件案例的復雜性和多樣性,也存在著承災體知識元模型中描述的致災因子作用的對象及其具體屬性很難獲得的問題。
綜上所述,為了更好地將共性知識元模型應用于城市軌道交通安全事件案例,對現有共性知識元模型進行改進,改進后的城市軌道交通安全事件案例的共性知識元模型CURRT表示為
CURRT=(H,E,R)
(2)
H=(anthropic factor;natural factor)
(3)
E=(naturalf environment:weather;
social environment:local,time)
(4)
R=(type,casualties,property loss)
(5)
致災因子知識元模型H可細分為自然致災因子和人為致災因子;孕災環境知識元模型E為突發事件案例發生發展時所處的環境因素的集合,包含自然環境和社會環境,如地點、時間、天氣條件等;災害結果知識元模型R為突發事件案例后果的集合,包括事故類型、人員傷亡、財產損失等。
使用的案例是通過網絡爬蟲得到的自由文本,在作為實驗數據使用前,需進行相應的預處理,包括去除多余換行符和空格符、將大寫數字轉換為阿拉伯數字等。案例處理好后需存在TXT文件中方便程序進行調用。
使用Python語言,通過基于規則的信息抽取方法對安全事件案例進行抽取,使用的正則表達式符號及其功能描述如表1所示。抽取規則的構建步驟如下。

表1 正則表達式規則元字符及其功能描述
(1)對城市軌道交通安全事件案例進行分詞及詞性標注。
(2)分析待抽取案例的句子的特點,總結出相應知識元屬性的抽取規則。
(3)根據抽取規則編寫正則表達式。
(4)檢驗編寫的正則表達式,在實例驗證中不斷完善知識元屬性的抽取規則。
通過上述步驟構建的部分知識元屬性的抽取規則示例如下:
(1)時間:d{4}年d{1,2}月d{1,2}日|d{4}年d{1,2}月d{1,2}號|d{1,2}月d{1,2}日|d{1,2}日d{1,2}時d{1,2}分| |d{1,2}點d{1,2}分……
(2)傷亡人數:d{1,5}人.{1,30}?受傷|造成d{1,5}人死亡|造成d{1,5}人受傷|致使d{1,5}人死亡|致使d{1,5}人受傷……
(3)影響:約.{1,20}出行/v受到/v.{1,10}?影響| .{1,7}?地鐵/n.{1,20}?停運/v……
城市軌道交通安全事件案例的信息抽取主要分為文本預處理、詞庫構建、分詞及詞性標注、信息抽取4個步驟。如圖1所示。

圖1 城市軌道交通安全事件案例抽取的技術流程Fig.1 The technical process of case extraction of urban rail transit safety incidents
(1)文本預處理。城市軌道交通安全事件案例為網絡爬蟲獲得的自由文本,在進行信息抽取前需要進行文本預處理,包括去除多余換行符和空格符、將大寫數字轉換為阿拉伯數字等。案例處理好后需儲存在TXT中方便程序進行調用。
(2)詞庫構建。使用Jieba分詞,其自帶詞庫難以識別軌道交通的專業詞匯,將會造成分詞及詞性標注的錯誤,故需要將軌道交通的專業詞匯及其詞性加入到用戶自定義詞典中,同自帶詞庫共同構成城市軌道交通安全事件案例詞庫。
(3)分詞及詞性標注。使用步驟(2)中構建的Jieba詞庫對安全事件案例文本進行分詞和詞性標注。
(4)信息抽取。使用2.2構建的信息抽取規則對安全案例信息進行抽取。
信息抽取的評價指標包括準確率A、召回率R及F[17]。公式為

(1)

(2)

(3)

下面以1個城市軌道交通安全事件案例為例說明信息抽取的過程及其結果的知識元表示。
3.1.1 文本預處理
對城市軌道交通安全事件案例去除多余空格符和換行符,并將大寫數字轉換為阿拉伯數字,最后將處理好的案例儲存在TXT中。處理好的案例文本如圖2所示。

圖2 城市軌道交通安全事件案例文本預處理Fig.2 Text preprocessing of urban rail transit safety incident cases
3.1.2 詞庫構建
將軌道交通的專業詞匯及其詞性加入到用戶自定義詞典中,同自帶詞庫共同構成城市軌道交通安全事件案例詞庫。用戶自定義詞典示例如圖3所示。

圖3 城市軌道交通安全事件用戶自定義詞典構建Fig.3 Construction of user-defined dictionary of urban rail transit safety incident
3.1.3 分詞及詞性標注
示例文本分詞結果及其對應詞性標注如下。

1995年4月28日,韓國大邱市mmmmmmxnsnsn地鐵在施工時,因碰壞煤氣管道發生煤氣npvnnxpvnvn泄漏而發生爆炸火災,結果當場103人死亡vcnnxnsmnv,230人受傷。xmnvx
3.1.4 信息抽取
使用2.2構建的信息抽取規則對安全案例信息進行抽取。示例安全案例的信息抽取結果為
地點:韓國(ns)大邱(ns)
時間:1995年4月28日
影響:103人死亡, 230人受傷
原因:施工/vn時/n,/x因/p碰壞/v煤氣管道/n發生/v煤氣/n泄漏/v而/c發生爆炸
類型:爆炸
根據1.2構建的城市軌道交通安全事件案例的共性知識元模型表示,示例安全案例的共性知識元表示為
Ccase=(Hcase,Ecase,Rcase);
Hcase=(anthropic factor:施工時,因碰壞煤氣管道發生煤氣泄漏而發生爆炸);
Ecase=(local:韓國大邱;time:1995年4月28日);
Rcase=(type:爆炸;Casualties:103人死亡, 230人受傷)。
文中使用的案例是通過網絡爬蟲得到的自由文本,共107篇。得到的抽取結果如表2所示。

表2 抽取結果
由表2的抽取結果分別對3種知識元屬性抽取結果進行分析。
(1)致災因子知識元模型H的召回率較低,主要原因是本文使用的城市軌道交通安全事件案例多為自由文本,部分文本沒有對事故原因進行描述。同時,文本描述語言的高自由度也導致部分案例的原因沒有明顯的觸發詞,造成抽取規則中定義的原因觸發詞在文本中沒有出現。因此,致災因子知識元的召回率僅為54.21%,準確率72.50%也有待提高。
(2)孕災環境知識元模型E中,地點知識元抽取結果的召回率較低,僅為67.29%。主要是因為在構建抽取規則時考慮到中外城軌線路名稱眾多,所以選擇了利用詞性進行事故地點的提取,在對待抽取文本中的地點信息進行分析后,構建的抽取規則為.{1,20}?/ns{1,20}.*?/n,即地名+名詞,但同時也會抽取出其他錯誤信息,如合肥/ns警方/n,所以總體準確率為71.29%,也需進一步提高。時間知識元的準確率和召回率均較高,均為93.46%,召回率未能達到100%主要是因為有部分案例對事故發生時間僅用“當地時間X點”進行描述,造成無法直接獲取時間信息。
(3)災害結果知識元模型R中,影響知識元抽取結果的召回率為78.50%,主要是因為部分案例未對事故造成后果進行描述,但返回結果的準確率較高,達到了88.42%。事故類型知識元召回率為86.92%,部分案例未有結果返回的主要原因為案例描述中沒有明顯的觸發詞;但返回結果的準確率較高,達到了96.88%。
對城市軌道交通安全事件案例進行了定義,并提出了一種城市軌道交通安全事件案例的共性知識元模型表示,最后通過基于規則的信息抽取方法對城市軌道交通安全事件案例進行抽取,最終將城市軌道交通安全事件案例轉化為用共性知識元模型表示的結構化數據。通過抽取實驗對抽取規則的可行性及準確性進行檢驗,結果表明本方法在對城市軌道交通突發事件案例的抽取中,孕災環境知識元和災害結果知識元的正確率及召回率較高;致災因子知識元的正確率及召回率需進一步提高,通過分析,主要原因為文本自由度過高導致的未觸發抽取規則中定義的觸發詞,同時表達方式的多樣化也導致抽取規則不能涵蓋所有表達方式。在后續研究中,將對抽取規則進行進一步改進,以提高信息抽取結果的準確率。