An Automatic Assessment Model Based on N-gram Pruning Technique for Hidden Danger Text
To automatically analyze the response level information of hidden dangers contained in hidden danger texts and quantify the severity, a quantitative evaluation model based on N-gram word bag vectors is proposed for the response level of hidden dangers. Firstly, segment and filter the on-site hazard records of 1565 drilling platforms; Secondly, using N-gram as feature units to reshape the bag of words dimension; Then, it is proposed to use the inverse TF-IDF value to enhance the feature values; Finally, use naive Bayes to construct a hazard quantification model. The results show that the hazard quantification evaluation model using this method has high accuracy, recall, and F1 value.
Semantic Analysis
近年来,随着陆上油气资源进入瓶颈期,我国日渐突出的能源供需矛盾迫使油田开发转向海上,海上油气开采作业越来越多。钻井平台在油气田的开采中起着决定性的作用,海上油气资源开发具有高投入、高技术、高风险等特点,平台的定期检查与隐患评估关系着人员的安危和财产安全造成的损失。由于人员设备高度集中且位于海上,一旦发生事故应急救援困难,对海洋环境也会带来严重影响
词袋模型
因此,本文对收集到的1565条海上钻井平台的现场隐患记录,使用N-gram字串和支持度置信度算法,在将词袋模型从单词拓展到短语的情况下,利用统计学中的关联规则挖掘算法对维度进行剪枝,使词袋维度在大量收缩的同时仍保留有效的隐患信息,避免了模型的过拟合问题。并且提出了一种基于逆TF-IDF值的特征值增强方法,进一步提高了隐患评估模型的精度,为海上平台隐患文本的无人分析及评估提供了方法与思路。
以某石油公司2017~2021年的1565条隐患记录为数据源,其中原始数据包括设备分类、隐患类别、描述、是否有直接HSE风险、发现时间等(
设备分类 |
隐患类别 |
描述 |
是否有直接HSE风险 |
发现时间 |
设备设施类 |
设备缺陷 |
F33H井井下漏液压油情况较严重,导致井口盘油位下降较快 |
否 |
2017-01-19 |
电气设备 |
其它 |
下层甲板设备接地线断开 |
否 |
2018-05-31 |
平台结构 |
设计缺陷 |
油田CEPJ平台生活楼四楼吊货平台应加踢脚板 |
是 |
2021-03-23 |
隐患等级 |
响应等级 |
影响范围 |
示例 |
影响程度 |
特别紧急 |
1 |
设备本身 |
断裂/破裂/漏油等 |
实质性损坏,已经影响使用 |
紧急 |
2 |
设备本身 |
轻微磨损/松动等 |
实质性损伤,即将影响使用 |
较紧急 |
3 |
非本身/其他设备 |
安全标识/设计隐患/灯具等 |
非实质性损害 |
一般紧急 |
4 |
记录 |
相关记录 |
纸质档记录 |
在挖掘文本蕴藏的隐患信息前,中文文本需要先进行分词和停用词过滤。本文采用Jieba中文分词工具包和通用停用词库对隐患文本进行预处理,将文档转化成词列表。有别于微博等社交型文本,每条安全隐患文本的词汇数在10到30之间,语言精炼且包含庞大的信息量。如果仅使用词作为特征,过少的特征单元难以保证隐患评估的最终效果。因此将词进行连接,扩展成N-gram短语用以拓展词袋维度是较为有效的方法。
由于用作构建N-gram的词数越多,其在整个领域的文档中出现的次数就越少,超过Four-gram的短语基本上已经失去了作为最小特征单元的意义。使用Bi-gram,Tri-gram,Four-gram来拓展词袋维度具有较好的拟合能力和效果。以Tri-gram字串为例,即是以相邻三个词构成的短语作为特征单元。词袋模型是将文档视作最小词单元的线性组合,通过构建以词为列的矩阵来表达原文档,在用于垃圾邮件分类问题或多领域文本的分类上具有较好效果。但由于其忽略了词序及组合的信息,在词的出现基本相同的同领域文档的语义分析问题上收效甚微。而将最小单元拓展到N-gram短语则在一定程度上克服了这个问题,以“单点带缆甲板”为例,分词工具将其切割成由“单点、带缆、甲板”三个词汇组成的列表,失去了词序信息的排列组合很难真正等同于原始短语。在隐患文本这个领域中,“单点–带缆–甲板”这个Tri-gram字串才是真正指向某个具体设备的最小单位信息。
如果仅仅只是依照文档的词序生成不重复的N-gram字串,词袋的维度会扩张到一个极为庞大的状态,这不仅会生成过多的噪音特征来隐藏真正有用的信息,造成判断精度的下降,由于维度过大,计算资源的消耗也会造成判定时间过长的问题。而面对用于描述一整个海上平台隐患领域的文本信息,人工定义这些短语的工程量又太过庞大,几乎难以实现。为此,利用现有的隐患记录资源,实现无监督的N-gram生成是更为有效和可行的方式。
将每条文档的词与N-gram出现的次数作为特征值填入矩阵,选择适当的参数训练,构造朴素贝叶斯模型。最后,利用此模型就可以搭建一条隐患评估处理流水线。尽管,这样简单的剪枝算法达到了抑制维数灾难的目的,但也损失了相当多的信息,这些信息或许出现的次数并不多,但它对于隐患的评估却很重要。并且随着文档数的增加,剪枝的阈值线无法变化的问题也会导致“过滤”失效。为了解决上述问题,本文提出一种N-gram剪枝生成算法。
N-gram的剪枝生成算法步骤如下:首先扫描切分好的文档–词列表,得到每条文档的词项集T1及对应的统计信息
,同时将
按文本顺序拼接生成T2至TN并统计对应的统计信息
,构建一个不重复的键值对存储对象,其中键为词项,值为统计信息。将文档列表中重复出现的词项的统计值加和,直到扫描完所有训练集文档,该步骤仅需扫描一次数据集。然后读取该键值对存储对象计算出每个词项的支持度,设置正整数M,计算出剪枝度量线Cutline。以该值作为支持度过滤线,筛选出大于该线的词项,完成第一次剪枝。设置最小置信度,扫描剩下的词项,计算出置信度,取满足最小置信度的词项作为剪枝生成的最终词项集,算法结束。算法流程图如
N-gram剪枝生成算法可以无监督的生成N-gram特征单元且在生成步骤仅需一次扫描,剪枝度量线也克服了文档数对剪枝阈值的影响,算法经由两步剪枝得到最终的特征维度,其中第一次剪枝会快速收缩矩阵维度,第二次剪枝的最小置信度需要人工调整,是对特征维度的微调。
以文档中词和N-gram出现的次数来衡量它对评估的权重影响是可行的方法,但同样高频率这一数学特征也制约了评估模型精度的进一步上升。由于人拥有比机器更高级的语言能力,能够很轻易的分辨出一些在衡量隐患上更重要的信息,尽管这些信息出现的次数并不多。而对于机器和数学模型来说,它们并没有人在漫长的人生中不断积累并成长的外部语言模型来解决隐患评估这一问题。因此笔者提出一种基于逆TF-IDF值来进行词袋特征值增强的算法,进一步提升了模型的隐患评估能力。
笔者依旧使用词出现数作为特征值主体,转而使用逆TF-IDF值来增强这一信息。使得模型在隐患评估时,能够在某种程度上克服高频词的影响,使更多的N-gram参与到隐患评估任务中,实验结果也表明了该算法进一步提升了模型的评估准确度,计算公式如下:
(1)
此处的 表示某一篇隐患文档中词项的出现次数,而非文档集词项出现的总次数。
本文使用机器学习中最常使用的分类任务评价指标,精确率(Precision)、召回率(Recall)、F1-score
评价指标 |
含义 |
精确率P |
正确预测某类的样本数与预测某类总数的比例,衡量查准率 |
召回率R |
正确预测某类的样本数与实际数量的比例,衡量查全率 |
|
精确率与召回率的加权平均值,F1-score值越高说明模型越稳健 |
本文以传统的词袋向量构造方法和TF-IDF值替换特征值作为基准模型进行实验对比。经过训练得到上述几种模型后将1565条数据作为测试集让模型进行隐患评估并输出结果,与实际结果比照并计算评价指标。在词袋重构步骤,不进行剪枝、传统剪枝方法及N-gram剪枝生成算法下词袋各词项集维度见
词项集 |
未剪枝/词项维度 |
传统剪枝方法/词项维度 |
N-gram剪枝生成算法/词项维度 |
words |
3990 |
3990 |
3990 |
bi-gram |
13,978 |
598 |
906 |
tri-gram |
16,624 |
283 |
1332 |
four-gram |
16,801 |
197 |
949 |
模型 |
P |
R |
|
传统剪枝 + 词项数 |
0.770 |
0.764 |
0.760 |
n-gram剪枝 + TF-IDF |
0.138 |
0.371 |
0.201 |
n-gram剪枝 + 词项数 |
0.810 |
0.809 |
0.805 |
n-gram剪枝 + 特征值增强算法 |
0.863 |
0.856 |
0.857 |
从
1) 本文提出的方法在不需要人工识别隐患文本的前提下取得了更好的效果,也可以将该方法作为特征筛选的初步处理,再对处理后的词项集进行人工筛选,进一步精简模型需要处理的词项维度。
3) 本文基于浅层的语义信息,对于计算资源的需求并不高,在特征识别的过程中若出现近义词或错别字,并且在模型训练的过程中词袋并未收录这种情况,模型将会忽略掉这个词汇。在不影响评估精度的情况下提升模型的泛化能力是未来的研究方向。