文本挖掘 day5:文本挖掘与贝叶斯网络方法识别化学品安全风险因素

文本挖掘与贝叶斯网络方法识别化学品安全风险因素

  • 1. Introduction
    • 现实意义
    • 理论意义
    • 提出方法,目标
  • 2. 材料与方法
    • 2.1 数据集
    • 2.2 数据预处理
    • 2.3 关键字提取
      • 2.3.1 TF-IDF
      • 2.3.2 改进的BM25——BM25W
        • BM25
        • BM25W
      • 2.3.3 关键词的产生(相关系数)
    • 2.4 关联规则分析
    • 2.5 贝叶斯网络分析

1. Introduction

本研究旨在提出一种改进的文本挖掘方法来分析大量的化学品事故报告。设计了一个建立和更新分词词库的工作流。关联规则挖掘和贝叶斯网络分析的结果能够清晰地揭示安全风险因素之间的相互关系。本研究的方法可以快速有效地从事件报告中提取关键信息,为管理者提供新的见解和建议。

现实意义

image-20230814094230220

图1显示了2016年至2021年全国每年发生的化学品事故及死亡人数。化工事故1050起,死亡1330人,化工安全生产形势依然十分严峻。因此,在保证化工产品稳定供应的同时,提高安全生产水平具有重要的现实意义。

约80%的事故发生是由人为引起的,因此识别事故因素,挖掘内在联系,是很有必要的一件事。

理论意义

之前的化学事故研究更多的致力于安全评价方法,而不是分析原因;现有的分析方法是基于专家经验和依赖于人为的过程,以致分析不全面。此外,该化学品的事故报告也没有统一的标准格式,报告的内容是高度非结构化的。计算机无法直接处理这类信息,同时人为过程是耗时的,且会存在差错的过程。因此,需要一种自动安全风险识别方法来解决处理大型文本数据集的挑战。

一种常见的聚类方法是潜在Dirichlet分配(LDA)。LDA方法有助于有效地提高文本分类任务,这在许多高级专家和智能系统中是必不可少的,特别是在标记文本稀缺的情况下。Zhong等人[23]利用LDA模型生成的34类主题,为建筑行业的各种事故建立了深度学习(DL)和TM的框架,分析事故危害。Chen等人[24]构建了利益相关者分类体系,并利用LDA模型完成话题聚类,揭示了舆论场中利益相关者的话题焦点和演化路径。但是,他们检索的结果是以文字的形式来表示相应的信息,具有很高的不确定性。特别是在事故报告等大型文本中,一些词频很高的词并未指明具体的危险因素,但仍被提取为关键词。根据语料库和提取目的的不同,传统的文本挖掘已经不能有效识别安全风险因素,需要改进。

提出方法,目标

鉴于文本挖掘在化工安全研究中的应用较少,本文创造性地将文本挖掘、关联规则挖掘和贝叶斯网络相结合,应用于化工事故分析。

首先,在数据预处理中分别构建和更新域词典、同义词词典和中断词词典。然后我们改进了关键字提取方法,提出了BM25W模型。利用距离公式和社会技术系统对相关系数进行归一化处理,识别出安全风险因子。

然后,利用关联规则挖掘方法找到安全风险因素之间的强关联规则,并发现关键原因之间的关联。

最后,基于关联规则挖掘结果进行贝叶斯网络分析,找出化学品事故的重要因素、关键原因路径、高频因素和高度集中因素。并对这些结果进行了理论分析。

本研究不同于以往的知识驱动或模型驱动的研究,以数据驱动的方式分析文本数据的直接不可见模式和复杂关联。我们的目标是通过提供强有力的自动分析事故原因和优化安全策略来减少事故数量。

2. 材料与方法

本研究主要包括数据预处理、关键原因提取、关联规则挖掘和贝叶斯网络分析四个部分,如图2所示。这四部分将在接下来的章节中逐一介绍

image-20230814101143492

2.1 数据集

化工生产领域的事故调查报告是本文分析的原始语料库。这些报告是由安全管理领域的专家在事故发生后通过研究和分析来撰写的。获取事故调查报告的来源有很多。Esmaseili et al.[25]获得了美国国家职业安全与健康研究所(NIOSH)的事故报告,Rodrigues et al.[26]获得并分析了欧洲航空安全局(EASA)的事故报告,其他一些学者[27-29]也分别从相关官员那里获得了所需的数据。

中国的“化工企业生产安全事故报告和调查制度”规定,对涉及人员伤亡的事故,必须进行完整、准确、及时的记录和保存,任何单位和个人不得隐瞒。事故报告的内容应包括事故的原因、损失、责任、纠正措施等。与其他国家一样,中国也有专门的安全生产管理部门,即中华人民共和国应急管理部(https://www.mem.gov.cn/(2022年8月2日访问))和全国各省市应急管理部门。为保证数据来源的可靠性,共下载2011年至2022年上半年化工、危险化学品事故调查报告665份。

之后,我们对数据进行过滤,剔除不符合要求的数据,在化工生产领域留下330份事故调查报告。上述事故的级别和类型也被计算在内,如图3和4所示。

image-20230814101749325

从图3可以看出,绝大多数事故是一般事故和较大事故。虽然这些事故造成的伤亡或损失的数量很少,但它们经常发生,而且仍然是非常严重的。

image-20230814101801009

从图4可以看出,超过一半的事故类型是爆炸,其次是中毒和窒息。这是因为大多数化工生产领域涉及易燃易爆或有毒有害气体,容易造成混合气体爆炸或人中毒、窒息。

2.2 数据预处理

数据预处理是一个非常重要但繁琐的过程,因为原始语料库中含有大量不规则或无意义的词。最重要的任务之一是将原始中文文本分割成类似于用空格分隔的英文文本的格式,以便进行下一步的文本挖掘分析。

本研究中使用的文本分割工具是python3中的Jieba分割工具。我们观察到,化学品生产事故的原因一般由名词和动词或简单名词组成。因此,本研究仅选取普通名词、机构名、其他专名、普通动词、动名词进行分词。通过这种方式,Jieba在分词时自动排除了剩下的词汇分词结果。JiebaWSS分词系统包含三种词典,即领域词典、同义词词典和断词词典。

  1. 领域词典:虽然JiebaWSS提供了一个词典,包含了大部分常用的词(如反应器、管道等)用于切分词,但也有很多行业专用词无法识别,如蒸馏塔、中间操作室、蒸汽阀、气体检测器等。当涉及到这些词时,JiebaWSS可以将整个专有词分割成两个或多个词。这需要事先将这些特定于行业的单词集成到域字典中,并将字典添加到JiebaWSS中。

  2. 同义词词典:事故调查报告中的同义词很多,大量的同义词会使分词结果过于离散。我们可以用一个词来替换所有的同义词;例如,管道、管道、蒸汽管道、压力管道等,都可以用管道代替

  3. 停止词词典:事故调查报告中还含有大量无意义的词、数字和符号,如“我们”、“实际上”、“exactly”、“3”、“6”、“,”。“!”等等。这些词对于本研究的分析没有实际意义,可以添加到停止词词典中进行排除。

image-20230814103301634

这三种词汇对分词结果有着直接的影响,而分词结果又对后续的分析产生了层叠效应。因此,有必要对这三个词汇进行更新,形成一个与本研究一致的JiebaWSS。本研究借鉴了esmaiili、Hallowell和Xu等人的词汇开发思想,设计了一种词汇更新方法。图5显示了该方法的工作流。

2.3 关键字提取

原语料库拆分结果的内容非常大,难以对事故进行直接的关键原因分析。关键词是能够表达文献关键内容的词,计算机系统中常用来引用论文的内容特点,进行信息检索,系统收集供读者查阅。

2.3.1 TF-IDF

关键词抽取是文本挖掘领域的一个分支,是文本检索、文档比较、摘要生成、文档分类、聚类[32]等文本挖掘研究的基础。传统的关键字提取方法主要有词频TF (word frequency)和词频逆文档频率TF- idf (word frequency - inverse document frequency)两种,使用简单方便。TF认为一个单词出现的频率越高,它对文档的贡献就越大。然而,对于事故调查报告来说,并不是简单地假设一个表示安全风险因素的词在文件中出现的频率越高,这个词就越重要。由于每一份事故调查报告的长度不同,一些不重要的词可能会在较长的文件中重复出现。为了减少高频的影响,TF-IDF在TF后乘以IDF,如式(2)所示。

image-20230814103758062

其中nij为单词ti在文档dj中出现的次数;

∑k nk,j表示文档dj中所有单词出现次数之和;

**|D|**表示整个语料库中的文档总数;

{j: ti∈dj}表示包含单词ti的文档数量。

但是TF- idf忽略了文档长度,其中单词ti的临界度得分仍然与词频TF线性相关。例如,如果一个1000字的文档有100字的a,而另一个5000字的文档有100字的a,那么很明显,单词a在这两个文档中的重要性是不同的。单词在长文档中的频率通常更高,这最终导致TF-IDF临界性评分仍然过于有利于长文档。为了改善这一问题,研究者提出了BM25模型[33],如式(3)所示。

2.3.2 改进的BM25——BM25W

BM25

image-20230814104341640

其中N为语料库中的文档总数; **n(qi)**是包含“qi”字的文献数量;

tf(qi, d)文档dqi出现的频率; Ld是文档的长度;

Lavg是整个语料库中所有文档的平均长度; k1b是可自由调节的超参数;

一般情况下k1∈[1.2,2.0],b = 0.75。R(qi, d)对t f(qi, d)的函数是一个饱和递增函数,使得文档词频的增长与关键字得分的增长呈非线性相关。因此,本研究提出了一些基于BM25模型的改进,并用于关键词的提取。

BM25W

TF-IDF和BM25都考虑了单词和文档之间的关系,但没有考虑单词本身的语义对关键字提取的影响。对于表示安全风险因素的词语,一方面,我们一般认为词语越长,表示的信息越清晰、越专业,如device、safety device、safety interlock device[34,35]。特别是,我们希望能够提取出能够更清楚地表明安全风险因素的词语。另一方面,之前的领域词典的专有词都是由领域专家从文档中仔细检查和选择的,因此它们的语义表示更加清晰和专门化。因此,本文根据单词本身的语义对BM25模型进行加权

首先,根据单词长度计算权重的公式如式(4)所示。

image-20230814110617779

其中len(qi)表示单词qi的长度,maxlen(d, q)表示文档d中最长单词的长度。

其次,基于领域字典的权值计算公式如式(5)所示

image-20230814110712447

式(5)表示如果单词qi若不在领域词典中,则权重为0;否则,基础值设为0.5,再将文档d分词结果中每100个单词与单词个数的比值相加,将这两个权重的总和作为基于单词语义的权重,计算BM25模型的加权得分,如式(6)所示。

image-20230814111135837

与式(3)对比:

image-20230814104341640

在本研究中,这个新的模型称为BM25W,用于关键字提取。

2.3.3 关键词的产生(相关系数)

由于所提取的关键词只是单一的名词或动词,不能完全反映事故发生的原因,如专用设备、有毒有害气体、监督管理等。这是因为这些词可能有一些语义重复,或者可能没有具体反映一个隐藏的问题[36]。这些关键字需要标准化。**本研究首先将所有特征词通过计算机向量化为word-document matrix (TDM),如式(7)所示。**TDM是一个m x n的二维稀疏矩阵。

image-20230814112726339

每一行表示一个文档dj, j∈m;每列表示一个特征词ti, i ∈ n;

t fm,n表示特征词tn在文件dm中的出现次数

通过这种方式,可以将高度非结构化的事件报告转换为结构化的数值类型数据。然后利用TDM计算特征项之间的相关系数,如式(8)所示。

image-20230814113157103

pearson(i, j):特征词i、j的皮尔逊相关系数;

mindist(i, j) :指代在所有文档中两个词之间的最短距离;

如果两个特性术语同时出现在文档中,但位置相距很远,那么很明显,在表示隐藏的问题时,这两个特性术语并不相关。TDM只表示特征词数量在整个语料库空间中的分布,而不反映特征词在文档中的位置关系。因此,本研究采用log2 {1/ mindist(i,j)+1} 作为两个特征项的距离权重,与Pearson相关系数相乘作为最终的相关系数。

2.4 关联规则分析

关联规则挖掘首先是由Agrawal在超市购物篮分析中提出的,它是一种研究数据库中项目集之间潜在相互关系的方法。它是目前数据挖掘领域最活跃的研究方向之一。关联规则可以从大量的事故数据中发现导致事故发生的不确定因素的关联特征,从而识别出因素之间的因果关系,帮助管理者进行决策。

因此,本研究在通过文本挖掘识别安全风险因素的基础上,采用关联规则挖掘的方法,获得安全风险因素之间的强关联规则,为后续的化学品安全风险因素分析和贝叶斯网络结构的构建奠定了基础。关联规则挖掘定义如下::

设:I = {i1, i2,…,in}是一个由n个称为items的二进制属性组成的集合,D = {t1, t2,…, tn}是一组称为数据库的事务。D中的每个事务都有一个唯一的事务ID,和包含I中项的一个子集。一条规则被描述为X⇒Y(由x可推得y),其中X, Y⊆I。

每条规则都由两个不同的项集组成,也称为项集X和Y,其中X称为先行项或左手边项(left-hand-side;LHS), Y称为后件项或右手边项(right-hand-side;RHS)。**为了从所有可能的集合规则中选择感兴趣的规则,使用了对不同意义和兴趣度量的约束。**最著名的约束是支持度和置信度的最小阈值。

  • 设X是一个项目集,X⇒Y是一个关联规则,T是一个给定数据库的事务集。

    • 支持度表明项目集在数据集中出现的频率,随着数据集的增长,项目集的先决条件变得更有限制性,而不是更具包容性。

    • X对T的支持定义为事务t在包含项目集X的数据集中所占的比例,计算方法如下:

      image-20230814150831485

    • 置信度表示该规则被发现为正确的频率,表示为:

      image-20230814150915189

    • X⇒Y对一组交易T的置信值是包含X的交易中同时包含Y的交易所占的比例。如果conf (X⇒Y)的值等于1,则X⇒Y的规则是不可避免的。

    关联规则需要同时满足最小支持度和最小置信度。在大多数情况下,关联规则的生成分为两个独立的步骤:

    第一步应用最小支持阈值来查找数据库中的所有频繁项目集,

    第二步应用最小置信约束来获取这些频繁项目集以形成规则。

安全风险因子最初并没有出现在文献中,而是通过标准化关键词得到的。因此,当一对关键字和非关键特征项同时出现在一个文档中,且距离不大于10时,我们认为这两个词归一化的安全风险因子在本文档中也存在。这样就可以得到关联规则挖掘所需的事务集,即上述事务数据集。

传统的关联规则挖掘算法主要有Apriori算法和FP-growth算法

Apriori算法对事务数据库进行多次扫描,每次使用候选频繁集生成频繁集;

FP-growth算法采用树形结构直接获取频繁集,不生成候选频繁集,大大减少了事务数据库的扫描次数,提高了算法的效率。

因此,FP-growth只能用于挖掘单维布尔关联规则。但由于安全风险因素之间的因果关系错综复杂,且多集关联规则数量众多,因此本研究采用Apriori算法进行关联规则挖掘。

2.5 贝叶斯网络分析

贝叶斯网络又称置信网络,是贝叶斯的延伸,是目前不确定知识表示和推理领域最有效的理论模型之一。自1988年Pearl提出贝叶斯网络以来,贝叶斯网络已成为近年来的研究热点。贝叶斯网络是由表示变量的节点和连接这些节点的有向边组成的有向无环图(DAG),如图6所示。

image-20230814151826044

当事件A的发生影响到事件B的发生时,有如下关系(条件概率):

image-20230814151847628

式(11)称为贝叶斯公式,其中P(A)和P(B)分别为事件A和事件B的先验概率;P(A|B)为后验概率(条件概率),即事件A发生时事件B发生的概率;P(B|A)表示似然概率,表示假设结果发生时,对原因发生的可能性的描述。对于任意随机变量,其联合概率可由各自的局部条件概率分布相乘得到,如式(12)所示。

image-20230814152341412

本文构建和分析化工事故因果关系网络的目的是通过定量分析明确化工安全生产系统的关键风险因素,从而提出更有针对性的事故预防策略。因此,本研究基于关联规则挖掘的结果构建了贝叶斯网络结构,并将事务集转化为One-Hot Encoding,用于贝叶斯网络的参数学习。然后对安全风险因素进行敏感性、关键原因路径和频次统计分析。

本研究采用GeNIe4.0软件进行贝叶斯网络分析。GeNIe Modeler是一个用于构建图形决策理论模型的开发环境。由于它们的通用性和可靠性,GeNIe和SMILE已经非常受欢迎,并成为学术界的事实上的标准,同时也受到许多政府、军事和商业用户的欢迎,而且GeNIe已经在许多教学、研究和商业环境[45]中进行了广泛的测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/74760.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优思学院|在六西格玛项目中如何知道过程是否受控?

当我们说过程处于统计受控状态时,我们是指过程不存在特有原因。 以下面的图表来说明,过程处于“不受控”状态和“受控”状态时的情况。 当过程在统计意义上是受控的,它并不意味着过程产出的产品就不会超过规定的规范,符合质量要…

springboot整合kafka多数据源

整合kafka多数据源 项目背景依赖配置生产者消费者消息体 项目背景 在很多与第三方公司对接的时候,或者处在不同的网络环境下,比如在互联网和政务外网的分布部署服务的时候,我们需要对接多台kafka来达到我们的业务需求,那么当kafk…

Golang通过alibabaCanal订阅MySQLbinlog

最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。 Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监…

P8642 [蓝桥杯 2016 国 AC] 路径之谜

[蓝桥杯 2016 国 AC] 路径之谜 题目描述 小明冒充 X X X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n n n\times n nn 个方格。如图所示。 按习俗,骑士要从西北角走到东南角。 …

​比特丛林用量子纠缠对抗高智商犯罪

世界上没有绝对完美的犯罪,但是预谋和统筹良久的高智商犯罪都几乎接近于完美和无比烧脑。 警局的洽谈室,只有我和嫌疑人两个人。 各自坐在桌子两边,门已关。在这个封闭的空间里,我一手拿着筷子吃着盒饭,一边撇了一下…

面向云思考安全

Gartner最近的一项研究表明,到 2025 年,85% 的企业会采用云战略,虽然这一数字是面向全球的,但可以看到在中国的环境中,基于云所带来的优势,越来越多的企业也同样开始积极向云转型。 但同时,有报…

CSS自学框架之表单

首先我们看一下表单样式,下面共有5张截图 一、CSS代码 /*表单*/fieldset{border: none;margin-bottom: 2em;}fieldset > *{ margin-bottom: 1em }fieldset:last-child{ margin-bottom: 0 }fieldset legend{ margin: 0 0 1em }/* legend标签是CSS中用于定义…

【数据结构】树和二叉树

一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…

机器学习笔记值优化算法(十四)梯度下降法在凸函数上的收敛性

机器学习笔记之优化算法——梯度下降法在凸函数上的收敛性 引言回顾:收敛速度:次线性收敛二次上界引理 梯度下降法在凸函数上的收敛性收敛性定理介绍证明过程 引言 本节将介绍梯度下降法在凸函数上的收敛性。 回顾: 收敛速度:次…

Jay17 2023.8.14日报 即 留校集训阶段性总结

8.14 打了moeCTF,还剩一题ak Web。 Jay17-集训结束阶段性总结: 集训产出: 自集训开始以来一个半月,最主要做的事情有三。 一是跟课程,复习学过的知识,学习新的知识;目前课程已大体听完&…

问道管理:缩量小幅上涨说明什么?

股市里面,股票价格上涨或跌落都是常见现象。可是关于那些在商场上寻求收益的出资者来说,他们需要对每一个股市中的价格动摇有深化的了解,以便做出更正确的出资决策。最近,出资者们发现商场缩量小幅上涨的现象时有发生,…

word 应用 打不开 显示一直是正在启动中

word打开来显示一直正在启动中,其他调用word的应用也打不开,网上查了下以后进程关闭spoolsv.exe,就可以正常打开word了

redis的三种集群方式

redis有三种集群方式:主从复制,哨兵模式和集群。 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令; 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所…

C++入门篇8---vector

vecctor是动态顺序表 一、了解vector的相关接口及其功能 1.构造函数相关接口 函数声明功能介绍vector()无参构造vector(size_type n,const value_type& valvalue_type())构造并初始化n个valvector(const value& x)拷贝构造vector(InputIterator first, InputIterato…

【Git】本地搭建Gitee、Github环境

本地 (Local) 1、使用命令生成公钥(pub文件) 1. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "github_id_rsa" 2. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "gitee_id_rsa" …

解读spring中@Value 如何将配置转自定义的bean

实现方式 着急寻求解决方式的猿友先看这块 定义配置转化类 public class UserConverter implements Converter<String, List<User>> {Overridepublic List<User> convert(String config) {if (StringUtils.isEmpty(config)) {return Collections.emptyLis…

数组的详述(1)

1、一维数组的创建和初始化&#xff1a; 数组是一组相同类型元素的集合。 &#xff08;1)创建方式&#xff1a; type_t 是指数组的元素类型 arr_name 数组名 [const_n] 一个常量表达式&#xff0c;用来指定数组的大小 //在c99标准之前&#xff0c;数组的大小必须是常…

普通上班族学Python有用吗?

普通上班族学Python有用吗&#xff1f;对于广大上班族而言&#xff0c;时间和精力主要问题&#xff0c;学习Python编程语言为了能提高工作效率。学Python不是单纯的为了增加知识储备&#xff0c;Python本质上是一个工具和手段&#xff0c;最终目的是要通过它来帮我们解决实际工…

Falco操作系统安全威胁监测利器

原理简介 Falco是一个开源的云原生安全工具&#xff0c;用于检测和防御容器和云原生环境中的安全威胁。它基于Linux内核的eBPF技术&#xff0c;通过监控系统调用和内核事件来实现安全检测和响应。 具体来说&#xff0c;Falco的实现原理如下&#xff1a; 1. 内核模块&#xf…

并发编程系列-Semaphore

Semaphore&#xff0c;如今通常被翻译为"信号量"&#xff0c;过去也曾被翻译为"信号灯"&#xff0c;因为类似于现实生活中的红绿灯&#xff0c;车辆是否能通行取决于是否是绿灯。同样&#xff0c;在编程世界中&#xff0c;线程是否能执行取决于信号量是否允…