掌桥专利:专业的专利平台
掌桥专利
首页

查询语句生成方法、装置、系统及计算机可读存储介质

文献发布时间:2023-06-19 11:29:13


查询语句生成方法、装置、系统及计算机可读存储介质

技术领域

本申请涉及自然语言处理技术领域,特别是涉及一种查询语句生成方法、装置、系统及计算机可读存储介质。

背景技术

由于用户对大规模关联数据查询业务的需求提高,以及当前传统关系型数据库在处理大规模关联数据查询时的弱势,以图数据库为数据存储方式的知识图谱技术应运而生。

在此基础上,用户通过输入自然语言,可得到期望的查询结果,这一过程当前主要通过语义解析方式或是信息检索方式来实现,被较多地应用于电商、医疗、金融、教育、公安等领域用于进行关联数据查询和分析。

然而,目标的信息检索仅采用关键词识别的方式来确定实体和关系,导致查询的泛化性存在较大局限,影响查询效率和精度。

发明内容

本申请提供一种查询语句生成方法、装置、系统及计算机可读存储介质。

为解决上述技术问题,本申请提供的第一个技术方案为:提供一种查询语句生成方法,包括:获取自然语言查询语句的三元组信息;基于三元组信息获取查询图结构;基于查询图结构确定查询模式;利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句。

为解决上述技术问题,本申请提供的第二个技术方案为:提供一种查询系统,所述查询系统包括:语句交互模块、语义解析模块、语句生成模块、查询检索模块;其中,语句交互模块,用于获取自然语言查询语句;语义解析模块,用于从自然语义查询语句解析出三元组信息;语句生成模块,用于基于三元组信息获取查询图结构;基于查询图结构确定查询模式;利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句;查询检索模块,用于从图数据库执行目标查询语句。

为解决上述技术问题,本申请提供的第三个技术方案为:提供一种查询语句生成装置,所述查询语句生成装置包括处理器、与所述处理器连接的存储器,其中,所述存储器存储有程序指令;所述处理器用于执行所述存储器存储的程序指令以实现:获取自然语言查询语句的三元组信息;基于三元组信息获取查询图结构;基于查询图结构确定查询模式;利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句。

为解决上述技术问题,本申请提供的第四个技术方案为:提供一种计算机可读存储介质,所述存储介质存储有程序指令,所述程序指令被执行时实现:获取自然语言查询语句的三元组信息;基于三元组信息获取查询图结构;基于查询图结构确定查询模式;利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句。

本申请提供的查询语句生成方法,通过获取自然语言查询语句的三元组信息;基于三元组信息获取查询图结构,通过结合知识图谱图结构快速整理自然语音查询语句的三元组信息;基于查询图结构确定查询模式;利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句,通过选取合适的查询模式,不仅能够降低语句组装生成的难度,加快查询效率,还可以提高语句的可读性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的查询语句生成一实施例的流程示意图;

图2是本申请提供的链式查询图结构的结构示意图;

图3是本申请提供的L型查询图结构的结构示意图;

图4是本申请提供的Y型查询图结构的结构示意图;

图5是本申请提供的X型查询图结构的结构示意图;

图6是本申请提供的辐射型查询图结构的结构示意图;

图7是本申请提供的查询图结构具体实施例的结构示意图;

图8是本申请提供的查询系统一实施例的结构示意图;

图9是本申请提供的查询系统交互示意图;

图10是本申请提供的自校验与循环机制一实施例的框架示意图;

图11是本申请提供的查询语句生成装置一实施例的结构示意图;

图12是本申请计算机可读存储介质的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为提高查询语句的生成效率和生成准确度,本申请提出了一种基于Gremlin图查询语言的查询语句生成方法。其中,在Gremlin图查询语言中,数据以属性图的形式存在,属性图模型结合了传统RDF三元组和表的特征,将属性融于实体和关系之中,提升了图的信息表征能力,伴随着各种图数据库的兴起,对属性图模型的天然支持,使得其在知识图谱领域占据了日益重要的位置。

具体请参见图1,图1是本申请提供的查询语句生成方法一实施例的流程示意图。

其中,本申请的查询语句生成方法应用于一种查询语句生成装置,其中,本申请的查询语句生成装置可以为服务器,也可以为终端设备,还可以为由服务器和终端设备相互配合的系统。相应地,电子设备包括的各个部分,例如各个单元、子单元、模块、子模块可以全部设置于服务器中,也可以全部设置于终端设备中,还可以分别设置于服务器和终端设备中。

进一步地,上述服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,例如用来提供分布式服务器的软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。在一些可能的实现方式中,本申请实施例的查询语句生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

本公开实施例的查询语句生成方法的具体步骤如下:

步骤S11:获取自然语言查询语句的三元组信息。

其中,用户通过客户端输入自然语言查询语句,然后对自然语言查询语句进行语义解析得到自然语言查询语句的三元组信息。三元组是知识图谱中知识表示的基本单位,简称SPO,三元组被用来表示实体与实体之间的关系,或者实体的某个属性的属性值是什么。从内容上看三元组的结构为:“资源-属性-属性值”,资源实体由URI(统一资源标识符)表示,属性值可以是另一个资源实体的URI,也可以是某种数据类型的值,也称为literals(字面量)。

例如,自然语言查询语句“这个网页的作者是Oo”转化为三元组,即可以表示为(网页,作者,Oo)。

步骤S12:基于三元组信息获取查询图结构。

其中,查询语句生成装置根据自然语言查询语句的三元组信息在整个图模型中获取对应的查询图结构。具体地,查询图结构一般是指根据查询意图产生的图结构,其在概念层面属于整个图模型的子图,也称概念子图。对其进行实际的标签(label/tag)和属性值(property key value)规约后,就可以据此直接或间接地生成等价的查询语句。根据不同的GQL(Graph Query Language,图查询语言),如果采用声明式查询语言,比如SPARQL\Cypher等,可以直接生成;若是Gremlin等命令式语言,则需要自身确定遍历逻辑。

本申请实施例获取三元组信息的查询图结构的过程具体如下:

查询语句生成装置通过将三元组信息转化为关系矩阵,通过考察关系矩阵的基本特征,识别关系矩阵的拓扑结构。首先,查询语句生成装置将三元组中的关系三元组,即表示边的三元组转换成关系矩阵。

例如,若某个自然语言查询S

考察该关系矩阵,可知:(1)n等于查询图结构中的节点数;(2)第i行元素之和等于点V

在上述关系矩阵的定义基础上,结合图结构和实际查询场景,通过归纳,可以总结出以下基本的子图结构,需要说明的是,以下子图结构的表现形式可以随着整体图模型结构和查询场景的变化进行扩充或删减:

(1)链式结构:如图2所示,所有节点的中心度都不大于2,起始点仅有出度,且值为1;终点仅有入度,且值为1;起始点和终点之间可以有若干个中心度为2的(出入度各为1)节点,起始点和终点之间也可以没有其他节点。链式结构是最简单的原子结构。

(2)L型结构:如图3所示,至少包括三个节点,中心点的中心度为2,出度为2,入度为0;其余两个节点的入度为1,出度为0。

(3)Y型结构:如图4所示,至少包括四个节点,中心点的中心度为3,包括入度为1,出度为2;中心点周围有一个输入点,两个输出点,输入点仅有出度,且值为1,输出点仅有入度,且值为1。

(4)X型结构:如图5所示,至少包括五个节点,其中一个节点的出度为2,且入度也为2,称该节点为中心点;中心点周围有两个输入点和两个输出点,输入点仅有出度,且值为1,输出点仅有入度,且值为1。

(5)辐射型结构:如图6所示,包括n个节点,其中有且仅有一个中心点的出度为n-1,入度为0;其余n-1个节点仅为该中心点的输出点,入度为1,出度为0。

查询语句生成装置通过考察三元组信息转化的关系矩阵的相关值来判定查询图结构。

本申请实施例判断查询图结构通过将三元组转化为关系矩阵表示,借助关系矩阵的相关特征并结合图理论,归纳出了查询图结构的范式,并提出几种常见的查询图结构,为后续的查询模式的确定奠定了基础。

步骤S13:基于查询图结构确定查询模式。

其中,查询语句生成装置判定查询图结果后,进而决定采用的查询模式,具体地,可以通过分类算法识别出查询图结构后,将查询图结构映射到指定的查询模式中。

本申请实施例的Gremlin查询语句同时支持声明式查询模式(match模式)和过程式查询模式。根据查询图结构,选取适当的查询模式,不仅能降低Gremlin查询语句组装生成的难度,加快查询效率,同时能够提高语句的可读性。

本申请提供两种查询模式,需要说明的是,以下两种查询模式的简单变形及其组合均属于本申请的保护范围内,在此不一一列举所涉及的可能性。两种查询模式可以采用以下两种策略进行描述:

第一查询模式:找出查询图结构中最长链式路径作为主路径,用顺序游走模式对主路径进行遍历,对于不包含在主路径中的节点或者边,采用回溯模式进行遍历。

第二查询模式:根据节点的中心点识别出作为中心点的节点,在中点的基础上,利用match模式遍历与中心点连接的每一节点;若存在多个中心点,则采用分层嵌套的match模式进行遍历。

对于查询图结构接近链式结构的,如上述查询图结构中的链式结构、L型结构、Y型结构,则采用第一查询模式;对于查询图结构接近辐射型结构的,如上述查询图结构中的X型结构、辐射型结构,则采用第二查询模式;对于兼具链式结构和辐射型结构特点的查询图结构,则需要综合使用以上两种查询模式,在此不再赘述。

本申请实施例结合查询图结构与Gremlin查询语句的特性,通过两种查询模式确定策略,基本涵盖了多数查询场景,确定了遍历图内对象的整体框架,阐明了Gremlin的声明式与过程式的使用场景,并对其进行了方法论的统一。

进一步地,在确定具体的查询模式后,由于Gremlin查询语句表现出的游走顺序与图数据库中查询遍历顺序是一致的,因此需要细化其内部的游走顺序。

游走优先级确定策略的核心原则是不确定性递减与过滤效用递增原则,不确定性递减原则侧重从语义的角度考虑遍历对象的信息量;过滤效用递增原则侧重从过滤效用度量的角度,为不确定性递减原则提供一种定量的计算方式。

对于不确定性递减原则:随着对查询图结构中节点和边的不断遍历,以查询意图为目标的不确定性逐渐降低,在遍历优先级设置中,把能够迅速降低不确定性的遍历设置为高优先级;进一步地,所有的查询都是在整个图的拓扑层次结构上游走的,记录每个对象游走的信息量;将查询图结构代入其中,搜索到一个游走不确定性递减效率最高(最优化目标)的子图拓扑层次结构,即可得到目标查询语句。

对于过滤效用递增原则:总体规模数据分布D一定的情况下,针对对象集合O,其中O(v)表示点集合,O(e)表示边集合,其在属性集合K,谓词集合P,特定值或值范围V下的过滤效用为E

对于原子过滤效用e

在上述遍历过程中,Gremlin查询语句的首次遍历称为初始化遍历,Gremlin查询语句能够同时支持点初始化遍历和边初始化遍历。由于图数据库底层查询策略的约束,如JanusGraph图数据库只有初始化遍历对象用索引迅速定位到id,后续的遍历是通过当前对象获取到其连接对象id后,对其进行属性过滤,故而初始化遍历尤为重要。

本申请实施例针对查询图结构中的每个对象,通过计算对象级,即某个特定点或特定边的过滤效用,并对其进行排序,以将过滤效用最大的对象作为初始遍历对象。

本申请实施例确定游走优先级,通过不确定性递减原则和过滤效用递增原则,在迭代原子过滤效用的基础上,得到子图内对象最优的游走顺序,并将初始化遍历置于最重要的地位,避免了由于初始遍历对象或游走顺序不当导致的查询效率低下。

步骤S14:利用查询模式对自然语言查询语句进行对象组装,生成目标查询语句。

其中,查询语句生成装置确定初始化遍历对象后,在选取的查询模式策略的框架下,后续遍历过程同时考虑对象可达性和对象的过滤效用,从而确定对象组装的顺序。

本申请实施例提供定义的三种基础操作如下:

过滤:根据对象属性限定值或范围筛选对象,对应Gremlin中的filter操作。

连接:根据对象之间的连接关系,进行游走,对应Gremlin中的各种flatMap操作。

回溯:指在图遍历过程中,对于一条直链遍历完后,若存在已遍历完的对象连接的分支,则将当前的遍历位置移动到该对象的过程;对应Gremlin中的selectStep操作。

例如,本申请实施例提供的一种可参考的对象组装过程具体如下:

Step1:定义List(O

Step2:输入查询模式S,初始化遍历对象为O

Step3:如果List(O

当List(O

当List(O

当List(O

最后,组装结束。

Step4:移动当前位置到连接对象,将连接对象标记为O

Step5:将O

取过滤效用最高的(O

Step6:

O

O

取满足O

进一步地,本申请实施例还提供了一种语句简化和调整方式,该简化与调整方式是指在不改变整体游走顺序的情况下,基于Gremlin的某些特性对组装后的查询语句进行调整,达到优化查询性能,提升查询语句可读性等目的。根据适用场景,可将其分为通用型方法,基于图结构的方法和特定场景方法,下面对基于图结构的方法进行具体说明:

为了应对不同业务场景的查询,很多情况下知识图谱图结构上存在一定的冗余信息。不可避免地,Gremlin查询语句中也会存在一些语义上的冗余遍历过程。通过分析图结构元数据,结合Gremlin三元组,可定义满足语义的最小遍历范围,在返回所有遍历对象信息的情况下提高查询效率。

确定满足语义最小遍历范围后,有以下方案进行简化和调整:

(1)分析图结构元数据点边连接信息,识别唯一性连接对象。在Gremlin查询语句中,针对无属性约束的唯一性对象的过滤,可以无需使用hasLabelStep操作。

(2)分析图结构元数据中点边及其属性的冗余信息。在Gremlin查询语句中,针对冗余信息的重复遍历,舍弃过滤效用较低的遍历,并将遍历结束触发点前置;若要求结果包含类型不同的冗余信息,可在触发点之后使用SelectStep操作带出。

本申请实施例的语句简化与调整步骤通过分析图结构元数据,识别图内唯一性对象或冗余结构,以确定最小查询语义图结构。该方法在保证查询语义不变的情况下减少了遍历度数,提升查询效率。

例如,下面通过一个完整的实施例对本申请实施例的查询语句生成方法进行说明:

1.自然语言查询语句:2021年3月1日在杭州市滨江区闯红灯的20岁的男性。

2.解析和根据知识图谱图结构生成三元组:

(1)点属性三元组

(person, age, 20);

(person, sex, 男);

(crossRedLightEvent, name, 闯红灯);

(address, name, 浙江省杭州市滨江区);

(time, dt, 20210301);

(2)关系三元组:

(person, hasCrossRedLightEvent, crossRedLightEvent)

(crossRedLightEvent, hasStartAddress, address )

(crossRedLightEvent, hasStartTime, time)

(3)边属性三元组

(hasCrossRedLightEvent, eventStartAddress, 浙江省杭州市滨江区)

(hasCrossRedLightEvent, eventStartTime, 20210301)

3.查询图结构判定与查询模式确定:

如图7所示的查询图结构,判定为Y型结构,确定使用第一查询模式。

4.游走优先级确定:

根据预置的原子过滤效用值,经过计算后,边hasCrossRedLightEvent的过滤效用最高。

初始化遍历确定:边hasCrossRedLightEvent。

游走优先级排序为:边hasCrossRedLightEvent, person, event, address,time。

需要说明的是,由于边hasStartAddress和hasStartTime不带属性,为了简化,不参与优先级排序。

对象拼装:

hasCrossRedLightEvent→person—hasCrossRedLightEvent→event→hasStartAddress→address—event→hasStartTime→time(其中,“→”表示连接,“—”表示回溯)。

语句简化与调整:

对照以上两种确定满足语义最小遍历范围的方案,在该实施例中,分析三元组和子图结构,不难发现:(1)边hasCrossRedLightEvent的尾结点必为crossRedLightEvent;(2)边上的地址和时间属性与事件结点连接的地址和时间结点的属性是冗余的。所以语义最小遍历步骤为:hasCrossRedLightEvent→person,大大降低了遍历度数。

在本申请实施例中,查询语句生成装置执行上述查询语句生成方法,通过判定查询图结构,确定查询模式,确定游走优先级,进行对象拼装,调整和简化语句等步骤,提升复杂多跳查询的查询效率,为借助知识图谱进行关联数据查询与分析的业务赋能。

请继续参见图8和图9,图8是本申请提供的查询系统一实施例的结构示意图,图9是本申请提供的查询系统交互示意图。其中,查询系统80包括:语句交互模块81、语义解析模块82、语句生成模块83、查询检索模块84。

其中,所述语句交互模块81,用于获取自然语言查询语句。用户在客户端的搜索框中输入自然语言表述的查询语句,语句交互模块81将自然语言查询语句通过http传递到语义解析模块82。

所述语义解析模块82,用于从所述自然语义查询语句解析出三元组信息。语义解析模块82通过调用知识图谱图结构信息并结合自身搭载的算法,将自然语言查询语句解析成三元组信息,并将三元组信息传递给语句生成模块83。

所述语句生成模块83,用于执行并实现上述查询语句生成方法实施例的内容。进一步地,语句生成模块83还可以将查询语句生成方法中间过程中生成的查询图结构返回给客户端,以使用户在客户端根据查询图结构选择并确定其所需要的查询意图,并重新传递给语句生成模块83。语句生成模块83将用户的查询意图和目标查询语句等存入分析数据库,然后启动自校验与循环机制对目标查询语句进行优化。

所述查询检索模块84,用于从图数据库执行所述目标查询语句。图数据库将查询结果返回并经过包装后传递给客户端进行展示。

本申请进一步提出了一种以用户为中心的查询图结构意图自校验与循环机制,请继续参阅图10,图10是本申请提供的自校验与循环机制一实施例的框架示意图。

如图10所示,用户对语句生成模块83返回的查询图结构部分进行意图的确定,图10中所示的person节点为用户确定后的查询意图。后台将此次调用流程中包含的业务信息存入数据库,主要包含时间、用户信息、自然语言查询语句信息、目标查询语句信息、原始意图信息与用户点选意图信息等。这部分业务信息不断输送给模型进行训练,迭代优化后的模型可以根据具体查询业务场景,具体用户查询习惯,反哺给语句生成模块83进行目标查询语句的优化。

本申请实施例提出了一种Gremlin查询语句的自动生成和优化模块的整体系统配套软件模块及其交互过程,以及一种以用户为中心的查询图结构自校验与循环优化机制,为基于知识图谱的语义搜索工程化提供了具体的实践方式。

以上实施例,仅是对本申请的其中一种常见案例而已,并非对本申请的技术范围做任何限制,故凡是依据本申请方案的实质对以上内容所做的任何细微修改、等同变化或者修饰,均仍属于本申请技术方案的范围内。

请参见图11,为本申请查询语句生成装置的一实施例的结构示意图。查询语句生成装置包括相互连接的存储器62和处理器61。

存储器62用于存储实现上述任意一项的查询语句生成方法的程序指令。

处理器61用于执行存储器62存储的程序指令。

其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器61可能是一种集成电路芯片,具有信号的处理能力。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器62可以为内存条、TF卡等,可以存储串匹配预测装置中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,串匹配预测装置才有记忆功能,才能保证正常工作。串匹配预测装置的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。

请参阅图12,为本申请计算机可读存储介质的结构示意图。本申请的存储介质存储有能够实现上述所有查询语句生成方法的程序文件71,其中,该程序文件71可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 查询语句生成方法、装置、系统及计算机可读存储介质
  • 查询语句生成方法、装置、设备及计算机可读存储介质
技术分类

06120112941404