牛 毅,樊運曉,高 遠
(中國地質大學(北京)工程技術學院,北京 100083)
近年來,盡管我國化工安全生產形勢整體趨好,但化工安全生產事故依然多發[1]。從歷史事故中學習經驗對進一步遏制事故的發生具有重要意義,然而人們往往更關注重大事故,而忽視小事故。海因里希曾在統計大量事故后提出著名的事故金字塔理論:傷亡、輕傷和無傷害事故的比例為1∶29∶300[2],即1起嚴重事故背后必然有更多的小事故發生,要防止嚴重事故發生必須先減少或消除小事故,小事故同樣具有重要的研究價值[3]。在化工生產過程中,企業積累了大量的小型事故文本數據,但受數據量大、記錄粗糙以及相應信息處理能力不足等因素限制,數據價值未得到充分利用,進而制約了對事故的深入研究。因此,如何從這些雜亂的事故信息中高效挖掘潛在價值,已成為亟待解決的問題。
當前針對化工事故數據應用的研究,還主要停留在對事故類型、事發區域或時段的簡單統計分析方面[4]。面對復雜的事故發生機理,單一的統計指標不能充分描述事故的特征[5]。在此背景下,一些學者嘗試通過數據挖掘技術對事故數據進行事故分類[6],事故聚類[5]和事故潛在關聯規則挖掘[7]等方面研究,然而這些研究大多集中于道路交通[8]和建筑施工[9]等領域,在化工安全生產事故中的應用還相對較少。相較于數值型數據,文本數據作為事故記錄的主要形式,蘊含著事故更深入的細節,但由于結構復雜、記錄粗糙等原因,對大量化工事故文本數據系統的挖掘則更為缺乏。
基于上述問題,本文引入可從大量事故文本數據中提取主題和關鍵信息的數據挖掘方法:潛在狄利克雷分配(Latent Dirichlet Allocation,LDA)主題模型和社會網絡分析法,以某化工企業1 578起小型事故為樣本,利用該方法進一步挖掘事故致因及其分布規律,實現對化工事故的更深入分析,為企業事故預防工作提供有力支持。
數據挖掘是指通過統計、機器學習等方法,從大量數據中挖掘對研究或決策具有深層價值信息的過程。
目前,文本數據是各行業安全生產事故的最主要記錄形式之一,其中重特大事故會以事故調查報告的形式詳細剖析,然而數量上占絕大多數的輕傷或無人員傷亡的小事故往往只進行簡單的記錄,由于其記錄粗糙、數量龐大以及不被重視等原因,針對這些文本數據的挖掘還十分缺乏。以化工行業為例,化工安全生產事故文本數據通常是以描述性的文字對事故發生過程及原因的記錄,記錄雖然粗糙,但蘊含著事故經過和生產一線工作狀況等關鍵細節,同樣具有巨大的利用價值和挖掘空間。
潛在狄利克雷分配(Latent Dirichlet Allocation,LDA)是由Blei提出的1種主題挖掘模型[10],該模型基于一定規則從海量文本中抽取主題,并根據主題分布對文本數據進行聚類,其中主題是指文本數據所蘊含的潛在主旨或核心思想。目前,該模型已廣泛應用于圖書情報、熱點評論主題抽取[11]等領域。LDA也稱為三層貝葉斯概率模型,如圖1所示,其結構由文本、主題和詞項3部分組成,其中每個文本由一系列服從概率分布的主題構成,主題又由一系列服從概率分布的詞項構成[10]。

圖1 三層貝葉斯概率結構模型Fig.1 Three-layer Bayesian probabilistic structure model
1)主題生成過程:LDA主題模型如圖2所示,圖2中主要符號含義:α,β為狄利克雷先驗參數;m表示第m個文本;θm表示文本m的主題分布;n表示文本m的詞項數;zm,n表示文本m的第n個詞項對應的主題;wm,n表示文本m的第n詞項;φzm,n表示主題的詞項分布;K表示主題總數;M表示文本總數;k表示第k個主題;Nm表示第m篇文檔的詞項總數;Dir表示狄利克雷分布;Mult表示多項式分布。

圖2 LDA主題模型Fig.2 LDA probability model
主題詳細生成過程為[12]:
①從狄利克雷分布α中取樣生成文檔m∈(1,M)的主題分布θm,θm|α~Dir(α);
②針對文檔m中的每個詞項wm,n,其中,n∈(1,Nm):a.從多項式分布θm中取樣生成該詞項wm,n的主題zm,n|θm~Mult(θm);b.從詞項分布φzm,n中取樣最終生成詞項wm,n|φzm,n~Mult(φzm,n),其中φzm,n|β~Dir(β)。在給定參數α,β情況下,模型的聯合概率分布為:
(1)
2)參數估計:圖2中,陰影圓圈表示觀測變量,非陰影圓圈表示潛在變量,模型求解前需要對潛在變量進行估計。本文中,模型的參數估計主要基于變分推斷EM算法。其原理為:通過近似隱藏變量的后驗分布來簡化問題,通過尋求最大似然解來進行參數估計[12]。
事故記錄中每個關鍵詞是蘊含事故信息的基本單元,考慮到一些詞頻少的關鍵詞可能攜帶更多的事故信息,因此利用Tf-idf(Term frequency-inverse document frequency)算法[13]對事故關鍵詞進行加權處理。算法原理為:一個關鍵詞在整個數據集中出現頻率不高,但在某起事故中多次出現,則認為該關鍵詞既對該起事故有很好的代表性,又對其他事故有很好的區分能力,那么此關鍵詞在該事故中具有較高的權重。通過加權處理可有效避免這些關鍵事故信息的流失。
社會網絡分析法旨在對系統要素間的關系進行量化研究[14],一個網絡通常由“點”和“邊”構成,“點”表示各個要素,“邊”表示要素間的關系,“邊”的粗細程度表示關聯程度。事故致因要素間并非簡單的線性關系,而是構成復雜的關系網絡,為進一步發掘事故要素間的關系,基于社會網絡分析法,將關鍵詞看作“點”,關鍵詞之間的關聯看作“邊”,構建事故關鍵詞網絡。算法原理為:在整個事故文本數據集中,若2個關鍵詞同時出現在一個句子的頻率超過一定值時,則認為這2個關鍵詞有關聯,該頻率大小反映了關聯度的強弱。
化工事故致因挖掘主要包括數據收集與處理、事故致因挖掘、結果可視化分析等3個主要環節,具體流程如圖3所示。

圖3 化工事故主題抽取流程Fig.3 Chemical accident theme extraction process
本研究的數據來源為國內某大型化工集團2010—2016年期間的1 578起事故記錄,該企業為中國最具代表性的化工企業之一。企業擁有較完善的事故信息采集系統,1 578起事故中大多為輕傷和設備損壞事故(少量死亡、重傷事故),記錄內容為事故發生后第一時間對事故經過、生產環境和事故原因的文字性描述,蘊含著事故發生時的關鍵細節,且所有數據的記錄形式統一,利于對該數據集進行系統地潛在規律挖掘。原始事故數據示例見表1。

表1 原始事故數據(示例)Table 1 Accident data after modification(example)
為達到模型計算的要求,同時提高模型效率及準確性,事故致因挖掘前,需將原始事故數據進行分詞、去停用詞等一系列處理:
1)分詞處理:Jieba分詞包是1個基于python實現的分詞工具,借助該工具對事故文本數據進行分詞處理。由于要分析數據的背景為化工事故,為了避免分詞過程中無法識別某些化工或安全專業名詞的情況,結合化工企業相關規范,制定了適用于化工安全事故分析的輔助字典,見表2。

表2 化工安全專業領域字典(部分)Table 2 Chemical safety professional domain dictionary (partial)
2)去停用詞:事故記錄中存在許多對事故分析無意義的詞項,為提高模型效率,將這些詞項加入停用詞表,并將其過濾,即去停用詞處理。
通過對原始數據處理,得到適合模型計算的1 578起事故數據。基于Python編程語言,利用前文所介紹的LDA主題模型、Tf-idf算法以及社會網絡分析法,對1 578起事故數據進行事故致因主題抽取、關鍵詞加權以及建立關鍵詞關系網絡等工作。其具體流程如圖3中②部分所示。
為幫助企業管理者更直觀地了解企業安全狀況及事故致因分布規律,將事故關鍵詞關聯規則、事故致因主題分布等抽象結果以文字—圖像交互的形式展現出來,利用Gephi等可視化工具,繪制事故關鍵詞關系網絡、事故致因主題分布圖等可視化結果。
事故記錄中每個關鍵詞所蘊含信息的重要程度不同,因此利用Tf-idf算法,建立文檔—關鍵詞權重矩陣,見表3。矩陣中的權重代表了關鍵詞在事故中的重要程度,權重越高重要度越高。例如,事故‘3’中,關鍵詞“不慎”的權重較高,說明注意力問題可能是導致該事故發生的主要原因。
基于社會網絡分析法,利用Gephi軟件繪制關鍵詞關系網絡圖,如圖4所示。整個事故集中,重要度越高的關鍵詞,越靠近關系網絡的中心位置,且關鍵詞標簽越大。相關的關鍵詞由直線相連,直線的粗細則代表了關聯程度的大小。由圖4可知,“操作”、“檢查”、“設備”等關鍵詞位于整個關系網絡的樞紐,尤其是“操作”,位于關系網絡的最中心,說明不安全操作仍是事故預防工作中需重點防范的對象。

表3 關鍵詞權重矩陣(部分)Table 3 Keyword weight matrix (partial)

圖4 關鍵詞關系網絡Fig.4 Keywords Telational network
1)主題數確定
本文采用困惑度指標[15]來確定主題數目,困惑度指標越小說明建模能力越好,則主題數目為最優,計算公式為:
(2)
式中:perplexity表示困惑度;m表示第m篇文檔;P(wm)表示第m篇文檔每個單詞的概率;Nm表示第m篇文檔的詞項總數。困惑度隨主題數目變化時的曲線如圖5所示,從圖5中可以看出,當主題數為5時,困惑度指標曲線處于低谷,此時模型效果最優,因此將主題數確定為5個。

圖5 困惑度指標Fig.5 Perplexityindicator
2)事故致因主題抽取結果
事故致因主題抽取結果見表4,通過主題模型求解,得到事故致因主題和關鍵詞,并分析每個主題關鍵詞之間的關系得到事故致因總結。其中,事故致因主題揭示了造成事故發生的主要原因類別,主題關鍵詞反映了導致事故發生的關鍵細節,事故致因總結則是根據關鍵詞對主題進一步細分為若干致因。
運用可視化工具pyLDAvis,繪制事故致因主題分布圖,如圖6所示。圖6中左側,圓圈代表不同的主題,主題標號與表4中相對應,圓圈大小代表了每個主題包含的事故數量,圓圈之間的距離代表了主題之間的關聯程度。圖右側為頻率最高的30個關鍵詞列表。由圖6可知,主題①數量最多,主題①,②距離接近且有重合部分,說明相關性較強,主題④,⑤則數量最少。
對各事故致因主題具體分析如下:

表4 主題抽取結果Table 4 Topic extraction results

圖6 主題分布可視化Fig.6 Theme distribution visualization
1)員工注意力主題。由表4可知,在員工注意力主題方面,導致事故發生的主要表現為:在車間、樓梯等危險性較高區域,由于員工警惕性不強或注意力不集中而導致了事故發生。關鍵詞“休息”反映出,休息不足或疲勞是造成注意力不集中的重要原因,“車間”“樓梯”則是員工在注意力不集中時事故高發的區域。在圖4關鍵詞網絡中,該主題關鍵詞處于中心位置,說明在關系網絡中具有較高重要度。由圖6可以看出,主題①數量最多,且與主題②有較高相關性。因此,從數量角度看,員工注意力不集中是造成事故發生的重要原因;從相關性角度看,員工注意力問題與作業現場風險管理問題之間存在較強關聯。
2)作業現場風險管理主題。作業現場安全檢查不到位、安全防護缺失、維修不及時以及未識別風險是作業現場風險管理主題的主要表現。由圖4和圖6可知,該主題在分布和數量上都與主題①較為相似,說明作業現場風險管理不足也是造成事故發生的重要原因之一,且與主題①具有一定關聯性。因此,可以啟發管理者在事故預防工作中,關注并切斷2致因主題之間的某些關聯要素,以提高預防工作的效果。例如,通過完善作業現場的風險管理,降低“車間”、“工作現場”的不安全狀態,進而提高生產系統的容錯率。
3)設備主題。設備主題由設備檢查與維修、設備故障和變更管理等問題組成。通過對主題關鍵詞分析,“檢查”“維修”“巡檢”等關鍵詞突出的是設備維護不足問題,這就導致設備的不安全狀態得不到及時發現和消除,從而產生安全隱患;“更換”等關鍵詞則說明企業在變更管理工作中存在缺陷,未能消除由于設備變更而引起的事故隱患。由圖6可知,該主題數量較多,也是導致事故發生的主要原因之一。
4)制度主題。從制度主題的關鍵詞可以看出,主題主要由制度不完善、制度制定與實施、施工人員對制度不遵守等問題組成。從主題分布圖中可知,相較于前3個主題,該主題數量明顯較少,且與其他主題的相關性較弱。但制度本身是較為抽象的概念,往往在事故記錄中難以直接體現,盡管如此,制度主題依然是5個事故致因主題之一,足以說明安全制度或管理體系問題的嚴峻性和重要性。
5)化學物質及工藝主題。上述4個致因主題都涉及到人因或組織缺陷,主題⑤則更加側重于化學物質或工藝過程中本身的性質和反應。從主題關鍵詞推斷,“導熱油”、“聚苯醚”等化學物質和“換熱”、“蒸發”、“催化反應”等工藝過程中釋放的能量是造成人員傷害及裝置破壞的主要致因。因此,企業應在適當區域設立防護設施以減輕該類事故對工人及設備造成的危害。
通過聚類結果可以看出,5個主題中,4個涉及到人因或組織層面的缺陷,并占據事故致因絕大多數比重,說明事故預防的重點應放在改善人員安全素養和安全管理體系建設等方面。
1)通過LDA主題模型、社會網絡分析法等數據挖掘技術,以某化工企業2010—2016年文本類型事故數據為樣本,通過挖掘關鍵詞權重、事故構成要素關聯關系、事故致因主題等潛在信息,實現了對該類事故數據的進一步識別與認識。
2)通過LDA主題模型抽取到的5個主題分別為員工注意力主題、作業現場風險管理主題、設備主題、制度主題、化學物質及工藝主題。分析聚類結果可知,員工注意力不集中、現場風險管理不足、設備檢修不及時是導致事故發生的最主要原因,且員工注意力和現場風險管理之間存在較強關聯性;人因和組織結構缺陷是導致大量事故發生的根本原因。
3)本文數據來源為單一化工企業,研究結果對化工行業具有一定參考價值,同時為其他行業事故文本數據挖掘提供了思路,但更系統的事故致因挖掘分析需要更全面的數據支撐。