能源行业安全事故网上监控系统设计
2016-04-07曹恺祺李佳静
曹恺祺 李佳静
摘要:近年来,我国能源行业的安全生产责任事故层出不穷。为了能将相关事故尽可能快速有效地汇报相关部门,必须对互联网上关于能源行业的事故新闻做到实时的监控。该文提出了一套对互联网上能源行业事故实时抓取分析的事故监控系统,采用机器学习与规则匹配相结合的文本挖掘技术来分类新闻事件,采用改进后的新闻事件分类方法比单纯使用机器学习的方法在准确率和召回率都有显著提升。文章最后提出系统实现的框架,并提出改进意见。
关键词:文本表示;特征提取;SVM分类器;规则过滤
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)03-0061-04
1 背景
能源行业主要包括煤炭行业,石油行业,电力行业,核电行业和新能源行业,随着我国经济的快速发展,国内各个领域对于能源的需求也是与日俱增,也促成了我国能源行业的快速发展。但有些能源生产单位只注重产量,对能源的安全生产缺少科学管理,导致能源行业事故时有发生。
总体而言,对于能源的开采工作都是一些高风险的作业,一旦发生事故,不仅会对企业造成巨大经济损失,而且会造成巨大的环境破坏。因此,消除和控制能源行业的安全生产事故,降低能源行业事故造成的影响,有效保护环境,已经是政府和相关能源生产单位的当务之急。
在当下,政府对于能源行业安全生产相关事故的关注,一般是通过相关生产部门的汇报以及能源行业相关网站的报道。但是由于能源行业涉及的部门众多,层级复杂,当基层部门发生安全生产事故时,无法及时有效地做到对上级通报实时情况。通过浏览相关能源事故网站的方法可以及实地了解底层生产安全的状况,但是相关网站通报的信息繁杂,安全事故信息零星地分散在各个网站上,无法做到信息的分类与汇总。所以,对于密切关注能源生产安全事故的政府部门以及相关责任部门来说,拥有一套可以实时监控能源安全事故发生,并且可以根据事故的类型做分类与汇总的监控系统系统,是十分必要的。
本文主要介绍能源行业安全事故网上监控系统的设计架构以及核心分类算法。该系统的主要目的是抓取现各大搜索引擎以及能源行业门户网站中的新闻,对抓取的新闻进行事故的识别以及事故的分类,对分类后的信息汇总到系统的客户端上,对用户实时展示。本文安排如下:介绍使用机器学习方式对文本进行分类算法的研究方法和研究现状,并介绍如何利用机器学习与规则相结合的方法来提高文本分类的准确性,最后介绍系统的架构以及采用的技术。
2 文本分类相关技术
2.1 文本分类
描述信息技术的发展使得互联网成为人们获取信息的重要手段,但互联网上的信息量十分巨大,而且大多没有次序,人们很难快速找到有效的信息。为了应对巨大的信息量,许多文本分类技术应运而生,其中,利用机器学习按照文本内容实现文本自动分类是解决信息快速检索的途径之一[1,2]。基于机器学习的自动方式主要是通过对若干不同类别文本的学习,自动建立特征词库。而且当供学习的样本文本更新后,通过重新学习就可自动更新特征词库,以适应对新的文本类别的分类识别[3]。
目前,应用于文本分类的技术和算法很多,例如有朴素贝叶斯算法,K 最近邻算法,神经网络,支持向量机(Support Vector Machine 即 SVM) 等。其中,支持向量机(SVM)是依托统计学习理论的基础,根据有限的信息条件得到较好的结果[4]。SVM分类算法是以结构风险最小化为目标,所求得的解是全局最优解,该算法克服“维数灾难”问题,有比较深厚的理论基础。文本自动分类的概念可以归纳为[5]: 在确定的分类目标下,将待分类的网页文本根据内容自动的划分到某个类别中,使得网页文本具有正确的标签。文本分类是个有监督的学习过程,在构建自动分类的系统之前,需要通过对足够量的现有文本进行类别的标注,构造训练集,以已构造的训练集为基础,通过分类器找出文本类别与文本特征之间的关系,然后利用这个关系模型对新的文本进行类别的判断。
2.2 文本特征提取
为了将文本表示成文本分类器所是别的形式,通常文本以向量的形式出现在向量空间模型里,向量空间模型有以下要素构成:
1)文档:由一定数量的文字片段构成,像由若干句子、句群、段落和整篇文章构成的文档。
2)特征项:向量空间模型中最基本且不可分的单位是特征项,字、词、短语都能做特征项。
3)项的权重:文档D(t1,t2,...tn)中有n个特征项,其中每一个特征项tk,都依据它们在文档中的重要程度,被赋予相应的权重,表示为D (Wl,W2,...,Wn)。
因此一个文档可以表示成n维向量空间中的一个向量,可以将D=D (Wl,W2,...,Wn)称为文本D的向量空间模型或者向量表示。通常待分类的文本可以表示为特征空间中的一个特征向量,而其中混杂的大量高维的无关特征将影响分类模型的分类效果。为了降低向量空间的维度,消除无关特征的噪音,需要对特征向量进行特征选择,通过选择可区分性强的少量特征来提高分类器的分类精度和效率。对于大规模文本的分类处理,常使用的是过滤式特征选择方法[6]。其原理是首先计算各个特征的权重,然后选取高于设定阈值的最重要特征用于分类。典型过滤型特征选择方法有基于文档频率的方法与基于互信息的方法。
文本特征提取过程中,需要对提取具体的特征项赋予一定的权重,特征权重是衡量某特征项在文档中的重要程度的一种量化指标。常基于文本的统计信息来计算该权重,其主要方法是先统计词频,再为每个特征项赋予一个合适的权重。比较常用的计算特征权重的方法有基于词频的方法,计算逆文档频度[7]的方法和TF-IDF[8]。
2.3 支持向量机理论
SVM 算法是Vapnik和其领导的贝尔实验室小组在 1995年提出的一种基于统计学习理论的新型的通用学习方法,它是基于统计学习理论的 VC 理论和结构风险最小化原理的基础上发展起来的。支持向量机主要思想在于试图寻找一个最优的分类决策面,该分类决策面能够使得边距最大化[9]。SVM的基本原理如图1所示:
图1中的空心圆点和黑心圆点代表两类不同类别的样本; H 为分类线,H1H2分别为平行于分类线的直线,它们经过离分类线最近的那些少量的样本点,两间距离称为分类间隔。H线将两个不同的类正确隔离,同时使分类间隔最大化。设样本集为 ( xi,yi) ,i = 1,2,…,m,yi∈{-1,1},并满足公式1:
[yi[(w*xi)-b]-1≥0] (1)
则该分类的间隔是,其最大间隔可简化为求的最小值,H1,H2两条线上的训练样本点称为支持向量,SVM训练的结果是找到一组支持向量,使得向量间的间隔达到最大值。
2.4 规则定义
由于SVM分类器的精准度受到训练样本数量和使用不同的核函数的影响,分类的效果可能与实际有一定的偏差。在对SVM的分类结果进一步使用人工定义的语义规则进行进一步的过滤,可以有效提高精准率和召回率。本文使用TML文本挖掘语言构造语义规则,根据语义规则从文本中筛选出符合规则的语义要素,实现文本自动分类。
TML是一个自然语言处理平台,旨在提供一种简单通用的途径,让用户在各个领域进行文本分析和语义挖掘[10]。类似于使用SQL对关系型数据库进行建模和分析计算一样,可以使用TML语言对网络文本中的语义进行建模和分析计算。TML实现了大部分常用的文本挖掘技术,包括分词,词性标注,概念抽取,关系抽取,分类,情感分析,关键词抽取和主题模型等,可以广泛用于文本挖掘,语言分析和自然语言处理等领域。
3 系统架构
与能源安全事故分类的实现能源行业安全事故网上监控系统的事故新闻主要来源于各大能源行业的安全事故网站和各大新闻搜索引擎,通过爬虫技术获得上述网站的相关新闻文本,提交给系统进行文本的预处理和手工类别标注,得到符合规范的SVM训练语料对SVM分类器进行训练,当训练语料的数量达到一定数量使得分类器的精准率和召回率达到预期的要求后,便可使用训练好的分类器对向量化的文本进行分类,确定文本中描述的事故属于哪一类安全生产事故。分类结束后,在对分类器的分类结果,使用已经定义好的规则进行再次过滤,筛选出符合规则要求的文本。最后将分类的结果展示在系统网页上。系统分为网页文本挖掘模块,文本分析模块与网站展示模块,系统总体架构如图2:
3.1 文本挖掘模块
本系统所需要提取的语料应该是与能源行业事故有关的新闻报道,文本挖掘模块要从海量数据中提取与能源事故相关的新闻报道,进行网站抓取,对抓取下来的新闻进行分词,特征选取,文本向量化表示,最后把向量化的文档提交到SVM处理。
文本挖掘过程中抓取的数据源来自煤炭安全网,国家石油和化工网等政府网站,还有百度,搜狗等国内主流搜索引擎。爬虫得到的文本不具有任何类别特性,需要对爬取的文档进行中文分词,对文本中的所有词进行特征抽取,最后将向量化的文本提交给SVM进行处理。在中文分词阶段采用python语言的”结巴”分词工具进行分词,针对分词后的单个词语,使用TF-IDF计算出单个词的权重,最后文档便可表示成由词权重组成的向量。
3.2 文本分类
能源行业主要包括石油化工行业、电力行业、核电行业、煤炭行业和新能源行业,系统的文本分类模块主要针对这五个比较常见的能源行业进行分类,SVM的训练集和测试集都应来源于这五个能源行业,语义规则也应该按照这五个行业的事故特征进行定义。
系统的SVM分类器使用台湾大学林智仁副教授开发的LIBSVM模式识别软件包完成,该软件包具有跨平台,支持多种语言,并且对SVM所涉及的参数调节相对比较少的特征。使用LIBSVM实现文本分类的过程如下:
1)针对量化后的文档,手动标注一定量的训练数据集和测试数据集,使其具有类别标签。
2)选择文本训练数据集和测试数据集,这些数据来自于手工标注的文本文档,所有数据的类别标签都是已知的。
3)训练文本预处理,将文本集转化为特征向量集的形式。并选择文本分类所使用的特征向量,选出的特征向量在多个类别之间具有一定的区分度。
4)输出LIBSVM支持的量化的训练样本集文件,输出的文件必须满足使用LIBSVM训练所需要的数据格式。
5)测试数据集预处理,同样将测试数据集转化为特征向量集的形式。
6)输出LIBSVM支持的量化的测试样本集文件。
7)使用训练集训练LIBSVM分类器。
8)使用测试集验证LIBSVM分类器的精度。
9)如果经过LIBSVM训练出来的分类模型精度很差,可以通过LIBSVM自带的交叉验证功能来实现参数的寻优,通过搜索参数取值空间来获取最佳的参数值,使分类模型的精度满足实际分类需要。
经过LIBSVM分类模型分类后的文本还需要经过规则的优化,去除掉一些由于SVM分类精度不足而错误分类的文本,系统中采用TML文本挖掘语言实现规则的编写,TML可以自定义上下文的语义环境,从而可以自定义语义规则和语义关系。我们把符合语义规则的文本筛选出来,从而提高文本分类的准确率与召回率。
在使用规则进行过滤SVM结果的过程中,我们采用TML语言来定义语义规则。新闻中的语义要素一般以一定的格式出现,例如新闻首句一般介绍相关事故的发生时间地点,以“*年*月*日**地点”的格式出现,相关责任单位一般以“***有限责任公司”的形式出现,如果文章中出现“瞒报”,“隐瞒未报”等字眼时,表示这场事故有瞒报的嫌疑,还有如果出现“造成**受伤”,可匹配出伤亡人数。如匹配伤亡人数的tml语义规则为:
CONCEPT create := OR("造成","已有","另有","已致","导致");
CONCEPT worker := OR("工人","矿工","人","名工作人员","学生");
CONCEPT death :=OR("死亡","受伤","遇难","被困","没有出来","倒地","生死不明","中毒","身亡","伤亡","灼伤","重伤");
PREDICATE death_num_2(create c , worker w , death d){
DIST_8(ORD(c,w,d)));}
规则中先定义表示“发生”的概念,命名为create;又定义了工人对象的概念,命名为worker;最后定义表示遇难的概念,命名为death;最后的关系表示如果create,worker,death三个概念表示的词语按顺序出现,并且两个概念中间间隔的词不超过8个,就匹配到了文中表示伤亡的语句。
最后还应该对得出的事故类型应该与SVM分类器得到的分类结果一致,如果分类结果不一致,则按照规则得到的事故类型作为分类最后的结果展示。与事故类型一同展示的还有由规则得到的事故发生时间,发生地点,相关企业,是否瞒报,伤亡人数这些语义要素。
3.3 结果展示
根据以上的技术框架,我们以单纯使用机器学习做分类的方式与使用机器学习与规则相结合做分类两种方式来对实验数据进行分类展示,实验的训练集为爬虫得到的1000个各类能源安全事故新闻,测试数据同样规定为1000条各类能源安全事故新闻。录入训练集后,我们把1000条测试集作为样本总量,从SVM分类结果中计算出正确分类的总数来计算准确率和召回率。本实验平台基于LIBSVM,使用LIBSVM的python接口函数实现机器分类。试验中影响分类果的主要是文本分类的准确率和召回率,准确率和召回率计算公式为:
测试数据需要打上对应能源类型的标签。系统的结果是把抓取的新闻分为石油化工行业能源事故、电力行业能源事故、核电行业能源事故、煤炭行业能源事故和新能源行业能源事故五种事故类型,测试数据同样需要事先标注好事故类型,最后计算精准率与召回率时,分别根据不同的行业类型计算。
正确划分的样本会经过机器分类与规则的过滤,最后呈现在系统上。我们把单纯使用机器学习分类与使用机器学习与规则相结合的方式进行对比,针对1000篇测试数据,实验得到的准确率与召回率如表1:
经实验结果得知使用机器分类与规则结合的方式准确率有所提高。除了对行业类别进行划分外,规则还对文档中的事故时间,事故地点,相关事故企业,有无瞒报这些语义要素进行了识别。分析出这些语义要素后,可以更加直观地反映出事故发生的情况,用户可以更加直观地了解事故概况。
4 结束语
能源行业安全事故网上监控系统旨在向政府部门以及关心能源安全的各种社会机关提供互联网上实时的能源安全事故快报,系统核心算法是基于SVM的文本分类算法与基于规则的类别识别方法,将两者结合起来使用不仅可以改善机器分类精准率不高的缺点,也可以克服规则适应性不强的问题。分类结果受限于机器学习所使用的训练样本数量以及规则定义的好坏,在今后的工作中需要提高训练样本数量和规则的质量,以提高系统分类准确率和召回率。
参考文献:
[1] Nathan Bell, Yu Yizhou. Particle - based simulation of granularmaterials[J]. ACM SIGGRAPH Eurographics Symposium onComputer Animation, 2005: 8-198.
[2] Rahul Narain, Abhinav Golas. Free Flowing Granular Materials with Two-Way Solid Coupling[J]. ACM SIGGRAPH Asia. 2010:6- 29.
[3] 袁晓曦. 基于机器学习的Web文本自动分类[J]. 软件导刊, 2011(1): 26-28.
[4] 宋静. 支持向量机的应用研究[J]. 电脑知识与技术, 2012(33),194-196+199.
[5] Rahul Narain, Abhinav Golas. Free Flowing Granular Materialswith Two-Way Solid Coupling[J]. ACM SIGGRAPH Asia, 2010: 29-6.
[6] 张處. 基于关联分析的文本分类特征选择算法[J]. 计算机工程, 2010(22): 184-186.
[7] 陈庆轩. 中文文本分类中基于文档频度分布的特征选择方法[C]. 黑龙江省计算机学会年学术交流年会论文集, 2009.
[8] 覃世安, 李法运. 文本分类中 TF-IDF 方法的改进研究[J]. 现代图书情报技术, 2013, 29(10): 27-30.
[9] 王义忠, 刘循, 吴迪. 一种改进的SVM文本分类算法[J]. 现代计算机: 普及版, 2014(9): 16-20.
[10] 孟涛, 李佳静. TML: 一种高校的文本挖掘语言[J]. 计算机研究与发展, 2015(3): 553-560.