潘道成邓卫民蒋祝巍何荣超于小晴
(国网黑龙江省电力有限公司鹤岗供电公司,黑龙江 鹤岗 154100)
随着能源互联网建设的不断推进,电力系统的规模也不断扩大[1]。电力系统作为我国经济发展的基础支撑系统在日常生产过程会存在安全生产隐患,需要及时进行处理以减少安全事故的发生[2]。
由于电力工作人员以自然语言的形式进行安全隐患记录,记录存在不规范、隐患内容不清楚等问题[3-4]。有文献通过人工经验确定语义框架填充对文本进行表示,但语义框架的二维表形式缺乏灵活性,难以适应复杂的电力设备隐患情况,且框架的定义依赖于人工经验,难以全面考虑隐患记录多样化的表达方式[5]。为避免人工经验的局限,文献[6]采用机器学习算法,借助计算机自动挖掘隐患记录中词级别的规律,从而基于词的统计特征对文本进行表示。然而,机器学习方法所选取的特征局限于关键词的出现与否或出现频率,这些统计特征虽有一定的规律性,但对句中关键词的内在逻辑缺乏充分考虑,可解释性不足,容易局限于隐患记录的字面特征[7-8]。
因此,本文将电力安全隐患记录进行分析和处理,获得安全隐患的实体及其内在关系,并在此基础上构建电力安全隐患知识图谱。利用构建的电力安全隐患知识图谱对隐患进行可视化分析,并对潜在的电力安全隐患进行预测。
电网安全隐患记录表是一种特殊的非结构化文档,形式上具有半结构化文档的特征,但数据流实际上是非结构化的[910]。使用统一的JSON(Java Script Object Notation)生成器,通过配置抽取模版将隐患信息抽取出来,生成JSON 文件,并在此基础上构建相对应的数据本体。根据本体定义的数据属性和特征将隐患数据进行分类。
高效的数据存储与读取是实现知识图谱构建的基础,作为一个实时分布式搜索和分析引擎,可以提供隐患记录的高效搜索及分析,提高电网智能化水平[11-12]。
ES隐藏了Lucene 的复杂性,采用了特殊的倒排索引数据结构。由电网隐患语料中所有不重复的词语组成,建立隐患词语与包含它的隐患语料列表的映射,文档列表的每条记录包括隐患文档ID、隐患出现的频率、出现的位置等。ES是由多个索引组成的,而每个索引由多个索引分片组成。每个索引分片数据只有1份,独立进行数据存储,ES搜索引擎结构如图1所示。
图1 ES搜索引擎结构
(1)隐患数据存储:ES使用Lucene来处理分片级别的索引和查询,因此隐患数据目录中的文件由ES和Lucene写入。新增的隐患数据会被存放在内存的缓存中,并生成日志。当隐患数据足够多或者到达一定时间点时,就会在缓存中生成一个新的分片,并写入磁盘生成一个新的提交点,记录当前所有可用的分片等待所有数据都已写入磁盘。打开新增的分片,可对新增的文档进行搜索。清空缓存,准备接收新的隐患数据。
(2)隐患数据检索:在进行隐患检索时,节点将请求转发到一组包含所有隐患数据的分片。ES使用轮训机制选择可用的分片(主分片或副本分片),并将搜索请求转发过去。ES 从这些分片收集结果,将其聚集到单一的回复,然后将回复返回给客户端应用程序,检索流程如图2所示。
图2 ES搜索引擎检索流程
使用NLPIR(Natural Language Processing-Information Retrieval)中文分词系统对电力安全隐患数据进行处理。NLPIR系统可以实现中文分词、词性标注、关键词提取、情感分析等功能,并支持多种编码、多种操作系统、多种开发语言与平台。
第1步,将电网隐患语料输入NLPIR 中文分词系统分析平台,完成隐患语料的自动切分。
第2步,使用“用户自定义词”功能进行调整。由于电力系统存在大量的专业术语,系统不能自动识别。如“中性点接地装置”,系统自动切分成2个词,需要进行人工修正。
第3步,根据调整后的分词标注以空格分隔相邻的2个词。
将实体、属性及关系数据整合为三元组,形成图结构的电网隐患知识图谱。知识图谱构建流程如图3所示。
图3 知识图谱构建流程
知识储存是将电力生产安全隐患文本中产生的数据进行保存。由于电力生产安全隐患需要长期保存,且电力生产安全隐患数量庞大,需要高性能的数据库进行储存管理。利用Neo4j图数据库技术对电力生产安全隐患进行存储,Neo4j具有成熟数据库的原子性、一致性、隔离性、持久性等所有特性,利用图结构可以更加高效的存储数据,通过Neo4j的Web可视化界面,提供查询和展示功能。
电网安全隐患知识图谱包含了安全隐患实体和实体间的复杂关系。随着电力建设的不断推进,越来越多电力设备和智能终端的加入,使得知识图谱需要进行更新和补充,从而保障知识的覆盖范围和动态分析的准确性。知识图谱的可视化功能可以更直观地展示安全隐患之间的内在关联,方便快速获取安全隐患信息和处理方法。
由于电网安全隐患记录含有大量电力领域专业词汇,在知识图谱构建一般过程的基础上进行以下修改。
(1)分词。由于电力领域词汇具有专业性强、词汇组合方式多样的特点,传统分词方法难以准确进行词汇切割。因此,通过构建电力领域专业词典进行辅助分词。利用专业词典进行隐患实体和属性的匹配,若匹配成功则确定该实体与属性。由于电力领域对实体定义明确,因此可以省略实体消歧步骤。
(2)关系抽取。通过依存句法分析隐患实体和属性各成分间的“主谓宾”、“定状补”等依存关系来识别各隐患实体/属性间是否存在关系及相应关系类型。电力生产安全隐患知识图谱可以结合实体/属性的词性对关系进行限定。
(3)知识图谱构建。Neo4j图数据库作为常用的5种数据库之一,具有高性能、轻量级的特点。利用Neo4j图数据库对电网安全隐患三元组进行可视化表示,构建电网安全隐患知识图谱。
考虑到电网隐患知识图谱可视化技术的实现,搭建基于知识图谱的电网安全隐患动态分析系统,前后端分离B/S(Browser/Server)架构进行开发和维护,业务处理主要在服务器端实现,尽可能使系统各层保持较低的耦合度,减轻了系统开发成本。系统架构分为三层:表示层、业务层、数据层,系统的架构设计如图4所示。
图4 系统架构
采用图结构组织知识的电网隐患知识图谱非常适合用Neo4j进行存储。基于知识图谱的电网安全隐患动态分析系统,采用B/S模式架构,完成对Neo4j的访问,将数据返回客户端并接受客户端的请求,实现显示Neo4j数据库的数据到Web端,并采用Echarts 实现数据的图表可视化。D3.js是一个用js编写的开源图库,他允许用户与图形交互,用可视化的方式在Web端展示知识图谱的网络关系,可以形象化的展示结果,有助于直观揭示对象之间的关系,展示多方面的属性,理解节点之间的连接和关系,确保对关系的理解更直观和形象,诊断技术实现框架如图5所示。
图5 诊断技术实现框架
根据以上流程,首先对电力安全隐患信息进行分词处理,获得隐患信息字段,如:“35 kV”、“长青线”、“雨天”。利用这些隐患信息字段自动生成35 kV 长清线安全隐患知识图谱,并在此基础上实现隐患原因、隐患处理方法、相关规程等信息的检索,实现过程如图6所示。
图6 隐患信息检索和分析过程
在Centos上,使用Docker部署Django后台、LTP、ElasticSearch、Vue前端等请求并配置相关参数,联调使用。本文以吉林某地区电网安全隐患数据作为数据集验证诊断技术的有效性。数据集包含隐患1 355件,其中输电专业272件、变电专业101件、保护及自动化专业98件、配电专业858件,电网专业14件,信通专业12件(其中重大隐患2件,占比0.17)。以变电专业为例进行分析,该专业知识图谱如图7所示。
图7 变电专业知识图谱
根据生成的电网隐患知识图谱,可以分析得到隐患原因主要有:(1)设备长期运行,易受到环境因素的影响,存在安全隐患;(2)设备处置不合理,导致存在安全隐患,如组合电器密度继电器未加装防雨罩、主变压器二次母线未进行绝缘化处理等违反反事故措施项目的隐患;(3)设备设计不合理,存在家族型缺陷或频繁发生同一类型故障为同一厂家的设备。
根据以上分析结果可以针对性的预测易发生隐患位置,部分图谱见图8—10。
图8 互感器部分知识图谱
(1)运行5 a及以上的互感器设备及电磁型电压互感器易发生异常引起故障停运。
(2)变压器瓦斯继电器、压力释放阀防雨措施不完善等反事故措施未落实,易造成保护误动。
图9 瓦斯继电器、压力释放阀部分知识图谱
(3)部分设备引流线线夹、压接管松动问题逐步显现,易造成引流线脱落而引发事故。
图10 引流线线夹、压接管部分知识图谱
对知识图谱生成的结果进行分析,得到隐患的预控和防治方法,可根据知识图谱提出针对性的建议。对运行15 a及以上的互感器设备进行性能抽样检测。对同一厂家、同一型号的互感器应至少抽1台进行性能检测。核查变电设备外绝缘配置情况,对爬距不满足标准要求或污秽严重地区的设备,采用调整爬距,喷涂防污闪涂料、加装硅橡胶辅助伞裙等措施,提高防污闪水平,防止设备发生污闪、雨闪事故。结合变压器停电检修,全面进行绕组测试,准确掌握变压器运行状态。冬春交替季节,加强设备基础情况巡视。
通过深入分析电网智能化建设过程中隐患数据利用率低与隐患预防困难的问题,设计了一种充分利用历史隐患数据的电网安全隐患分析系统,提出了基于知识图谱的电网安全隐患动态分析,并通过实例证明了知识图谱在隐患分析上的优势。其中的非结构化隐患抽取模板,有效实现了隐患数据的处理;基于ES搜索引擎,为电网隐患知识图谱的构建提供数据支撑;NLPIR 中文分词系统可根据电力系统的词汇特点实现了高精度的隐患分词和词性标注,进一步为电网知识图谱的构建奠定了基础。基于知识图谱的电网安全隐患分析充分利用了知识图谱技术的高效储存和可视化的功能,有效提高隐患数据的利用效率,能有效发现潜在的电力安全隐患,保障了电网的安全稳定运行。在后续研究中,将继续提高中文分词的准确率从而提升电网安全隐患的分析效果。