杨涛,赵嵩
(1.深圳市科荣软件股份有限公司,广东深圳 518001;2.云南大学信息学院,云南昆明 650504)
随着安全信息化工作的推进,水利工程建设积累了大量繁杂、多源异构的隐患文本数据,但是现阶段的水利工程施工安全隐患分析主要依靠安全管理人员的个人经验,效率较低且难以发现隐患数据的内部联系。自然语言处理技术的发展,实现水利工程施工安全隐患文本的智能分类与管理成为可能。
建筑业施工的安全隐患分类尚处于起步阶段,目前业界对安全隐患的分类方式主要有两种:一是基于人为预设框架的隐患分类,如HALLOWELL等[1]整合已有出版物对安全隐患的分类,总结得到接触有害物质、过度疲劳、重复运动等10 类安全隐患;二是基于数据聚类分析的隐患分类,如ZHAO 等[2]对地铁隧道建设工程的243个安全事件进行结构分析,并采用聚类分析方法从事件组中挖掘并确定对事故发生影响最大的因素。虽然文本分类模型可以实现隐患文本的高效、精确分类,但是无法从文本中获取更详细的隐患信息[3]。针对分类后的安全隐患文本,词云图与共现网络分析是文本挖掘中的常用方法,能够发现文本的内部特征及外部特征,具有较高的实用性与可靠性。潘杏等[4]利用词云图从时间维度对地铁施工的安全隐患进行可视化分析,挖掘地铁安全隐患,排查要点;薛楠楠等[5]利用共现网络,识别建筑工人不安全行为及其影响因素之间的关系。
本文利用随机森林模型进行隐患文本的智能分类,并结合TF-IDF 算法获得更深层次的语义信息,提升文本分类的精确度。本文所提方法可以为水利工程施工安全隐患问题的文本智能分类及隐患排查线索的挖掘提供参考。
安全模块对智慧监管平台每个标段下的安全隐患描述进行深入分析。首先,对安全隐患问题描述文本数据进行预处理。其次,采用TF-IDF 特征提取方法将隐患文本描述转换为特征向量,采用随机森林(Random Forest,RF)模型将安全隐患预测为10 个类别,分别是高处坠落、机械伤害、物体打击、触电、火灾爆炸、起重伤害、文明施工、机电信息、安保设施、建筑物破损。再次,依据分类后的结果,利用词云和词频统计方法展现安全隐患概况,挖掘隐患核心词;采用序列相似度匹配算法(Sequence Matcher,SM)从原始安全隐患数据里面匹配出包含核心词的隐患数据集,采用隐含狄利克雷分布(Latent Dirichlet Allocation,LDA)模型从数据集中聚类分析出每个核心词的代表性数据,作为每个类别下的隐患排查线索。最后,通过词云图可视化隐患的安全管理要点及隐患数据的内部联系,挖掘安全隐患文本中隐含的重要信息和内在规律,用于辅助水利工程安全管理实践。本研究为隐患文本智能知识挖掘提供新的思路,也为水利工程施工安全隐患排查及预防提供新的指导手段。
1.2.1 文本预处理
为获得有效、可用的施工安全隐患数据,本文结合工程施工安全隐患判定标准《工程管理人员“三管三必须”检查手册》等相关规范及实际工程施工经验,对施工安全隐患数据进行处理。首先,由于数据来源于人工记录,所以对工程数据中含有主观推断的信息、缺失值、异常值等数据均采用手动方式进行剔除,以获得有效、可用的安全隐患数据。其次,针对水利工程施工安全领域的特点,制作该领域的安全隐患字典辅助分词,包括手动添加专有名词到自定义词典中,例如“高处坠落”“电气安全”“脚手架”等,以丰富和完善分词效果,有效避免术语被错误地分开或合并,提高数据处理和分析的精确度。再次,停用词表采用哈尔滨工业大学停用词表,在此基础上将不规范的关键词、无意义的词添加到停用词表中,用于去除隐患问题描述文本中的停用词(例如空格、标点符号)等影响文本处理与分析的无效信息。最后,采用jieba 分词技术对隐患问题描述文本进行分词操作,操作主要包含如下4个步骤:字典匹配、词性标注、建立有向无环图和最短路径分词。
1.2.2 基于随机森林模型的安全隐患文本分类
1.2.2.1 TF-IDF文本向量化
为将安全隐患文本数据转换为机器学习模型所能处理的数值型数据,采用TF-IDF 实现文本数据的特征提取和向量化。TF-IDF 是一种常用的文本特征提取方法[6],用于评估一个词对一个文档集合的重要程度。TF-IDF 在对文本进行特征提取的过程中,首先,将文本数据进行分词处理,将文本分割为单个的词语或单词序列。其次,TF-IDF 会构建一个词汇表,其中包含所有在文本数据中出现的不重复的词语,每个词语将被赋予一个唯一的索引。再次,计算TF值,TF 表示安全隐患词语在安全隐患文档中出现的频率。最后,将每个文档中每个词语的TF-IDF 值按照其索引位置组成一个向量,将文本数据转换为向量表示,向量的维度等于词汇表的大小。
1.2.2.2 随机森林分类模型
为实现安全隐患文本的自动预测分类,采用随机森林分类模型对安全隐患数据进行分类。随机森林是一种基于决策树模型[7],通过袋装采样技术(Bagging)在模型训练过程中引入随机选择属性的算法,具备理论深度较低、计算量轻便等特点。
(1)决策树。决策树作为基本的树模型已被机器学习领域诸多模型使用,它的工作原理是从根节点出发后,在每一个分支节点找到最佳的分裂属性后进行分裂。随着分裂节点的不断增多,分裂节点不断逼近停止条件,直到满足停止条件时,分裂节点停止分裂,构成决策树。决策树的优点在于其具备良好的可解释性,决策树中的每一个根节点都代表对一项特征的测试,从根节点延伸出去的每一条路径都代表一条规则,路径最终到达的叶节点则代表一个测试结果。也正因如此,决策树良好的可解释性体现在使用者可以通过逆向追溯每一条根节点和叶节点之间的路径得到样本的预测过程。决策树的缺点在于作为单个的预测模型,其泛化性较差,对数据的质量要求极高,如果数据存在少量噪声就会严重影响决策树的预测结果。因此,为弥补上述缺陷,需要将多个决策树模型进行集成,形成集成学习算法。
(2)装袋采样。装袋采样技术的训练过程可总结为从容量为S的训练集样本中采用有放回的方式随机拿出N个样本,这N个样本便组成新的训练集样本。上述采样方式重复M次,组成M个独立且具有相同权重的袋装采样样本集合。随机森林算法的集成模型的思想源于装袋采样技术选取的多个训练集,其中每一个由袋装采样算法生成的样本集合之间已经通过重采样进行样本重构,而非简单的复制粘贴。正因如此,样本集合之间的差异是源于随机森林算法内的诸多决策树模型彼此之间存在随机性。因此,袋装采样技术可以通过保证集成模型中每个子模型的预测精度且维持子模型之间的低相关性,以提高随机森林算法的准确率。
(3)随机森林。随机森林作为一种集成模型,是由诸多决策树模型组合而成,其算法流程如图1所示。
图1 随机森林算法流程
1.2.2.3 文本分类模型评估指标
为评估随机森林模型文本分类的有效性,采用精确率(P)、召回率(R)、F1 值评估模型的性能,各评价指标的计算方法如下:
其中:精确率P表示模型预测为正例的样本中预测结果是正确的比例;召回率R表示被预测正确的正例样本与总正例样本的比率;F1值是精确率与召回率的调和平均指标,可精确反映出模型多方面的效果。
1.2.3 基于LDA的安全隐患排查线索
1.2.3.1 隐患词云分析
词云图是一种将词语按照出现的频率进行排列的可视化方法,可以直观地展示高频关键词的分布情况。在安全管理的过程中,为更清晰、全面地了解每个安全隐患类型下的具体隐患内容,可以对每个安全隐患类型下的隐患数据进行词频统计,并绘制词云图,从而更好地反映隐患的总体特征。
1.2.3.2 序列相似度匹配算法
为根据隐患核心词得到更加清晰的安全隐患致因,采用SM 算法[8]将上述利用词频统计方法挖掘出的隐患核心词去原始隐患描述中匹配出众多的包含该核心词的隐患原始描述数据。SM 算法通过计算两个序列之间的最长公共子序列(Longest Common Subsequence,LCS)的长度,计算两个序列的相似度。LCS是指两个序列中最长的一个相同的子序列,它的长度可以表示两个序列的相似度。假设两个序列分别为X和Y,LCS(X,Y)的长度为len(LCS(X,Y)),那么它们的相似度计算如下:
1.2.3.3 隐含狄利克雷分布
采用SM 算法从原始安全隐患描述数据中匹配出包含安全隐患核心词的原始隐患描述数据较多,为从众多数据中选择出一条具有代表性的安全隐患原始描述数据作为该核心词的隐患排查线索,首先,对于每个包含核心词的数据集,使用LDA 主题模型进行聚类分析,将其聚成一个类别。其次,在每个数据集中计算主题关键词的出现次数,并选择出现次数最多的前5 个主题关键词作为该数据集的代表性关键词。再次,计算每个数据集中核心词和代表性关键词的出现次数。最后,从每个数据集中选择出现核心词和代表性关键词最多的一条数据作为代表性数据。通过这一流程,选择出一条最具有代表性的安全隐患原始描述数据,为核心词提供有价值的隐患排查线索。
LDA 主题模型结构如图2所示。从图2 中可以看到,以白色圈表示隐藏变量,以灰色圈表示观测变量,以及代表变量重复性质的矩形形状,这一结构呈现了模型内在的复杂关联,通过隐藏变量和观测变量之间的交互,揭示潜在的主题结构。这种设计提供对文本或其他数据集的更深层次理解,并为进一步分析和建模提供了基础。
图2 LDA主题模型结构
(1)水利工程建设过程中积累的安全隐患文本数据来源于现场人工安全检查记录,存在语言含糊、描述不规范等问题,因此如何将这些繁杂、多源异构的隐患文本数据去除非中文字符、进行分词和去除停用词,是确保后续特征提取和模型训练准确性和可靠性的技术难点。
(2)安全隐患文本数据存在规模大、数据稀疏的问题,如何将安全隐患描述文本数据转换为机器学习模型能处理的数值型数据,而且数据转换在捕捉安全隐患关键词的同时,保留隐患描述的信息丰富性,确保最后机器学习模型的预测准确率也是技术难点。
(3)虽然机器学习模型可以实现隐患文本的高效、精确分类,但是无法从文本中获取更详细的隐患知识。因此,针对分类后的安全隐患文本,需要进一步分析各类安全隐患文本的管理要点及隐患数据的内部联系。
(4)安全隐患核心词可以反映各类安全隐患问题的管理要点,针对施工规模较大且安全隐患高发的标段,仅根据安全隐患核心词排查安全隐患问题,由于包含该核心词的问题数量较多,涉及的施工场地较广,要排查的范围较大,因此如何根据安全隐患核心词,从原始的隐患描述数据中找出一条具有代表性的安全隐患问题作为隐患排查线索,明确隐患的致因,进一步缩小隐患排查的范围成为技术难点。
(1)数据预处理:首先,使用正则表达式去除非中文字符,保留安全隐患描述中的中文文本。其次,制作针对水利工程施工安全隐患的词典。最后,利用jieba 分词库对安全隐患文本进行分词,并根据预定义的停用词表去除无意义的常用词汇。
(2)文本特征提取及向量化:采用TfidfVectorizer(文本特征提取)对预处理后的隐患文本描述进行特征提取,选取适当的特征数量转换为机器学习模型可识别的特征向量。
(3)文本分类模型训练:采用机器学习模型里的随机森林分类器对特征向量进行训练,并实现安全隐患自动预测分类,分为10个类别。
(4)隐患数据挖掘:利用词云和词频统计方法展现安全隐患概况,挖掘隐患核心词。通过可视化隐患的安全管理要点及隐患数据的内部联系,进而挖掘安全隐患文本中隐含的重要信息和内在规律,用于辅助水利工程安全管理实践。
(5)隐患排查线索挖掘:首先,根据每一个核心词,依次利用SM 算法从原始隐患数据中匹配出包含核心词的隐患数据集。其次,采用隐含狄利克雷分布(LDA)模型依次对包含核心词的数据集进行聚类分析,主题类别设置为1。最后,结合隐患核心词和该数据集的主题关键词从数据集中匹配出每个隐患核心词的隐患排查线索。
以珠江三角洲水资源配置工程信息化平台智慧监管模块下的安全隐患台账信息做为数据源。本文从安全管理系统中获取到2019—2023年施工期间的80 953 条安全隐患原始数据作为数据源。每条安全隐患数据主要包含标段、隐患描述、隐患类型、整改措施和检查日期等字段,其中标段、隐患描述、隐患类型和整改措施均为非结构化的文本数据。本文主要借助隐患描述信息进行安全隐患分类及隐患信息挖掘,每条隐患记录均有手动标记的隐患种类标签。
本文将数据集按照7∶3的比例划分为训练集、测试集。对所有数据进行打乱处理。表1 为隐患数据集中的样本实例,以消防安全、用电作业、文明施工3个类别描述样本为例。
表1 隐患分类数据集示例
本文所用的随机森林分类模型使用的编程语言为Python3.7,利用Pytorch 学习框架下的sklearn 库。模型超参数选择的结果为n_estimators=12,max_depth=4,criterion="gini"。模型各项指标见表2。
表2 模型指标
为帮助安全管理人员快速捕捉不同种类施工隐患的关键信息,借助词云图更加直观地为安全管理人员展示不同隐患种类及其主要隐患表征。在隐患描述内容中加入隐患部位信息,并将隐患部位、常见隐患词汇等构建用户词典加入分词器中,利用Word Cloud 工具包为不同隐患类别选择关键短语,绘制隐患特征词云图。本文在每次绘制隐患词云图时,选取前20个关键短语剔除对隐患知识挖掘无显著影响的无意义词语,在此基础上绘制隐患词云图。图3 中的词语字体越大,代表该词语出现的频率越高,与其相关的隐患越容易发生。例如,“安全帽”“乙炔”“电缆”等字体较大,则需对相关的安全隐患进行重点关注。
图3 词云图
根据上述词云图统计分析出的高频隐患核心词有氧气瓶、安全帽、乙炔、护栏、材料、电缆、龙门吊、盾构、积水、标识牌。
以高频词“安全帽”为例,首先利用SM 算法从原始隐患数据中匹配出包含核心词的隐患数据集(见表3)。其次,利用LDA 主题模型对表3 中包含核心词“安全帽”的数据进行聚类分析,将类别设定为1,在该数据集中计算主题关键词出现的次数,得到该数据集的主题关键词列表;从主题关键词列表中选择出现次数最多的前5 个主题关键词作为该数据集的代表性关键词,即“安全帽”“佩戴”“人员”“现场”“作业”。最后,从表3的数据集中选择出一条出现代表性关键词最多的安全隐患描述作为“安全帽”这个词的具体隐患排查线索,即“现场作业人员未正确佩戴安全帽”,该描述包含代表性关键词最多。同理,根据高频隐患核心词挖掘分析得到更具针对性的隐患排查线索(见表4)。
表3 包含“安全帽”的隐患描述
表4 安全隐患排查线索表
本文基于RF 模型对珠江三角洲水资源配置工程信息化平台的安全隐患台账数据进行文本分类和信息挖掘。通过隐患描述信息,模型展现了良好的分类效果。随后,通过词云图,直观地展示不同隐患种类的关键信息。同时,基于SM 算法和LDA 模型的排查线索分析为安全管理人员提供针对性的隐患排查指引。综合而言,本文的研究结果可为水利工程施工安全管理人员提供参考和指导,能为提升水利工程施工现场的安全性和效率提供帮助。本文侧重于对安全隐患数据的分析,缺少对安全隐患在时间序列方面的研究,后续将进一步结合安全隐患发生的时间因素进行回归分析。