【技术实现步骤摘要】
一种基于GCN与指针网络的自然语言到SPARQL语句的生成系统及方法
本专利技术涉及SPARQL语句生成方法的自然语言处理领域,具体涉及一种基于GCN与指针网络的自然语言到SPARQL语句的生成系统及方法。
技术介绍
随着互联网技术的发展,问答系统在信息检索中扮演着重要的角色,它的研究和发展历经了专家系统、检索式问答、社区问答以及现阶段的知识库问答,有着非常悠久的历史。知识库问答作为问答系统的一种重要类型,通过对问题进行语义理解和解析,生成面向知识库的SPARQL语句,进而利用知识库进行查询、推理得出答案。其中,利用Jena存储知识图谱,利用SPARQL语句查询获得答案,便是知识库问答的一种重要实现方式。在传统的知识库问答中,Text问句需要经过实体与属性识别、实体链接、问句意图识别等诸多步骤才能生成SPARQL语句,则生成过程复杂不利于解析问句。
技术实现思路
本专利技术的目的在于提供一种基于GCN与指针网络的自然语言到SPARQL语句的生成系统及方法,解决了SPARQL语句生成过程复杂、且不利 ...
【技术保护点】
1.一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,包括以下步骤:/n步骤1,接收用户问题语句;/n步骤2,根据用户问题语句获取问题语句图;/n步骤3,利用GCN神经网络模型对步骤2中得到的问题语句图进行训练,获得问题语句图中每个节点对应的图嵌入向量;/n步骤4,搭建指针网络架构,所述指针网络架构包括编码端、Attention层和解码端,其中,编码端为Bi-LSTM模型;解码端为LSTM模型;Attention层包括全连接层和Softmax层;/n构建输入序列,并设定该输入系列的单元数为n;/n步骤5,对步骤4中得到的输入序列进行编码,得到输入序 ...
【技术特征摘要】
1.一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,包括以下步骤:
步骤1,接收用户问题语句;
步骤2,根据用户问题语句获取问题语句图;
步骤3,利用GCN神经网络模型对步骤2中得到的问题语句图进行训练,获得问题语句图中每个节点对应的图嵌入向量;
步骤4,搭建指针网络架构,所述指针网络架构包括编码端、Attention层和解码端,其中,编码端为Bi-LSTM模型;解码端为LSTM模型;Attention层包括全连接层和Softmax层;
构建输入序列,并设定该输入系列的单元数为n;
步骤5,对步骤4中得到的输入序列进行编码,得到输入序列编码向量;将输入序列编码向量与步骤3中得到的图嵌入向量进行拼接,得到编码拼接向量;
将得到的编码拼接向量输入步骤4中得到的指针网络架构的编码端,获得Bi-LSTM模型n个单元输出向量、1个正向隐向量和1个反向隐向量;
步骤6,根据步骤5得到的Bi-LSTM模型单元输出向量、正向隐向量和反向隐向量,结合步骤4中得到指针网络架构的Attention层,得到输入序列每个单元的权重;
根据得到的最大权重对应的输入序列单元,结合步骤4中得到指针网络架构的解码端,生成SPARQL语句。
2.根据权利要求1所述的一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,步骤2中,根据用户问题语句获取问题语句图,具体方法是:
S201、利用BERT+CRF模型对接收到的问题语句分别进行实体识别和属性识别,分别得到实体信息和属性信息;
S202、利用知识图谱获取S201中得到的实体信息和属性信息对应的子图,并将该子图作为问题语句图。
3.根据权利要求1所述的一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,步骤3中,利用GCN神经网络模型对步骤2中得到的问题语句图进行训练,获得问题语句图中每个节点对应的图嵌入向量,具体方法是:
S301、利用Word2vec预训练词向量对步骤2中得到的问题语句图中每个节点进行向量初始化,得到每个节点对应的初始化向量;
S302、利用GCN神经网络模型对S301中每个初始化向量进行训练更新,获得问题语句图中每个节点对应的图嵌入向量。
4.根据权利要求1所述的一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,步骤4中,构建得到的输入序列由SPARQL的关键字表、S3中获得的问题语句图中所有节点对应的实体、边对应的属性以及<end>标识符组成。
5.根据权利要求1所述的一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,步骤5中,对步骤4中得到的输入序列进行编码,得到输入序列编码向量,具体方法是:
利用BERT预训练模型对构建得到的输入序列进行编码,获得输入序列编码向量。
6.根据权利要求1所述的一种基于GCN与指针网络的自然语言到SPARQL语句的生成方法,其特征在于,步骤5中,将输入序列编码向量与步骤3中得到的图嵌入向量进行拼接,得到编码拼接向量,具体方法是:
将输入序列编码向量中的所有节点对应的实体、边对应的属性分别与S4中得到的图嵌入向量在对应节点与边处分别进行拼接,同时,将输入序列编码向量中的SPARQL的关键字表的编码向量及<end>标识符的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。