孫文龍
摘要:航空事故發(fā)生后進行事故調(diào)查必不可少,安全建議作為事故調(diào)查報告的核心對以后預(yù)防事故的再次發(fā)生起著至關(guān)重要的作用。本研究運用文本聚類分析的方法,通過編寫Python代碼以及借助于MATLAB工具,運用k-means聚類算法實現(xiàn)了對中美航空事故調(diào)查報告中的安全建議的文本聚類分析。聚類的結(jié)果表明,在對安全建議文檔相似度的計算上,“余弦相似度”比“歐氏距離”在對安全建議的處理上有著更好的效果。同時,本研究還討論了在對安全建議進行聚類過程中所存在的幾點不足以及在提高聚類效果方面提出了一些見解。
關(guān)鍵詞:安全建議;聚類分析;python; MATLAB
中圖分類號:V328.2
文獻標識碼:A
文章編號:1003-2177(2019)01-0124-03
0引言
隨著我國民航事業(yè)的快速發(fā)展,民航飛機的安全性也越來越高,并且以其快捷、舒適的優(yōu)勢逐漸成為人們出行最受歡迎的交通工具之一。但一些不安全事件、事故征候還是時有發(fā)生,特別是航空事故還是無法徹底避免,在航空事故發(fā)生后必須要進行事故調(diào)查,民航事故調(diào)查的目的是為了防止事故/事件的再次發(fā)生,為了達到這一目的,事故調(diào)查方在調(diào)查的過程中和最終調(diào)查報告發(fā)布時都會針對調(diào)查過程中發(fā)現(xiàn)的安全系統(tǒng)的缺陷發(fā)布各種安全建議。
聚類分析是數(shù)據(jù)挖掘和機器學(xué)習(xí)中常見的技術(shù),在學(xué)術(shù)和工業(yè)領(lǐng)域被大量使用,因此本研究運用聚類技術(shù)對這些安全建議進行處理,充分發(fā)揮計算機強大的計算能力,利用聚類技術(shù)實現(xiàn)安全建議文本數(shù)據(jù)的自動分類,能夠給民航事故調(diào)查員提供思路以及各單位人員在安全管理中作為參考依據(jù),最終提高中國民航的安全水平。
1研究方法
文本挖掘主要涉及到數(shù)據(jù)挖掘、自然語言的處理、模式識別、信息檢索等技術(shù)。本研究中利用的文本聚類分析方法是文本挖掘技術(shù)的一種,在數(shù)據(jù)挖掘方面特別是在對大數(shù)據(jù)的分析與處理方面應(yīng)用廣泛,是一個非常有效的數(shù)據(jù)處理分析方法。聚類分析有以下特點:
(1)聚類是在對數(shù)據(jù)沒有深入了解的情況下,通過聚類算法自動把數(shù)據(jù)集劃分為多個類別,每一個類別稱為簇。
(2)聚類的目標是:在同一個類別中的數(shù)據(jù)相似度比較高,而在不同類別中的數(shù)據(jù)相似度比較低。聚類和分類不同,它是一個無監(jiān)督學(xué)習(xí)的過程。
(3)聚類分析是一個逐步試探的過程,它根據(jù)數(shù)據(jù)集本身的特點進行自動的分類,與事先設(shè)定好的分類規(guī)則無關(guān)。
安全建議是文本的一種,因此本研究運用文本聚類的方法對中美航空事故調(diào)查報告中的安全建議進行文本聚類的處理,最終實現(xiàn)安全建議的自動分類。
安全建議的文本聚類處理流程圖如圖1所示。
在對安全建議文本集進行文本聚類的過程中,從“中英文分詞”到“特征權(quán)重表示”階段處理是通過編寫Python語言代碼來實現(xiàn);“聚類算法的選擇”以及“聚類結(jié)果的輸出”階段是借助于MATLAB工具來實現(xiàn)。
2數(shù)據(jù)來源
本研究收集了中國民航在2017年發(fā)布的事故/事故征候/不安全事件調(diào)查報告130份,在這些報告中共發(fā)布了安全建議319條;美國NTSB在2013-2017年發(fā)布的航空類安全建議302條,針對這兩組數(shù)據(jù)進行了分析。
3研究過程
3.1中英文分詞
分詞指的是將一些漢字序列或者是英文的句子切分成一個個單獨的詞,然后把這些詞與機器詞典中的詞條進行匹配,如果在詞典中能夠找到上面切分出的單個詞,說明匹配成功(識別出一個詞)。對于本研究來說,分詞結(jié)束以后,每一條安全建議就被切分成了多個詞組的形式。
3.2停用詞過濾以及特征降維
由表1可知,分詞結(jié)束后也產(chǎn)生了很多無意義的詞,比如中文的像“的”、“后”、等等,英文的像“of、“to”等等,把類似這種無意義的詞歸結(jié)為停用詞,因此為了提高最終聚類結(jié)果的準確性有必要把這些停用詞過濾掉,這時本研究引入了中英文的停用詞表,其中包括中文的停用詞3832個,英文的停用詞891個。
通過以上的分詞以及停用詞過濾,把最終得到的詞稱為安全建議的特征詞,Python運行后最終得到了1740個中文特征詞,1638個英文特征詞,部分特征詞如表1所示。
3.3建立特征空間
建立安全建議文本的特征空間是進行安全建議文本聚類分析的重要組成部分,本研究采用的是應(yīng)用最廣泛的向量空間模型。向量空間模型的原理是把一組文檔的集合表示成向量空間中的多個向量,在本研究中也就是把每條安全建議用一個向量來表示,每個特征詞對應(yīng)一個坐標軸,將每個安全建議特征詞的權(quán)重大小作為對應(yīng)每個坐標軸上的值,假設(shè)用Weight來表示權(quán)重的大小,有N個特征詞,則某一條安全建議d對應(yīng)的向量為:
其中|D|是文本集中所有文檔的總數(shù),分母是其中包含詞語ti的所有文檔的數(shù)目。本研究通過計算某個安全建議特征詞的tf*idf來作為該特征詞的權(quán)重。最終得到了中英文安全建議的權(quán)重矩陣。
3.5聚類算法的選擇
本研究采用的是k-means聚類算法。在完成對安全建議數(shù)據(jù)的結(jié)構(gòu)化轉(zhuǎn)換之后,需要根據(jù)每條安全建議間的相似度進行聚類。在k-means聚類算法中,對于每條安全建議間的距離運算過程,本研究采用的是“歐式距離”和“余弦距離”。
歐氏距離是應(yīng)用最常見的距離度量,它衡量的是向量空間中各個點之間的絕對距離(直線距離)。公式如下:
3.6聚類結(jié)果的輸出
本研究把Python處理得到的中英文權(quán)重矩陣分別導(dǎo)入MATLAB軟件,調(diào)用其中的聚類處理模塊,分別選擇“歐式距離”和“余弦相似度”進行聚類。由于k-means算法需要事先設(shè)定k的大小,因此本研究設(shè)置初始簇個數(shù)分別為3、4、5,探究不同的k值對聚類結(jié)果的影響,然后根據(jù)聚類的結(jié)果統(tǒng)計每一個聚集中的中英文安全建議數(shù)目
通過分析得出:“余弦距離”在對中美安全建議的處理方面效果更好,主要基于以下評價標準:
(1)類簇的數(shù)量是否合理:用“余弦距離”對安全建議進行聚類,每一類中的數(shù)量分布相對“歐氏距離”更加均衡。
(2)類簇的可解釋程度高低方面:通過對以上不同類別中的安全建議內(nèi)容進行分別閱讀認知,發(fā)現(xiàn)用“余弦距離”處理得到的結(jié)果中,每一類中的安全建議相對“歐氏距離”更像一個整體,相似度更高一些,可解釋程度也更高。
一般以類中數(shù)量適中,類簇可解釋程度較高作為聚類效果較好的標志。
4結(jié)語
在研究過程中,得出以下結(jié)論:(1)由于安全建議中也存在較多的民航專業(yè)詞匯,如果單獨用jieba詞庫進行分詞會產(chǎn)生較多有歧義的詞,因此如果在jieba詞庫里面再加入民航專業(yè)詞匯,這樣最終的分詞效果會更好;(2)中美航空事故調(diào)查報告中的安全建議作為短文本的一種,每條安全建議大約都是幾十個詞最多也就一百個詞左右,并且安全建議的數(shù)量相對較多,中美安全建議的總詞數(shù)都分別達到了兩萬多字,經(jīng)過文本的預(yù)處理過程最終篩選出的特征詞分別高達一千多個,與每條安全建議詞的數(shù)量相差巨大,這樣會導(dǎo)致權(quán)重表格比較稀疏,最終會影響聚類的效果;(3)歐氏距離衡量的是空間各點的絕對距離,跟各個點所在的位置坐標直接相關(guān);而余弦距離衡量的是空間向量的夾角,更加體現(xiàn)在方向上的差異,而對絕對的數(shù)值不敏感。因此造成了聚類結(jié)果的差異。