Python环境下的航空安全报告信息分析方法
2021-05-14刘俊杰杜尹岚闫慧娟
刘俊杰, 杜尹岚, 闫慧娟
(中国民航大学民用航空安全科学研究所, 天津 300300)
近年来,随着中国民航事业的发展,航空安全信息获取渠道扩展的同时,航空安全信息的数量也有大幅度增长。但由于航空安全信息具有非常强的专业性,对其进行深入分析需要比较强的行业知识,分析方法的欠缺和人员的不足使航空安全信息的分析局限在统计分析层面阶段,因此亟需开发可靠的专业分析工具。
目前,中外航空安全信息的分析主要涉及以下两个方面:一是从某一具体事件或事件类型出发,详细地分析事件原因,构建人为差错模型[1-4];二是基于事件文本对导致事件的原因进行详细分析,如刘俊杰等[5-6]采用内容分析法、语义网络分析法发现事件原因、涉及的飞行阶段以及隐患后果等。
以上分析方法获取结果缓慢不能满足当前信息量猛涨的现实状况,中外学者开始尝试利用计算机提高信息分析效率,主要采用聚类算法、关联规则、分类算法等实现信息的自动分析,文献[7-8]基于聚类思想,先后利用神经网络算法和潜在语义索引法,分别实现对机场噪声烦恼度模型的模糊集和航空报告的有效分类;Tanguy等[9]将自然语言处理(natural language processing, NLP)工具运用到航空安全报告管理中,使用监督机器学习技术处理信息文本内容,识别与指定内容相似的报告,从而找到单个事件发生的前因,实现了数据/文本挖掘和交互式信息的主动分析;王宏伟[10]提出将关键词与基于本体的多层关联规则方法结合,从而发现了词条间存在的潜在关系;Robinson[11]利用潜在的语义分析(latent semantic analysis, LSA)过程识别语料库之间的关联性,并提出了一种允许宏观和微观数据视图相结合的计算方法,实现了语料库中事件各因素之间关系的可视化。Arnaldo Valdes等[12]利用贝叶斯机器学习方法以及层次结构得出具有不同复杂性和目标的统计估计和预测模型,提前识别航空安全风险;刘梦娜[13]基于卷积神经网络算法对航空安全报告分类,最终预测航空安全风险。
上述分析发现,虽然在传统事件分析法的基础上数据挖掘技术[14]在航空安全信息分析方面有了初步的应用,但大部分是基于关联规则寻找信息潜在关系,运用文本聚类和可视化技术快捷提取信息关键内容的研究较少。基于此,在现有航空安全信息分类的基础上,以Python语言为工具,运用K-means 完成信息聚类,并基于多缩缩放(multi climensional scale,MDS)、词云图实现可视化以期挖掘航空安全信息中潜藏的安全隐患,为风险管理提供基于数据的改进方向。
1 文本聚类思路
聚类分析主要从数据集中按照给定的要求和规律总结出数据对象之间的关系[15],完成分类过程。在Python环境下利用文本挖掘的相关技术进行聚类分析,包括文本规范化处理和文本数据分析。具体聚类流程如图1所示。
图1 聚类流程
1.1 文本规范化处理技术
1.1.1 文本中文分词
为了实现数值格式的特征输入,必须对文本进行清洗、规范化预处理。而中文文本分词[16]是对文本进行规范化处理的第一步,该过程将文本数据分解拆分为具有更小且有意义的成分。采用基于规则的jieba分词,它提供了精确模式、全模式和搜索引擎模式3种分词模式,虽然jieba有新词识别的能力,但自定义词典可确保分词精准度。
1.1.2 去停用词表
文本数据为非结构化的,存在各种各样的噪声,比如介词、标点、副词等无关紧要的词语,若不移除噪声,可能会对后面聚类分析的结果产生影响。因此,分词过后,载入并遍历停用词表,清洗文本词语,该停用词表可以从网上下载,并能添加或删除停用词表中的词语,使文本噪声降到最低。
1.1.3 特征提取
特征提取是采用数据挖掘技术筛选出最能表达文本信息的内容。向量空间模型(vector space model)[17]是处理文本数据非常有用的概念和模型。数学上定义为假设在文本向量空间VS中有一个文本D。每个文本维度和列数量将是向量空间中全部文本中不同词项或单词的总数量。因此,向量空间可以表示为
VS={W1,W2,…,Wn},
(1)
式(1)中:n为全部文本中不同单词的数量。
因此,可以把文本D在向量空间表示为
D={wD1,wD2,…,wD3}
(2)
式(2)中:wDn表示文本D中第n个词的权重。这个权重是一个数量值,可以是文本中词的频率、平均频率或者是TF-IDF权重。
在计算权重方法上, TF-TDF[18]仍存在的一定的优势,计算tfidf在数学上的定义为
tfidf=tf*idf
(3)
式(3)中:tf表示词频,任何文本的词频是该词在特定文本中出现的频率值;idf表示逆文档频率,其的数学表达式为
(4)
式(4)中:idf(t)表示单词t的idf;C表示数据库中文本的总数量;df(t)表示包含单词t的文本数量频率。
由idf(t)可得,单词在数据库中出现频数多不一定有价值,出现在数据库中的次数少而特定文本中出现次数多的可能会是有用信息。
最终使用的TF-IDF度量是tfidf归一化,还需要将tfidf矩阵除以矩阵的L2范数来进行归一化处理,L2范数也称为欧几里得范数,它是每个单词tfidf权重平方和的平方根,则最后为
(5)
1.2 文本数据分析
1.2.1 文本聚类
K-means聚类算法[19]实现简单以及可扩展大量数据,可被广泛应用,它是一种基于质心的聚类模型。该算法基本思路为:假设有一个具有N个数据点或样本的数据集X,将N个数据点分离为K个不想交的分离聚类Ck,并且每个聚类都可以用样例聚类的平均值表示,这些平均值就是聚类的质心μk,它们不受X的N个样本实际数据点这个条件的限制。该算法选择这些质心并以惯量(inertia)最优化方式构建聚类模型,其数学表达式为
(6)
式(6)中:聚类Ci和质心μi中i∈{1,2,…,k},该优化的步骤如下。
步骤1:在数据集X中选取k个随机样本,选择k个初始质心μk。
步骤2:通过将每个数据点或样本分配到离其最近的质心来更新聚类,数学表达式可以为
Ck={xn∶‖xn-μk‖≤all‖xn-μl‖}
(7)
步骤3:通过步骤2获得每个聚类的新聚类数据点重新计算得到新的聚类,即
(8)
以迭代重复以上步骤,直到步骤2和步骤3不再发生变化,最终使聚类效果相比较优。
1.2.2 聚类可视化
为使聚类后的信息在低维坐标中直观、形象地展示出来,并从整体上把握信息分布情况,达到对研究对象视觉上分类的功能,聚类可视化可实现这一点。因航空安全信息属于非结构化,采取多维缩放(MDS)减少非线性维度最佳,其核心思想是使用一个距离矩阵获取各个数据点之间的距离,如余弦相似度[20]、欧氏距离[21]。MDS尝试使用向量中的高维特征转为低维特征表示,并用matplotlib工具绘制图形。
2 样本实例分析
为了有效提取文本特征,航空安全信息对事件发生经过的描述需要更加客观,并且信息内容格式应固定。选取2017年国内不安全事件信息中的系统信息,因其机械故障客观性较强,上报信息内容更加真实、可靠。所以,选取2017年因机械原因发生数量最多系统失效/卡阻/故障事件类型信息为样本,信息共计931条。
2.1 信息预处理
结合研究对象特征,载入民航专业术语的词典后,采用Python库中的jieba分词,并不断地添加、删除停用词表中的词。最终得到3 757个词汇。部分词汇如表1所示, Features表示特征词汇,Index表示特征词汇的位置,同时显示了特征词的类型与字符大小。对用TF-IDF计算各个特征词权重值,表2显示了“气象雷达”在不同信息中的权重。
表1 部分特征词
表2 特征词权重
2.2 聚类分析
聚类分析的核心思路是输入特征矩阵,根据信息间的距离完成分组。从Python库中sklearn.cluster模块中导入K-means,将参数num_cluster设置为13,即聚类标签为13,运行后的聚类结果如表3所示。
表3 系统失效/故障/卡阻事件类型信息聚类结果
图2 样本信息聚类可视化
由表3可知,每个聚类标签都被分配了一些信息,快速实现信息的整理和归档。同时能根据关键特征了解各个标签的主要内容,同时可检索到详细信息。比如cluster1中包含86条信息,提取到的详细聚类分析信息为“襟翼”“进近”“位置”“后缘”“传感器”等,参考聚类标签中的关键特征,可及时快速地掌握到:在系统失效/卡阻/故障事件类型信息中,飞机在进近阶段易发生襟翼不对称或卡阻事件,航后需更换襟翼位置传感器。因此,安全管理或机务人员根据聚类标签的关键特征提示,多加排查襟翼位置传感器,提前找出消除安全风险的方法,及时制定预防措施。
2.3 聚类可视化
实现基于MDS聚类可视化之前,首先需要确定一个距离矩阵,因航空安全信息是以文本的形式描述事件,而余弦距离更多的根据文本内容来区分各文本之间的相似程度或差异性,因此采用余弦距离更能满足目前研究要求。利用Python实现基于MDS可视化结果如图2所示。
在图2显示的结果中,共有13个聚类标签,每个聚类标签都具有自己的颜色和符号,以区分图例框中的特征值。每个聚类由其主题描绘,主题通过最主要的特征定义该聚类,并且可以快速检索到每条信息。例如在基于MDS的聚类可视化结果中,与“TCAS”故障相关的信息显示为红色圆形的聚类标签,与“起落架”故障相关的信息显示为黄色五边形的聚类标签。图2反映了通过可视化将具有内在相对关系的信息联系在一起,以图形的形式展示样本信息的相似特征,效果上更加直观,达到了航空安全信息视觉上分类的功能。
为全面理解聚类可视化的功能及其在实际中的应用,将针对某一个聚类标签中的信息进行详细分析,清晰地梳理信息间的差异性。在Python环境下,使用matplotlib绘制的聚类可视化可对目标区域放大,以便清晰地查看聚类标签中包含的特定信息及其距离相近的其他信息。例如将具有“TCAS”关键特征的聚类标签放大,即图2中显示的红色圆形区域放大,呈现的结果如图3所示。
图3 与“TCAS”相关的聚类标签局部可视化图
图3不仅展示了飞机某一具体系统部件出现故障的频次,还可以根据信息间的距离挖掘彼此之间相互关系。同聚类标签中大多数涉及的是同种系统故障,但造成同系统故障属性不同,如图3中信息中主要描述的是TCAS故障,但可能会因TCAS计算机、天线或跳开关等问题引起TCAS故障。因此,根据信息在低维空间中的坐标位置,可视化感知信息间的差距及产生原因,检索和追溯相似性更大的信息,全面寻找同类系统涉及的不同系统部件失效或故障属性,这对具体某一系统内多层级故障的风险识别起到辅助作用。
接着利用微词云在线分析工具对聚类标签信息集进行可视化处理,形成关键词云或关键词渲染,从而过滤掉大量的无效词语,使得在信息分析过程中能一眼扫过信息的关键主旨,从视觉上显示图3红色圆形聚类标签中信息内容的主要特征。词云图如图4所示。
图4 与“TCAS”相关的聚类标签词云图
通过图4可以看出,“空中防相撞系统(traffic collision avoidance system,TCAS)”“缩小垂直间隔(reduced vertical separation minimum, RVSM)”“巡航”等词语字体相对较大,位置醒目,说明了信息集这些词被关联情况多,重要性大。通过此可视化方法可方便快捷地掌握该聚类标签的关键主旨,轻松帮助分析或管理者锁定关键项,提高信息分析者的工作效率。
而包括一些与飞行阶段、地域性相关的词语,如“滑行”“巡航”“重庆”“深圳”等词语,这说明TCAS故障发生可能由多因素相互结合造成的,但由于对系统故障信息内容的描述不够具体,深层次分析系统失效/故障存在局限性,需要进一步获取详细的事件报告信息。
3 结论
(1)在Python环境下,从信息的内容出发,利用文本挖掘相关技术对样本信息处理,及时、快速地实现航空安全信息的自动识别和聚类,从而减少人工查阅、整理、归档信息的时间。
(2)基于MDS对航空安全信息聚类可视化,到达信息在视觉上分类的效果,并可检索、追溯同系统相似甚至相同部件故障信息,发现系统多层故障类型,掌握具体某一系统故障所有可能因素,可作为航空安全风险管理中系统分级管理的辅助工具。
(3)利用词云图对特定聚类标签中信息内容可视化,从整体视觉把握信息特征词汇分布情况,轻松锁定信息关键项,发现系统故障可能关系到的多种因素,为下一步制定风险管控针对性措施提供参考依据,达到安全隐患预警的目标。