一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

查询语句生成方法及装置与流程

2021-10-19 23:46:00 来源:中国专利 TAG:查询 图谱 语句 装置 生成


1.本发明涉及知识图谱查询技术领域,特别是涉及一种查询语句生成方法及装置。


背景技术:

2.知识图谱问答任务的目的是根据提出的问题,去知识图谱中查询答案。主要包括对问题的理解,及问题到知识图谱的语义关联。问题的理解从问题出发,对问题进行解析,提取到对应的图谱中的实体、关系或属性。而语义关联指的是将问题的表示转化为知识图谱上的查询语句。
3.查询语句是在知识图谱中查询实体的语句,是一种计算机数据库能读懂的语句。例如:sparql语言的查询语句select?y where{<苹果_(苹果产品公司)><现任董事长>?x.?x<外文名>?y.},即是查询苹果董事长的外文名的查询语句,可以看到查询语句主要由三元组构成,需要查询的实体、属性值、关系或中间未知的实体的位置打上了问号“?”,最终查询的内容需要在select后指定出来,如例句中的“?y”。因此生成查询语句的时候也是要生成类似的三元组(一个或多个)组合,需要查询的位置用带“?”的名称表示。若查询语句设置不合理,采用查询语句对知识图谱问答任务进行处理时,所查询的结果准确度低。因此,生成合理地查询语句在指示图谱问答任务处理时至关重要。


技术实现要素:

4.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种查询语句生成方法及装置,电子设备。
5.第一方面,本发明实施例公开了一种查询语句生成方法,包括:依据起始实体生成一跳查询语句对知识图谱进行查询,其中,所述一跳查询语句包括:查询所述起始实体与其他实体关系的第一查询语句,以及查询与所述起始实体所连接的其他实体的第二查询语句;
6.针对所述第二查询语句查询得到的每个所述其他实体,依据所述其他实体生成下一跳查询语句对知识图谱进行查询,其中,所述下一跳查询语句包括:查询下一跳实体的第三查询语句,以及对已查询到的各实体添加条件约束的第四查询语句;
7.循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;其中,所述终止查询条件包括以下至少之一:所要查询的实体内容只包含单个实体;查询到指定最多条数;
8.对各跳查询语句进行拼接,生成候选查询语句。
9.可选地,在查询图中,e加编号表示实体,实体与实体间的关系由r加编号表示,r为边;
10.所述第一查询语句包括:
11.<e1>?x<e2>和
12.<e2>?x<e1>;
13.其中,e表示实体,<e1>表示起始实体,<e2>表示其他实体,所述第一查询语句用于查询实体与实体间关系;
14.所述第二查询语句包括:
15.<e1><r1>?x和
16.?x<r1><e1>
17.其中,<e1>表示起始实体,<r1>表示<e1>与?x之间的关系或属性,?x表示其他实体或属性值。
18.可选地,
19.其中,所述第三查询语句包括:
20.?x<r2>?y和
21.?y<r2>?x
22.其中,<r2>表示?x与?y之间的关系或属性,?x表示前一跳查询语句中查询得到的实体,作为下一跳查询的起始实体,?y表示本跳查询语句中待查询的下一跳实体;
23.所述第四查询语句包括:
24.?x<r2><e2>和
25.<e2><r2>?x
26.其中,所述第四查询语句为对?x的约束条件,<r2><e2>为实体集中的实体。
27.可选地,所述对各跳查询语句进行拼接,生成候选查询语句的步骤,包括:
28.按照各跳查询语句的查询顺序、指定的查询内容,依次生成由从第一跳查询语句至最后一条查询语句拼接成的各长度的候选查询语句;其中,所述指定的查询内容为在按顺序生成的各跳查询语句中,最后出现的?内容。
29.可选地,所述方法还包括:针对每个所述候选查询语句,将所述候选查询语句对应的候选查询图中实体和形式一致的查询图求交集或并集,生成候选查询语句。
30.第二方面,本发明实施例公开了一种查询语句生成装置,所述装置包括:第一模块,用于依据起始实体生成一跳查询语句对知识图谱进行查询,其中,所述一跳查询语句包括:查询所述起始实体与其他实体关系的第一查询语句,以及查询与所述起始实体所连接的其他实体的第二查询语句;第二模块,用于针对所述第二查询语句查询得到的每个所述其他实体,依据所述其他实体生成下一跳查询语句对知识图谱进行查询,其中,所述第二跳查询语句包括:查询下一跳实体的第三查询语句,以及对已查询到的各实体添加条件约束的语句;循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;其中,所述终止查询条件包括以下至少之一:所要查询的实体内容只包含单个实体;查询到指定最多条数;生成模块,用于对各跳查询语句进行拼接,生成候选查询语句。
31.可选地,在查询图中,e加编号表示实体,实体与实体间的关系由r加编号表示,r为边;
32.所述第一查询语句包括:
33.<e1>?x<e2>和
34.<e2>?x<e1>;
35.其中,e表示实体,<e1>表示起始实体,<e2>表示其他实体,所述第一查询语句用于
查询实体与实体间关系;
36.所述第二查询语句包括:
37.<e1><r1>?x和
38.?x<r1><e1>
39.其中,<e1>表示起始实体,<r1>表示<e1>与?x之间的关系或属性,?x表示其他实体或属性值。
40.可选地,其中,所述第三查询语句包括:
41.?x<r2>?y和
42.?y<r2>?x
43.其中,<r2>表示?x与?y之间的关系,?x表示前一跳查询语句中查询得到的实体,作为下一跳查询的起始实体,?y表本跳查询语句中待查询的下一跳实体;
44.所述第四查询语句包括:
45.?x<r2><e2>和
46.<e2><r2>?x
47.其中,所述第四查询语句为对?x的约束条件,<r2><e2>为实体集中的实体。
48.可选地,所述生成模块包括:
49.第一子模块,用于按照各跳查询语句的查询顺序、指定的查询内容,依次生成由从第一跳查询语句至最后一条查询语句拼接成的各长度的查询语句;其中,所述指定的查询内容为在按顺序生成的各跳查询语句中,最后出现的?内容。
50.可选地,所述生成模块还包括:
51.第二子模块,用于针对每个所述候选查询语句,将所述候选查询语句对应的候选查询图中实体和形式一致的查询图求交集或并集,生成候选查询语句。
52.第三方面,本发明实施例公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质;当所述指令由所述一个或多个处理器执行时,使得所述处理器执行如上任一项所述的查询语句生成方法。
53.第四方面,本发明实施例公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一项所述的查询语句生成方法。
54.本发明实施例中,依据起始实体生成一跳查询语句对知识图谱进行查询;针对第二查询语句查询得到的每个其他实体,依据其他实体生成第二跳查询语句对知识图谱进行查询;循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;对各跳查询语句进行拼接,生成候选查询语句。该种依据前一跳的查询结果生成下一跳查询语句的方式所生成的查询语句合理,能够对知识图谱进行全面的查询,提升查询结果的准确性、全面性。
附图说明
55.图1是本发明实施例的一种查询语句生成方法的步骤流程图;
56.图2是本发明实施例的一种查询语句生成装置的结构框图。
具体实施方式
57.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
58.参照图1,示出了本发明实施例的一种查询语句生成方法的步骤流程图。
59.本发明实施例的查询语句生成方法可以包括以下步骤:
60.步骤101:依据起始实体生成一跳查询语句对知识图谱进行查询。
61.本技术实施提供的查询语句生成方法所生成的查询语句适用于对知识图谱的查询。知识图谱可以用三元组表示,例如[

清政府’,

签订’,

天津条约’],[

袁世凯’,

复辟’,

帝制’],[

孙中山’,

就任’,

临时大总统’]这种表示。每条知识均由元组形式表示,一般的三元组有[实体,关系,实体]和[实体,属性,属性值]两种形式。
[0062]
查询语句是去知识图谱中查询实体的语句,是一种计算机数据库能读懂的语句,查询语句可以为sparql语言的查询语句,可用于查询存放图谱三元组的数据库。例如:select?y where{<苹果_(苹果产品公司)><现任董事长>?x.?x<外文名>?y.},即是查询苹果董事长的外文名的查询语句,可以看到查询语句主要由三元组构成,需要查询的实体或属性值的位置打上了问号“?”。因此本技术实施例中所生成查询语句也是要为一个或多个类似的三元组组合,需要查询的位置用带“?”的名称表示。
[0063]
其中,一跳查询语句包括:查询起始实体与其他实体关系的第一查询语句,以及查询与起始实体连接的其他实体的第二查询语句。
[0064]
在查询图中,e加编号表示实体,实体与实体间的关系由r加编号表示,r为边。查询起始实体与其他实体关系的第一查询语句包括:
[0065]
<e1>?x<e2>和
[0066]
<e2>?x<e1>;
[0067]
其中,e表示实体,<e1>表示起始实体,<e2>表示其他实体,第一查询语句用于查询实体与实体间关系。
[0068]
以上两种形式的第一查询语句执行完成后,不再生成下一跳查询语句。
[0069]
查询与起始实体连接的其他实体的第二查询语句包括:
[0070]
<e1><r1>?x和
[0071]
?x<r1><e1>
[0072]
其中,<e1>表示起始实体,<r1>表示<e1>与?x之间的关系或属性,?x表示其他实体或属性值。
[0073]
以上两种查询语句查询与e1连接的其他实体,可以生成下一跳查询语句。
[0074]
步骤102:针对第二查询语句查询得到的每个其他实体,依据其他实体生成下一跳查询语句对知识图谱进行查询。
[0075]
生成下一跳查询语句时,在第一跳查询语句到的?x的基础上生成,此时的?x对应第一跳查询语句查询到的其他实体,通过第一跳查询语句查询得到的其他实体去生成下一跳查询语句进行下一跳查询。
[0076]
下一跳查询语句包括:查询下一跳实体的第三查询语句,和已查询到的实体添加
条件约束的第四查询语句;
[0077]
其中,第三查询语句包括:
[0078]
?x<r2>?y和
[0079]
?y<r2>?x
[0080]
其中,<r2>表示?x与?y之间的关系或属性,?x表示前一跳查询语句中查询得到的实体,作为下一跳查询的起始实体,?y表本跳查询语句中待查询的下一跳实体。
[0081]
以上两种查询语句用于查询相关的下一跳实体,查到的是新出现的实体作为下一跳实体生成第二跳查询语句。
[0082]
第四查询语句包括:
[0083]
?x<r2><e2>和
[0084]
<e2><r2>?x
[0085]
其中,第四查询语句为对?x的约束条件,<r2><e2>为实体集中的实体。
[0086]
以上两跳是对现有查询到的实体添加条件约束,进行筛选。
[0087]
步骤103:循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止。
[0088]
其中,终止循环查询条件包括以下至少之一:所要查询的实体内容只包含单个实体;查询到指定最多条数。
[0089]
步骤104:对各跳查询语句进行拼接,生成候选查询语句。
[0090]
一种可选地对各跳查询语句进行拼接,生成候选查询语句的方式如下:
[0091]
按照各跳查询语句的查询顺序、指定的查询内容,依次生成由从第一跳查询语句至最后一条查询语句拼接成的各长度的候选查询语句。其中,指定的查询内容为在按顺序生成的各跳查询语句中,最后出现的?内容。
[0092]
一种可选地实施例中,按照各跳查询语句的查询顺序、指定的查询内容,依次生成由从第一跳查询语句至最后一条查询语句拼接成的各长度的候选查询语句之后,还可以包括如下步骤:
[0093]
针对每个候选查询语句,将该候选查询语句对应的候选查询图中实体和形式一致的查询图求交集或并集,生成候选查询语句。
[0094]
在实际实现过程中,可使用{}union{}对各三元组同一位置上相同的实体求并集生成目标查询图,例如:select?x where{{<令狐冲><剑法>?x.}union{<令狐冲><内功>?x.}}。
[0095]
查询语句生成还要指定所查询的内容,比如将<e1><r1>?x和?x<r2>?y这两条查询语句拼接生成<e1><r1>?x.?x<r2>?y.还要指定?y为要查询内容。整个查询语句是select?y where<e1><r1>?x.?x<r2>?y.生成时指定最后出现的?实体作为要查询内容,例如所列举例子中?y为最后出现的?实体。
[0096]
在实际实现过程中,如果起始实体e1是有引号“e1”的字符串,说明该起始实体为属性值,则可以添filter regex(?x,“e1”),这时查到的?x是包含“e1”的字符串实体,例如:select?y where{<五岳剑派>?x?y.filter regex(?y,"掌门")}查到的答案是五岳剑派的掌门:"掌门莫大先生""掌门岳不群""掌门左冷禅""掌门天门道长""掌门定闲师太"。查询得的被引号引起来的字符串为一个属性值,而非实体。
[0097]
在生成多跳查询图时,由于会有中间节点也用?表示,查询图需要明确需要查询的是哪个带?的实体。在生成查询图的过程中,应将带?的实体编好号(如?e0,?e1,
……
),新的编号递增,最后查询的实体是编号最大即最新的待查询实体。
[0098]
最终生成的查询语句主要有两个要点,一是多跳(包括单跳)三元组的组合,另一个是指定要查询的带?的实体。其中,三元组组合是过程中所查询到的多跳(单跳)三元组的拼接,需要说明的是,三元组拼接顺序也可以调换,不影响表达。如:<海伦公式><提出者>?e0.?e0<主要成就>?e1。而指定要查询的实体为是?e1。最终的查询语句由这两个确定的要点得到:select?e1 where{<海伦公式><提出者>?e0.?e0<主要成就>?e1.}。
[0099]
本发明实施例中提供的查询语句生成方法,依据起始实体生成一跳查询语句对知识图谱进行查询;针对第二查询语句查询得到的每个其他实体,依据其他实体生成下一跳查询语句对知识图谱进行查询;循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;对各跳查询语句进行拼接,生成候选查询语句。该种依据前一跳的查询结果生成下一跳查询语句的方式所生成的查询语句合理,能够对知识图谱进行全面的查询,提升查询结果的准确性、全面性。
[0100]
参照图2,示出了本发明实施例的一种查询语句生成装置的结构框图。
[0101]
本发明实施例的查询语句生成装置可以包括以下模块:
[0102]
第一模块201,用于依据起始实体生成一跳查询语句对知识图谱进行查询,其中,所述一跳查询语句包括:查询所述起始实体与其他实体关系的第一查询语句,以及查询与所述起始实体连接的其他实体的第二查询语句;
[0103]
第二模块202,用于针对所述第二查询语句查询得到的每个所述其他实体,依据所述其他实体生成下一跳查询语句对知识图谱进行查询,其中,所述第二跳查询语句包括:查询下一跳实体的第三查询语句,以及对已查询到的各实体添加条件约束的第四查询语句;循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;
[0104]
生成模块203,用于对各跳查询语句进行拼接,生成候选查询语句。
[0105]
可选地,在查询图中,e加编号表示实体,实体与实体间的关系由r加编号表示,r为边;
[0106]
所述第一查询语句包括:
[0107]
<e1>?x<e2>和
[0108]
<e2>?x<e1>;
[0109]
其中,e表示实体,<e1>表示起始实体,<e2>表示其他实体,所述第一查询语句用于查询实体与实体间关系;
[0110]
所述第二查询语句包括:
[0111]
<e1><r1>?x和
[0112]
?x<r1><e1>
[0113]
其中,<e1>表示起始实体,<r1>表示<e1>与?x之间的关系或属性,?x表示其他实体或属性值。
[0114]
可选地,其中,所述第三查询语句包括:
[0115]
?x<r2>?y和
[0116]
?y<r2>?x
[0117]
其中,<r2>表示?x与?y之间的关系或属性,?x表示前一跳查询语句中查询得到的实体,作为下一跳查询的起始实体,?y表本跳查询语句中待查询的下一跳实体;
[0118]
所述第四查询语句包括:
[0119]
?x<r2><e2>和
[0120]
<e2><r2>?x
[0121]
其中,所述第四查询语句为对?x的约束条件,<r2><e2>为实体集中的实体。
[0122]
可选地,所述生成模块包括:
[0123]
第一子模块,用于按照各跳查询语句的查询顺序、指定的查询内容,依次生成由从第一跳查询语句至最后一条查询语句拼接成的各长度的候选查询语句。
[0124]
可选地,所述生成模块还包括:
[0125]
第二子模块,用于针对每个所述候选查询语句,将所述候选查询语句对应的候选查询图中实体和形式一致的查询图求交集或并集,生成目标候选查询语句。
[0126]
本发明实施例中提供的查询语句生成装置,依据起始实体生成一跳查询语句对知识图谱进行查询;针对第二查询语句查询得到的每个其他实体,依据其他实体生成下一跳查询语句对知识图谱进行查询;循环依据前一跳查询语句查询得到的各实体生成下一跳查询语句,对知识图谱进行查询的步骤,直至满足终止循环查询条件为止;对各跳查询语句进行拼接,生成候选查询语句。该种依据前一跳的查询结果生成下一跳查询语句的方式所生成的查询语句合理,能够对知识图谱进行全面的查询,提升查询结果的准确性、全面性。
[0127]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0128]
在本发明的实施例中,还提供了一种电子设备。该电子设备可以包括一个或多个处理器,以及其上存储有指令的一个或多个机器可读介质,指令例如应用程序。当所述指令由所述一个或多个处理器执行时,使得所述处理器执行上述的查询语句生成方法。
[0129]
在本发明的实施例中,还提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序可由电子设备的处理器执行,以完成上述的查询语句生成方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd

rom、磁带、软盘和光数据存储设备等。
[0130]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0131]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0132]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设
备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0133]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0134]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0135]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0136]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0137]
以上对本发明所提供的一种查询语句生成方法及装置,电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜