摘要:针对难以从煤矿机电设备事故表象和部分监控数据判断设备事故根本原因,以及缺少能够利用历史数据、经验知识的有效手段来提高设备事故处理效率等问题,构建了煤矿机电设备事故知识图谱。首先设计四组元本体模型的数据关系,确定本体及本体之间的关系类型;然后根据设计的数据关系,采用机器学习和规则模板相结合的方法从数据库、文本中抽取实体、关系和属性;最后基于 Python 语言,通过 py2neo 库用 Cypher 语句对实体、关系和属性进行创建并存入 Neo4j 图数据库,实现知识图谱的构建和更新。煤矿机电设备事故知识图谱在煤矿机电设备事故诊断、风险管理和智能问答等方面的应用可使用户能够高效利用煤矿机电设备事故相关知识,帮助设备维护人员快速查找事故链条、定位事故原因并提出维修方案,达到降低事故率、减少事故处理时间的目的。
关键词:煤矿机电设备;知识图谱;Neo4j;事故诊断;风险管理;智能问答
李哲; 周斌; 李文慧; 李晓蕴; 周友; 冯占科; 赵涵 工矿自动化 2022-01-18
0 引言
随着各大能源和煤业集团对矿山智能化和煤矿应急管理要求的逐步提高,对煤矿机电设备的智能化、可靠性及可维护性提出了更高的要求[1-2]。一方面,由于矿井环境恶劣、工况复杂,很难从机电设备事故表象和部分监控数据判断设备事故根本原因,导致事故分析和处理时间长,影响煤矿工作效率和经济效益。另一方面,煤矿通过长时间运营,已经积累了大量机电设备事故分析和处理记录,培养了一批有机电设备事故处理经验的工程师和服务商,但目前缺少能够有机利用历史数据、经验知识的有效手段来提高机电设备事故处理效率。知识图谱技术将知识或数据加以关联,实现知识的描述及推理,并最终实现像人类一样对事物的因果关系进行理解与解释[3-4]。曹现刚等[5]通过定义煤矿装备维护的关键概念、关系及属性,进行基于本体的知识建模,并利用图数据库 Neo4j 存储煤矿装备维护知识,形成煤矿装备维护知识图谱,可提高煤矿装备维护知识管理效率。刘鹏等[6]将知识图谱技术引入煤矿安全领域,对知识概念分类建模,并基于图数据库存储,构建了煤矿安全知识图谱,可用实体关系图的方式直观描述各类概念及概念之间的关系。叶帅等[7]基于煤矿学科知识构建了煤矿领域知识图谱,并利用知识图谱实现精准、快速的智能查询。魏卉子[8]和鹿晓龙[9]构建了煤矿安全知识图谱,可实现知识查询、知识管理等功能,帮助用户快速、准确、直观地学习煤矿安全知识。在上述研究基础上,本文通过对煤矿机电设备事故案例历史数据进行分析,关联设备、事故、原因和处理方式等知识元素,构建了煤矿机电设备事故知识图谱,并利用知识推理和图计算,实现煤矿机电设备事故诊断、风险管理和智能问答。
1 煤矿机电设备事故知识图谱构建 1.1 构建流程
煤矿机电设备事故知识图谱的构建需要将知识进行分析、归纳和标准化,构建有效、可扩展的知识模型。本体作为一种知识表达方式,能够清晰地描述概念的结构、概念之间的关系等领域中实体的固有特征[10]。本体模型通过其知识标志元素保证知识的传递性、关联性和准确性,其表达元素主要包括概念、属性、关系、函数、公理和实例等,在实际使用过程中,根据具体的案例应用进行适当裁剪[11]。
本文以煤矿机电设备为核心,对煤矿机电设备、事故、处理方式等本体之间的复杂关系进行分析,确定采用四组元本体模型,并利用机器学习方法不断对图谱进行完善更新。四组元本体模型定义为 O=,其中各元素含义如下:O——煤矿机电设备事故本体模型;C——概念(或标签),指表达某一类实体对象的集合,本案例中包括设备、事故、处理方式、原因、单位、人员等;R——关系,指概念之间的交互作用关系,本案例中包括组成关系、继承关系及其他业务关系,例如涉及、执行、派遣、导致、维修等;A——属性,指概念具有的属性和属性值,本案例中包括时间、型号、ID、厂家等;I——实体,是属于某概念类的基本元素,图谱的构成节点。本文采用自上而下和自下而上结合的方式构建煤矿机电设备事故知识图谱,流程如图 1 所示。首先,设计本体模型的数据关系,确定本体及本体之间的关系类型;然后,根据设计的数据关系,从数据库、文本中抽取实体、关系和属性;最后,利用 Python 语言对实体、关系和属性进行创建并存入 Neo4j 图数据库,实现知识图谱的构建和更新。
1.2 数据关系设计
根据煤矿业务特点,将《神东煤炭集团公司机电事故案例分析手册》、《煤矿机电设备使用手册》和《煤矿职工安全手册》中涉及的知识本体进行归纳并梳理其中关系,形成本体模型数据关系,如图 2 所示,本体模型以设备为核心,通过包含、涉及、导致、执行、预防等关系类型,关联了事故、原因、措施、操作、处理、灾害、规定、人员、后果和维护保养等本体。本体模型数据关系的核心作用是确定 3 个逻辑链条:① 设备链条。确定设备系统、子系统、组件和零件之间的构成关系。② 事故链条。确定各类事故涉及的设备、事故和事故之间的逻辑关系、原因和事故之间的因果关系。③ 维护链条。确定某类事故发生前,应采取的设备维护保养措施和事故预防规定;事故发生后,应遵循的制度规范、应执行的处理措施和应调动的处理人员。
1.3 知识抽取
知识抽取一般指从结构化或非结构化数据中抽取实体、关系和属性。实体抽取需要在数据库和文本中识别出各级设备、措施、事故和原因等跟业务相关的实体名词;关系抽取是在实体抽取的基础上,通过语义规则等方法找到实体之间的关联关系;属性抽取指提取设备、措施、事故等实体的属性参数[12]。知识抽取的质量对知识图谱构建效率和准确性影响极大。基于机器学习的知识抽取方法具有泛化能力强、使用灵活和便于更新等特点,但在输入数据少的情况下准确性难以保证。基于规则模板的知识抽取方法具有准确性高和资源消耗少等特点,然而知识抽取涉及的文本内容和格式存在不确定性,该方法无法准确实现跨段落的逻辑关系提取[13]。因此,本文将机器学习和规则模板相结合进行知识抽取:首先将煤矿机电设备相关手册等文本作为 BiLSTM (Bi-directional Long Short-Term Memory,双向长短期记忆)+CRF(Conditional Random Field,条件随机场)机器学习模型[14]的输入数据,实现知识图谱实体的自动抽取;然后,以 BiLSTM+CRF 机器学习模型的实体抽取结果为基础,制定专业词库(包括包括煤矿机电设备、事故和措施等专业名词),编制规则模板并利用开源库 Pyltp 实现简单句式的关系提取;最后,对于涉及上下文含义分析并且跨句子或跨段落的复杂关系提取,需要进行人工处理,后续可根据业务需要定制模板以适应复杂文本的知识抽取。
1.4 图谱元素创建及知识存储
综合考虑易用性和稳定性,图谱元素创建和知识存储采用 Python+Neo4j 技术路线。 Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络上而不是表中,同时 Neo4j 也是一个高性能的图引擎,具备图计算功能。本文使用 Python 语言,通过 py2neo 库用 Cypher 语句对 Neo4j 图数据库进行操作[15]。在 Neo4j 图数据库中,利用标签、节点、关系和属性对四组元本体模型进行描述,具体描述方式见表 1。图谱元素创建具体方法:利用 create()语句创建节点、节点标签和节点属性,利用 match()create()语句创建两节点之间的关系和关系属性,利用 return()、where()、match()、order()语句分别实现实体、关系和属性等图谱元素的加载、检索、匹配和排序。创建图谱元素后,用关系将所有节点连接形成一个能够表达数据关系所隐含逻辑链条的知识网络,以图形结构的形式存储于 Neo4j 图数据库中。
2 煤矿机电设备事故知识图谱应用
基于煤矿机电设备事故知识图谱,利用知识推理和图计算实现煤矿机电设备事故诊断、风险管理和智能问答等功能,使用户能够高效利用煤矿机电设备事故相关知识,帮助设备维护人员快速查找事故链条、定位事故原因并提出维修方案,达到降低事故率、减少事故处理时间的目的。
(1) 煤矿机电设备事故诊断。煤矿机电设备事故知识图谱蕴含设备、事故、原因、措施等本体之间的隐含关系,通过对关系的多级匹配和贝叶斯网络技术,可使人们快速了解事故现象背后的隐含知识、定位事故原因,实现事故原因推理、事故链条分析、事故结果推理和事故处理建议等功能,解决机电设备事故依靠人为经验、处理时间长等问题。利用基于知识图谱的知识推理技术,可在历史事故数据的基础上预测未来可能发生的类似事故,实现煤矿机电设备预测性维护。
(2) 煤矿机电设备风险管理。Neo4j 图数据库利用图计算中的度中心性计算,可以从繁杂的事故数据中分析出每台设备的事故数量和每个事故原因的发生数量并进行排序,帮助煤矿确定机电设备事故重点需要关注的设备和原因,协助煤矿进行日常的设备风险管理工作。
(3) 智能问答。煤矿机电设备和数据种类繁多,每一类数据查询又涉及不同关键字,导致现有信息平台的查询过程比较复杂,往往需要多次查询或展开多级目录。煤矿机电设备事故知识图谱在语义表达方面具有天然优势,智能问答在煤矿机电设备事故知识图谱的基础上结合了自然语言处理和分词技术,用户输入事故简单描述后,便可得到多级的、深层次的关联结果,便于用户快速、准确地查询所需结果,浏览关联信息,提高工作效率和知识共享能力。
3 结语
从数据关系设计、知识抽取、图谱元素创建及知识存储等方面描述了煤矿机电设备事故知识图谱构建流程。通过设计四组元本体模型的数据关系,确定了本体及本体之间的关系类型;以数据关系为依据,从数据库、文本中抽取实体、关系和属性;采用 Python+Neo4j 技术路线创建图谱元素并实现知识存储。煤矿机电设备事故知识图谱可应用于煤矿机电设备事故诊断、风险管理和智能问答等方面,帮助设备维护人员快速查找事故链条、定位事故原因并提出维修方案,达到降低事故率、减少事故处理时间的目的。