【技术实现步骤摘要】
一种基于数控机床故障知识图谱的智能问答方法及其系统
[0001]本专利技术属于知识图谱问答
,具体涉及一种基于数控机床故障知识图谱的智能问答方法及其系统。
技术介绍
[0002]随着全球制造业的高速发展,数控机床的应用越加广泛,在企业生产制造中变得不可或缺。如果数控机床某些设备发生故障时不能及时发现并且处理,将影响整个系统的正常运行,甚至导致系统停止运转,这会给企业带来严重的经济损失和人员伤亡。但是,在使用数控机床的过程中,运行环境、工作人员操作不规范等因素都会不可避免地造成数控机床发生故障,并且一旦发生故障,数控机床在设备运行中产生的海量状态数据以及监控变量会使维修难度远远高于普通机床。
[0003]进入二十一世纪后,由于互联网的迅猛发展,网上信息不管是种类还是数量都呈现爆发式的增长。为了有效管理和利用互联网上的海量信息,谷歌、微软等公司采用关键词搜索的方法来优化搜索工具:用户只需输入一些关键词,搜索工具就会搜索出关键词相关的网页供用户选择。但是,基于关键词的搜索方式没有考虑到文字之间深层的语义关系,搜索的效率比较低下。基于此背景,谷歌公司在2012年11月提出了知识图谱(Knowledge Graph,KG)的概念,并将它应用于搜索引擎中,用于提升搜索工具的能力,增强用户的搜索质量。
[0004]基于知识图谱的智能问答系统的主要思想是:通过分析问题,将问题转化为一个包含实体和关系的查询语句,在知识图谱中进行查询,返回的三元组即为问题的答案。基于知识图谱的智能问答系统被应用到电影推荐、数控机床
【技术保护点】
【技术特征摘要】
1.一种基于数控机床故障知识图谱的智能问答方法,其特征在于,包括以下步骤:S1、构建数控机床故障知识图谱:将收集到的数控机床设备维修记录进行处理,保留实体和实体之间的语义关系,生成故障三元组,所述的故障三元组包括头实体、关系和尾实体,将故障三元组储存在数控机床故障知识库中,按比例将故障三元组拆分为训练集、验证集和测试集,将故障三元组导入Neo4j图数据库中形成一张全新的数控机床故障知识图谱;S2、构建融合GAT和RotatE的知识推理模型并进行训练:融合GAT和RotatE的知识推理模型包括图注意力层部分和链接预测层部分;将数控机床故障知识库中的故障三元组输入图注意力层,经过训练后得到的实体和关系的嵌入表示向量被输入到链接预测层;在链接预测层,采用随机采样的方式从正例故障三元组中得到负例故障三元组,通过得分函数计算正例故障三元组和负例故障三元组的得分,循环迭代优化结束后保存链接预测层输出的实体和关系的嵌入表示向量;S3、问题识别:构建智能问答系统网页,获取用户提出的问题文本,利用Python库和自定义词典提取问题文本的关键词,将问题文本的关键词和数控机床故障三元组的实体进行语义相似度计算,确定问题三元组的头实体,通过特征词匹配和意图识别相结合的方式确定问题三元组的关系,从数控机床故障知识库中随机一个实体作为问题三元组的尾实体;S4、答案输出:用数控机床故障知识库中的实体替换问题三元组的尾实体得到被替换问题三元组,调用融合GAT和RotatE的知识推理模型训练得到的实体和关系的嵌入表示向量,将被替换问题三元组转化为向量的形式,利用得分函数计算被替换问题三元组的得分,将被替换问题三元组按照得分进行排序和知识过滤,最后将得分最低的十个被替换问题三元组以表格的形式输出给用户。2.根据权利要求1所述的一种基于数控机床故障知识图谱的智能问答方法,其特征在于,在步骤S1中所述的构建数控机床故障知识图谱,包括:S1.1、数控机床设备维修记录处理:将收集到的数控机床设备维修记录进行处理,删除缺失行和无意义行,保留设备名称、故障情况和维修结果三种实体类别和不同实体类别之间的语义关系,根据保留的实体类别和语义关系构建由头实体、关系和尾实体组成的故障三元组,将故障三元组存储在数控机床故障知识库;S1.2、划分训练集、验证集和测试集:按照7:2:1的比例将故障三元组随机划分为训练集、验证集和测试集三部分,训练集用于更新融合GAT和RotatE的知识推理模型的参数,验证集用于对融合GAT和RotatE的知识推理模型的参数进行调整,测试集用于对融合GAT和RotatE的知识推理模型的泛化能力进行评价;S1.3、构建数控机床故障知识图谱:利用Python创建数控机床故障知识图谱,向数控机床故障知识图谱中插入数控机床故障知识库中的故障三元组,故障三元组的实体和关系分别用数控机床故障知识图谱的节点和边表示,通过Neo4j图数据库生成一张全新的数控机床故障知识图谱并进行可视化展示。3.根据权利要求1所述的一种基于数控机床故障知识图谱的智能问答方法,其特征在于,在步骤S2中所述的构建融合GAT和RotatE的知识推理模型并进行训练,包括:S2.1、构建图注意力层:图注意力层采用注意力机制,通过聚合函数进行建模,计算数控机床故障知识图谱中的节点和邻居节点的权重关系,然后对权重关系进行非线性激活,通过逻辑回归函数得到注意力系数,最后将注意力系数加权聚合得到输出时节点的嵌入表
示向量,进行代码实现时指定图注意力层的各层节点数、学习率、迭代次数;为了将融合GAT和RotatE的知识推理模型输入的实体和关系转换到向量空间中,通过已初始化的矩阵W(W∈R
F
′×
F
)定义一个映射b:R
F
′
×
R
F
→
R,其中F和F'分别表示输入时实体和关系的嵌入表示向量的维度和输出时实体和关系的嵌入表示向量的维度,再由注意力机制计算得到节点i和节点j的权重关系:e
ij
=b(Wx
i
,Wx
j
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,e
ij
是节点i和节点j的权重关系,b是映射向量,W是节点i和节点j的线性变换矩阵,x
i
是节点i,x
j
是节点i的邻居节点j;加入LeakyReLU非线性激活函数,使用softmax函数进行正则化处理,得到节点i的注意力系数:其中,α
ij
是节点i的注意力系数,N
i
是第i个节点的邻居节点,exp(x)是数学运算e
x
,||是向量拼接操作,b
T
是映射向量b的转置,x
k
是第k个节点的邻居节点;将所求的节点i的注意力系数加权求和,可得训练后节点i的嵌入表示向量:其中,σ是非线性转换操作,x
i
′
是训练后的节点i的嵌入表示向量;S2.2、构建链接预测层:利用RotatE模型构建融合GAT和RotatE的知识推理模型的链接预测层,采用随机采样的方式从正例故障三元组中得到负例故障三元组,通过得分函数计算正例故障三元组和负例故障三元组的得分,进行代码实现时指定RotatE模型实体和关系的嵌入表示向量的维度、损失函数、得分函数;RotatE模型的基本思想来源于欧拉公式:e
iθ
=cosθ+isinθ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)其中,指数iθ被表示为在复数向量空间中的旋转角度θ;因此,RotatE模型将实体和关系映射到复数向量空间中,并且定义关系为从头实体嵌入表示向量到尾实体嵌入表示向量的旋转角度;给定一个故障三元组,故障三元组的头实体嵌入表示向量经过故障三元组的关系嵌入向量旋转后得到的旋转向量应该尽可能接近故障三元组的尾实体嵌入表示向量;故障三元组的旋转向量和故障三元组的尾实体嵌入向量越靠近,故障三元组的实体和关系的嵌入表示向量越准确;用距离函数来计算故障三元组的旋转向量和故障三元组的尾实体嵌入向量的靠近程度,计算公式如下:其中,d
r
(h,r,t)表示故障三元组的得分结果,h表示故障三元组的头实体嵌入向量,r表示故障三元组的关系嵌入向量,t表示故障三元组的尾实体嵌入向量,表示圈乘操作,||
·
||
L1/L2
表示L1范数或L2范数,具体计算公式如下:
其中,X为矩阵,x
i
为矩阵中的第i个元素;S2.3、训练融合GAT和RotatE的知识推理模型:将数控机床故障知识库中的故障三元组的训练集输入到融合GAT和Rotat...
【专利技术属性】
技术研发人员:马亚杰,张昊阳,姜斌,冒泽慧,陆宁云,
申请(专利权)人:南京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。