煤矿工种知识图谱智能问答研究

2024-03-25 02:05程浩然丁恩杰
计算机技术与发展 2024年3期
关键词:工种意图图谱

刘 鹏,程浩然,王 莹,魏 微,丁恩杰

(1.矿山物联网应用技术国家地方联合工程实验室,江苏 徐州 221008;2.中国矿业大学 物联网(感知矿山)研究中心,江苏 徐州 221008;3.中国矿业大学 信息与控制工程学院,江苏 徐州 221116)

0 引 言

中国是煤炭产销大国,煤矿安全生产一直是关乎全局的大事。分析煤矿安全生产暴露出的问题,其深层次原因往往包括作业人员专业知识缺乏、安全意识淡漠、工种违规作业以及安全管理流于形式等重要人为因素。煤矿是一个复杂的巨系统,煤矿工种繁多[1],作业人员众多,切实提高煤矿作业人员的专业知识,增强煤矿工种人员的专业安全意识和能力,对减少煤矿事故发生,有效促进安全生产水平,具有基础而重大的意义。该文通过对知识图谱和智能问答理论及实践研究,通过多源搜集大量煤矿工种专业知识语料,构建了煤矿工种知识图谱,并基于此实现了智能问答系统,为煤矿工种人员准确快速获得安全生产专业知识提供一个有益路径。

国内外在智能问答领域的研究经历了很长一段发展时期。1950年,英国数学家阿兰·图灵提出了“图灵测试”[2-3]的概念,被认为是智能问答的前身。20世纪60年代,QA(Question Answering)[4]的概念被正式提出,21世纪初开放域的检索式问答逐渐发展起来[5]。2012年,知识图谱(Knowledge Graph)[6]的概念由Google正式提出,此后,基于知识图谱的智能问答(Knowledge Graph Question Answering,KGQA)成为研究热点,其核心在于基于知识图谱理解用户问题给出对应答案,系统结合了机器学习、统计学习、自然语言处理等学科领域,主要通过信息检索[7]、语义分析[8]、深度学习[9]等技术手段,从大量数据中提取关键信息。之后预训练模型BERT[10]的提出,使得KGQA的研究又进了一步。Lukovnikov等人[11]使用BERT帮助检测实体和预测实体关系,首次演示了通过BERT完成简单的KGQA任务,基于查询标签相似性的排名获得答案。Saxena等人[12]利用知识图谱嵌入的方法提出了EmbedKGQA模型,通过RoBERTa[13]将问题进行词嵌入。Nair等人[14]提出了一个结合知识图谱和预训练Bert的问答模型,并运用于远程教育领域。

在煤矿技术领域,曹现刚等人通过定义煤矿装备维护的关键概念进行本体建模,利用Neo4j构建煤矿装备维护知识图谱[15]。尚雅琪以煤矿事故案例为对象,基于深度学习研究知识图谱的构建过程,并构建煤矿事故领域知识图谱[16]。叶帅[17]通过知识抽取算法构建煤矿领域知识图谱,并基于Spark的朴素贝叶斯分类器实现智能知识查询。张淑霞[18]对煤矿领域知识进行细分并定义实体间关系,在此基础上构建知识图谱,并实现了煤矿领域的知识问答系统。

经文献调研发现,目前尚没有煤矿工种操作规范知识图谱及智能问答系统的相关报道。经笔者分析研究,煤矿工种知识专业性极强,来源广泛且离散,现有图谱研究方法较难泛化至此领域。而且煤矿工种信息多为完整句式,如果只抽取关键词三元组,将很难完整准确反映原文涵义。因此,为满足图谱构建和问答技术要求,同时保持煤矿工种知识的专业性和完备性,该文聚焦此领域开展研究工作,主要贡献如下:

(1)结合命名实体识别和正则化方法,对煤矿工种信息进行抽取及专业分类,将各专业操作人员的岗位职责、操作流程等信息进行结构化存储及利用,改善了煤矿工种结构化知识严重缺失的局面。

(2)通过联合训练方式,对用户问句进行意图识别和槽位提取,提高了问句解析的正确性,同时将Sentence-Bert用于实体链接过程,将问句解析与实体链接相结合,进一步保证了问句解析准确性和答案检索的专业完备性。

(3)在业界首次构建了煤矿工种专业知识图谱及其智能问答系统,为煤矿智能化实践做出了有益探索。

1 系统设计与实现

1.1 系统架构

系统研究内容分为两部分:第一部分为图谱构建,第二部分为智能问答,系统架构如图1所示。

图1 系统研究总体架构

知识图谱是一种多边型关系网络图,由节点(实体)和边(节点之间的连线关系)组成的<实体,属性,属性值><实体,关系,实体>三元组形式的数据构成,通过语义网络描述事物间的联系。

而基于知识图谱的智能问答的核心在于理解用户问题,并基于知识图谱检索返回答案。

1.2 知识图谱构建

(1)数据获取与信息抽取。

数据获取阶段,通过scrapy爬虫框架从煤矿安全生产网等获取相关煤矿数据。信息抽取阶段,首先通过Re正则化方法抽取工种信息中的岗位人员信息,将作业工种分成十大专业,构成工种类别信息;然后利用序列标注模型Bert-BiLSTM-CRF[19]抽取其中的工种属性信息,如岗位职责、设备描述、一般规定、岗位应急处理知识等。通过以上两步骤,抽取的煤矿工种信息分别如表1和表2所示。

表1 煤矿工种专业分类(部分)

表2 煤矿工种属性信息(部分)

(2)三元组知识存储及展示。

该文采用Neo4j作为煤矿工种知识存储平台。与传统的关系数据库相比,Neo4j是一种图数据库,可以有效地对“实体-关系(节点-边)”数据进行建模和存储,有利于对知识进行高效检索及后续的知识问答推理。对岗位抽取信息进行数据清洗,整理成<实体,关系,实体>三元组形式,其中实体类型定义有:专业、岗位、事故、危险源、故障、检查、注意事项、设备等,各实体概念下又包含相关属性,如岗位属性有岗位职责、作业流程等。知识图谱中的实体间需要建立连接诠释实体间的联系,提高图谱中的实体及其关系的表示效果和可搜索范围,因此归纳关系有:包含、操作设备、设备故障、检查处理、危险源、注意、遭遇、案例等,形成的煤矿工种知识图谱Schema如图2所示,图谱可视化展示如图3所示。

图2 工种知识图谱Schema

图3 煤矿工种知识图谱可视化展示(部分)

1.3 智能问答研究

基于煤矿工种知识图谱,进行智能问答系统研究,主要包括三部分内容:意图识别和槽位提取、实体链接、查询语句生成。

(1)意图识别和槽位提取。

对于用户输入的自然语言问题,需对其进行意图识别,简单讲就是分析判断用户要做什么,可将其作为文本分类问题处理;槽位提取,是进一步提取问句中的关键细节信息,对用户意图进行有效补充,以构成具体查询内容,可将其视为序列标注任务。如问句:“采煤机司机发生事故的原因有哪些?”,意图识别后可以得知其意图是询问“事故原因”,槽位即是句子中的关键信息,即{name:“采煤机司机”,accident:“事故”}。

首先,需处理数据集,设计问题模板,按照8∶2的比例将数据集分为训练集和测试集,用于模型训练与测试,如表3所示。

表3 意图识别和槽位提取数据集(部分)

其中intent表示意图,slot表示槽位,设计的意图intent种类包括:包含、遭遇、危险源、注意、操作设备、检查处理、设备故障、设备故障处理、法律法规、检修项目、管理标准、岗位职责、作业流程、应急知识、一般规定、准备工作、收尾工作、处理措施、事故原因、防范措施、避灾路线、案例。设计的槽位slot种类包括:equipment(设备)、breakdown(故障)、post(岗位)、major(专业)、accident(事故)、source(危险源)、name(岗位名)、注意事项(attention)、事故案例(case)。

随后,采用特定模型方法进行意图识别和槽位提取。两个任务若分开训练需二次构建训练语料,而且会有误差传播,造成意图和槽位不匹配的情况。因此,为提高问句理解的准确性,减少人工标注及高效利用数据,该文对意图识别和槽位提取采用联合训练和提取,让文本输入层和中间层共享特征信息,端到端闭环完整实现,采用Bert-wwm-ext作为基础模型,模型结构如图4所示。由图4可以看出,意图intent采用[CLS]的输出进行识别,通过“检修”一词可识别出意图为检修项目;“掘进机”经过e-mbedding层和内部编码层输出结果,再对结果进行序列标注,最终得到槽位类型为“设备equipment”。

图4 Bert联合模型架构

(2)实体链接。

通过意图识别和槽位提取将问句中的“实体提及词(entity mention)”识别出来后,需要将其与煤矿工种知识图谱中的“目标实体”联系起来,才能形成具体的查询语句。实体链接则是将“实体提及词”无歧义地指向知识图谱中“目标实体”的技术方法,一般包括候选实体生成和实体消歧两步骤[20]。由于本研究中知识图谱的实体并不只是单个词的节点,还包括句子类型的节点,因此采用Sentence-Bert(S-Bert)把识别出的提及词和知识图谱中的候选实体转换成embeddings,保持其语义完整行,再计算余弦相似度进行相似度匹配,将相似度最大的作为最终的实体链接结果。其架构如图5所示。

图5 S-Bert架构

输入“设备电缆破碎”,首先会得到知识图谱中的候选实体集合,再进行相似度比对,最后预测出知识图谱中的节点实体为“设备供电电缆破损,容易导致设备供电故障”,相似度结果示例如表4所示。

表4 相似度结果

(3)查询语句生成。

实现KGQA,最后一步必须要形成对数据库的查询语句。Neo4j图数据库有专门的Cypher查询语句,通过构造问题模板,填入意图和槽位信息,并把实体进行替换,即可形成真实具体的查询语句,从图数据库存储的知识图谱中查询到结果。如问题“掘进专业包含哪些具体岗位?”,其对应的Neo4j查询Cypher语句模板构建如下:cypher = ["MATCH (m:专业)-[r:包含]->(n:岗位) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]。

由于问题包括岗位职责、检修项目、应急知识等22个意图,因此可构造22种Cypher语句模板,进一步可将其分为关系类问答、属性类问答。关系类问答主要是通过两实体间的关系构造查询语句,如遭遇、操作设备等,属性类问答则是询问实体节点下的具体属性值,如岗位作业流程,部分如表5所示。

表5 Cypher问题模板(部分)

2 实验结果

2.1 实验环境与参数配置

实验运行环境为Windows10和Geforce RTX 3060,模型搭建采用Python3.7,pytorch1.12。配置参数为:训练批量大小batchsize为32,问题最长长度max_len为70,学习率为1e-7,隐藏单元数hidden_size为768,隐层hidden_dropout为0.1,迭代次数epoch为50,采用Adam作为优化算法,采用交叉熵作为损失函数。

2.2 意图识别和槽位提取结果

根据知识图谱中存储的煤矿工种信息和领域知识,构建意图识别和槽位提取数据集,再通过数据增强技术扩充此数据集,扩充后的数据集包含8 158条问句,将其按照8∶2的比例分为训练集和测试集。部分数据集样式如表6所示。

表6 意图识别和槽位提取数据集(部分)

实验采用精确率(precision)、召回率(recall)以及F1值去评估实验结果。如表7和表8所示,与Bert模型分开做意图识别和槽位提取任务进行比较,可以发现该文联合模型的效果更优,能够识别出大多数意图种类,如表9所示。

表7 槽位提取结果

表8 意图识别结果

表9 与BERT对比结果

为进一步验证联合模型的效果,将其与Attention-RNN[21]和Slot-Gated[22]模型进行对比,结果如表10所示。通过实验结果对比可以发现,该文构建的Bert联合模型的效果更为优越。分析原因可知,将两个任务进行联合建模,能够分别提高意图识别和槽位提取的效果,每个任务在训练过程中对另一任务的训练效果均能起到促进作用。而且训练语料均是根据煤矿工种知识图谱中的实体属性关系等进行构建,相当于在意图识别和槽位提取训练过程中,不断向这两个子任务注入真实知识以及时纠偏,保证它们的联合训练结果都能更接近最优解。

表10 模型对比结果

3 系统实现

采用Django框架搭建煤矿工种知识图谱问答系统,系统最核心的功能就是对煤矿工种的操作规范等信息实现智能问答,并给出知识图谱中相应的查询实体及关系子图分支,显示该系统具有良好的可解释性,如图6所示。

图6 系统运行效果图

4 结束语

以煤矿工种操作规范为语料基础,利用图数据库构建煤矿工种知识图谱,并在此基础上采用意图识别和槽位提取的方式进行领域问答研究,设计了煤矿工种知识图谱智能问答系统。实验证明,该系统可以基本满足煤矿工种人员的专业知识问答需求,对于煤矿人员安全上岗具有一定实践指导意义。未来工作计划在图谱内容的细节完备性和复杂问句理解回答能力方面进一步开展工作。

猜你喜欢
工种意图图谱
原始意图、对抗主义和非解释主义
陆游诗写意图(国画)
特殊工种提前退休问题探析
制定法解释与立法意图的反事实检验
绘一张成长图谱
我能按照从事有毒有害特殊工种办理提前退休吗
补肾强身片UPLC指纹图谱
新形势下如何实行特殊工种提前退休政策
主动对接你思维的知识图谱
特殊工种提前退休有哪些规定?