CN107145512B - 数据查询的方法和装置 - Google Patents

数据查询的方法和装置 Download PDF

Info

Publication number
CN107145512B
CN107145512B CN201710208998.8A CN201710208998A CN107145512B CN 107145512 B CN107145512 B CN 107145512B CN 201710208998 A CN201710208998 A CN 201710208998A CN 107145512 B CN107145512 B CN 107145512B
Authority
CN
China
Prior art keywords
keyword
relationship
bridging
role
matching relationship
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710208998.8A
Other languages
English (en)
Other versions
CN107145512A (zh
Inventor
韩硕
邹磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN201710208998.8A priority Critical patent/CN107145512B/zh
Publication of CN107145512A publication Critical patent/CN107145512A/zh
Application granted granted Critical
Publication of CN107145512B publication Critical patent/CN107145512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Abstract

本发明公开了一种数据查询的方法和装置,属于数据库技术领域。方法包括:获取用户输入的查询信息,对查询信息进行分词得到第一关键词;根据每个第一关键词,从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色;根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;确定每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边;根据预设数目个目标跨接边,确定查询图;从数据图中查询查询图对应的查询数据,输出查询数据。提高了数据查询的准确率。

Description

数据查询的方法和装置
技术领域
本发明涉及数据库技术领域,特别涉及一种数据查询的方法和装置。
背景技术
随着数据库技术的发展,数据库中存储的信息繁多,因此,用户从数据库中查询需要的信息就会耗时;为了提高查询效率,数据库往往具有查询功能,用户可以通过该查询功能从数据库中查询数据。
目前,该数据库中的数据以RDF(Resource Description Framework,资源描述框架)三元组的形式表示。RDF三元组的形式为<主语,谓词,宾语>,其中主语和宾语分别表示知识实体,谓词表示这两个实体之间的关系。RDF数据可以方便地使用数据图的形式存储,对于每条三元组,主语和宾语表示为图中的顶点,谓词表示为连接两个顶点的带有标签的边。当用户从数据库中查询数据时,用户向终端输入查询信息;终端将该查询信息包括的每个关键词映射到数据图的一个或多个候选顶点上,得到多个候选顶点;根据多个候选顶点,生成多个生成树,每个生成树由顶点和连接边拼接而成,且每个生成树均包括该查询信息包括的每个关键词在数据图中映射的一个顶点;终端根据每个生成树包括的顶点以及连接边,计算每个生成树包括的连接边的边权之和,将该边权之和作为该生成树的边权,从而得到每个生成树的边权;根据每个生成树的边权,从多个生成树中确定出边权最小的生成树,获取该边权最小的生成树中的除查询信息包括的关键词对应的顶点以外的顶点,将该顶点对应的数据作为查询数据,输出该查询数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
上述方法中直接从边权最小的生成树中获取查询数据,由于确定该边权最小的生成树时并未理解查询信息的语义,即并没有准确理解用户的查询意图,从而得到的查询数据不准确,导致数据查询的准确率低。
发明内容
为了解决现有技术的问题,本发明提供了一种数据查询的方法和装置。技术方案如下:
第一方面,本发明实施例提供了一种数据查询的方法,所述方法包括:
获取用户输入的查询信息,对所述查询信息进行分词得到第一关键词;
根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,所述数据图中包括多个候选关键词和每个候选关键词的角色,所述第二关键词的角色为顶点或关系边;
根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;
确定每个跨接边的边权,并根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边;
根据所述预设数目个目标跨接边,确定查询图,所述查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,所述关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成;
从所述数据图中查询所述查询图对应的查询数据,输出所述查询数据。
在一种可能的设计中,所述根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和角色,得到第二关键词和第二关键词的角色,包括:
确定所述每个第一关键词的角色,所述每个第一关键词的角色为类别、实体或关系;
根据所述每个第一关键词和所述每个第一关键词的角色,从所述数据图包括的多个候选关键词和每个候选关键词的角色中,确定所述每个第一关键词对应的第二关键词和每个第二关键词的角色。
在一种可能的设计中,所述根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,包括:
根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个所述第一关键词各自对应的一个第二关键词;
分别在角色为关系边的第二关键词和所述至少一个关键词对之间确定所述至少一个跨接边。
在一种可能的设计中,所述根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,包括:
从所述每个第二关键词中,确定所述每个第一关键词对应的目标第二关键词;
将角色为顶点的目标第二关键词任意两两组合,得到目标关键词对;
在所述目标关键词对和角色为关系边的目标第二关键词之间确定所述至少一个跨接边。
在一种可能的设计中,所述确定每个跨接边的边权,包括:
根据第二预设算法,编码所述每个跨接边连接的第二关键词,得到顶点向量和关系边向量,所述顶点向量为角色为顶点的第二关键词对应的向量,所述关系边向量为角色为关系边的第二关键词对应的向量;
根据所述每个跨接边对应的所述顶点向量和所述关系边向量,计算所述每个跨接边的边权。
在一种可能的设计中,预设数目个跨接边对应一个匹配关系,所述根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边,包括:
根据所述每个跨接边,生成每个待构建的匹配关系,所述待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
根据所述每个待构建的匹配关系包括的跨接边,从所述每个待构建的匹配关系中选择待构建的匹配关系,将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中;
预估添加后的所述选择的匹配关系的下界,所述匹配关系的下界为终端预估将所述每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取所述每个待构建的匹配关系对应的最小边权;
如果所述最小边权小于所述添加后的所述选择的匹配关系的下界,将所述最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
在一种可能的设计中,所述方法还包括:
如果所述最小边权不小于所述添加后的所述选择的匹配关系的下界,重新从所述每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;
执行将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中的步骤。
在一种可能的设计中,所述获取所述每个待构建的匹配关系对应的最小边权,包括:
判断所述每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从所述每个待构建的匹配关系中提取每个完整匹配关系;
将所述每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,所述完整匹配关系为包括预设数目个跨接边的匹配关系。
在一种可能的设计中,所述预估添加后的所述选择的匹配关系的下界,包括:
获取所述添加后的所述选择的匹配关系的边权,所述添加后的所述选择的匹配关系为所述添加后的所述选择的匹配关系中当前包括的跨接边的边权之和;
根据第三预设算法以及所述添加后的所述选择的匹配关系的边权,确定所述添加后的所述选择的匹配关系的下界。
第二方面,本发明实施例提供了一种数据查询的装置,所述装置包括:
获取模块,用于获取用户输入的查询信息,对所述查询信息进行分词得到第一关键词;
第一选择模块,用于根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,所述数据图中包括多个候选关键词和每个候选关键词的角色,所述第二关键词的角色为顶点或关系边;
第一确定模块,用于根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;
第二确定模块,用于确定每个跨接边的边权;
第二选择模块,用于根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边;
第三确定模块,用于根据所述预设数目个目标跨接边,确定查询图,所述查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,所述关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成;
查询模块,用于从所述数据图中查询所述查询图对应的查询数据,输出所述查询数据。
在一种可能的设计中,所述第一确定模块,包括:
第一确定单元,用于根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个所述第一关键词各自对应的一个第二关键词;
第二确定单元,用于分别在角色为关系边的第二关键词和所述至少一个关键词对之间确定所述至少一个跨接边。
在一种可能的设计中,所述第二确定模块,包括:
编码单元,用于根据第二预设算法,编码所述每个跨接边连接的第二关键词,得到顶点向量和关系边向量,所述顶点向量为角色为顶点的第二关键词对应的向量,所述关系边向量为角色为关系边的第二关键词对应的向量;
计算单元,用于根据所述每个跨接边对应的所述顶点向量和所述关系边向量,计算所述每个跨接边的边权。
在一种可能的设计中,预设数目个跨接边对应一个匹配关系,所述第二选择模块,包括:
生成单元,用于根据所述每个跨接边,生成每个待构建的匹配关系,所述待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
选择单元,用于根据所述每个待构建的匹配关系包括的跨接边,从所述每个待构建的匹配关系中选择待构建的匹配关系,将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中;
预估单元,用于预估添加后的所述选择的匹配关系的下界,所述匹配关系的下界为终端预估将所述每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取单元,用于获取所述每个待构建的匹配关系对应的最小边权;
作为单元,用于如果所述最小边权小于所述添加后的所述选择的匹配关系的下界,将所述最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
在一种可能的设计中,其特征在于,
所述第二选择模块,还用于如果所述最小边权不小于所述添加后的所述选择的匹配关系的下界,重新从所述每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中。
在一种可能的设计中,其特征在于,
所述获取单元,还用于判断所述每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从所述每个待构建的匹配关系中提取每个完整匹配关系;将所述每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,所述完整匹配关系为包括预设数目个跨接边的匹配关系。
在一种可能的设计中,其特征在于,
所述预估单元,还用于获取所述添加后的所述选择的匹配关系的边权,所述添加后的所述选择的匹配关系为所述添加后的所述选择的匹配关系中当前包括的跨接边的边权之和;根据第三预设算法以及所述添加后的所述选择的匹配关系的边权,确定所述添加后的所述选择的匹配关系的下界。
本发明实施例中,终端获取用户输入的查询信息,通过对查询信息分词得到第一关键词,从而将查询信息分成多个表示不同语义的第一关键词;终端从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,即确定出不同语义的第一关键词在数据图中对应的第二关键词;然后,终端根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边以及每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边,从而使得查询信息对应的关键词对和关系边角色的第二关键词通过该边权最小的预设数目个跨接边相关联;终端根据该预设数目个目标跨接边,确定查询图,该查询图包括了关键词集合包括的第三关键词以及每个第三关键词的连接关系,该关键词集合为终端表示用户查询意图的第一关键词确定,因此,终端将用户的查询意图构建到该查询图中,终端直接从数据图中查询查询图对应的查询数据,输出查询数据。由于终端将查询信息分成多个表示不同语义的第一关键词,根据多个不同语义的第一关键词,从而使得终端可以准确划分出用户的查询意图包括的多个语义,然后,确定该第一关键词在数据图中对应的第二关键词,通过在第二关键词对和关系边角色的第二关键词之间确定跨接边,并计算跨接边的边权,从而构建出可以准确表达用户查询意图的查询图,使得终端可以根据该查询图,从数据图中查询用户所需的查询数据,从而提高了数据查询的准确率。
附图说明
图1是本发明实施例提供的一种数据查询的方法流程图;
图2是本发明实施例提供的一种数据查询的方法流程图;
图3是本发明实施例提供的一种标注图;
图4是本发明实施例提供的一种拼接图;
图5是本发明实施例提供的一种拼接图;
图6是本发明实施例提供的一种查询图;
图7是本发明实施例提供的一种数据查询的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据查询的方法,该方法的执行主体可以为终端,如图1所示,该方法包括以下步骤。
步骤101:获取用户输入的查询信息,对该查询信息进行分词得到第一关键词。
步骤102:根据每个第一关键词,从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,该数据图中包括多个候选关键词和每个候选关键词的角色,该第二关键词的角色为顶点或关系边。
步骤103:根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词。
步骤104:确定每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边。
步骤105:根据该预设数目个目标跨接边,确定查询图,该查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,该关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成。
步骤106:从该数据图中查询该查询图对应的查询数据,输出该查询数据。
在一种可能的设计中,根据每个第一关键词,从数据图中选择每个第一关键词对应的第二关键词和角色,得到第二关键词和第二关键词的角色,包括:
确定每个第一关键词的角色,每个第一关键词的角色为类别、实体或关系;
根据每个第一关键词和每个第一关键词的角色,从该数据图包括的多个候选关键词和每个候选关键词的角色中,确定每个第一关键词对应的第二关键词和每个第二关键词的角色。
在一种可能的设计中,根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,包括:
根据每个第二关键词和每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个该第一关键词各自对应的一个第二关键词;
分别在角色为关系边的第二关键词和该至少一个关键词对之间确定该至少一个跨接边。
在一种可能的设计中,根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,包括:
从每个第二关键词中,确定每个第一关键词对应的目标第二关键词;
将角色为顶点的目标第二关键词任意两两组合,得到目标关键词对;
在该目标关键词对和角色为关系边的目标第二关键词之间确定该至少一个跨接边。
在一种可能的设计中,确定每个跨接边的边权,包括:
根据第二预设算法,编码每个跨接边连接的第二关键词,得到顶点向量和关系边向量,该顶点向量为角色为顶点的第二关键词对应的向量,该关系边向量为角色为关系边的第二关键词对应的向量;
根据每个跨接边对应的该顶点向量和该关系边向量,计算每个跨接边的边权。
在一种可能的设计中,预设数目个跨接边对应一个匹配关系,该根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边,包括:
根据每个跨接边,生成每个待构建的匹配关系,该待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
根据每个待构建的匹配关系包括的跨接边,从每个待构建的匹配关系中选择待构建的匹配关系,将该选择的匹配关系对应的边权最小的跨接边添加到该选择的匹配关系中;
预估添加后的该选择的匹配关系的下界,该匹配关系的下界为终端预估将每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取每个待构建的匹配关系对应的最小边权;
如果该最小边权小于该添加后的该选择的匹配关系的下界,将该最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
在一种可能的设计中,该方法还包括:
如果该最小边权不小于该添加后的该选择的匹配关系的下界,重新从每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;
执行将该选择的匹配关系对应的边权最小的跨接边添加到该选择的匹配关系中的步骤。
在一种可能的设计中,获取每个待构建的匹配关系对应的最小边权,包括:
判断每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从每个待构建的匹配关系中提取每个完整匹配关系;
将每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,该完整匹配关系为包括预设数目个跨接边的匹配关系。
在一种可能的设计中,预估添加后的选择的匹配关系的下界,包括:
获取添加后的选择的匹配关系的边权,该添加后的选择的匹配关系为添加后的选择的匹配关系中当前包括的跨接边的边权之和;
根据第三预设算法以及该添加后的选择的匹配关系的边权,确定该添加后的选择的匹配关系的下界。
本发明实施例中,终端获取用户输入的查询信息,通过对查询信息分词得到第一关键词,从而将查询信息分成多个表示不同语义的第一关键词;终端从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,即确定出不同语义的第一关键词在数据图中对应的第二关键词;然后,终端根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边以及每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边,从而使得查询信息对应的关键词对和关系边角色的第二关键词通过该边权最小的预设数目个跨接边相关联;终端根据该预设数目个目标跨接边,确定查询图,该查询图包括了关键词集合包括的第三关键词以及每个第三关键词的连接关系,该关键词集合为终端表示用户查询意图的第一关键词确定,因此,终端将用户的查询意图构建到该查询图中,终端直接从数据图中查询查询图对应的查询数据,输出查询数据。由于终端将查询信息分成多个表示不同语义的第一关键词,根据多个不同语义的第一关键词,从而使得终端可以准确划分出用户的查询意图包括的多个语义,然后,确定该第一关键词在数据图中对应的第二关键词,通过在第二关键词对和关系边角色的第二关键词之间确定跨接边,并计算跨接边的边权,从而构建出可以准确表达用户查询意图的查询图,使得终端可以根据该查询图,从数据图中查询用户所需的查询数据,从而提高了数据查询的准确率。
本发明实施例提供了一种数据查询的方法,该方法的执行主体可以为终端,参见图2,该方法包括以下步骤。
步骤201:终端获取用户输入的查询信息,对该查询信息进行分词得到第一关键词。
本发明实施例中,当用户需要在数据库中进行数据查询时,用户可以在终端中输入查询信息,该查询信息中包括多个单词,而每个单词在该查询信息中均表示不同的语义,终端需综合该查询信息中每个单词的语义,得到该查询信息对应的语义,即,用户的查询意图,然后,终端后续才能根据用户的查询意图,向用户反馈用户需要的查询数据。
因此,本步骤中,终端需先将用户输入的查询信息进行分词处理,得到多个第四关键词集合,然后在该至少一个第四关键词集合中确定出对查询信息覆盖度最大的第一关键词集合。
具体的,本步骤可以通过以下步骤2011-2012实现。
步骤2011:终端获取用户输入的查询信息,通过至少一个分词方法,对该查询信息进行分词,得到第四关键词集合,每个第四关键词集合包括至少两个第四关键词。
本发明实施例中,终端预先构建第一词典和第二词典,该第一词典和第二词典中存储了数据库中候选关键词以及该候选关键词映射出的至少一个第四关键词。因此,终端可以根据该第一词典和第二词典中包括的第四关键词,确定用户输入的查询信息对应的至少一个第四关键词集合。
本步骤中,终端获取查询信息包括的每个单词;终端根据该查询信息包括的每个单词,将该查询信息包括的每个单词与第一字典和第二字典中的第四关键词进行比对;确定出每个单词对应的第四关键词,每个单词可以对应一个或多个第四关键词,每个单词对应的第四关键词可以为与每个单词相同的第四关键词,或者,每个单词对应的第四关键词也可以为包含该单词的第四关键词。
例如,用户输入的查询信息为“scientist graduate from university locateUSA”,终端可以通过将该查询信息包括的每个单词与第一词典和第二词典中的第四关键词进行比对,得到该查询信息对应的第四关键词包括:{scientist},{graduate from},{fromuniversity},{university},{locate},{USA}和{university locate USA}。
其中,由于该查询信息对应的至少一个第四关键词中,每个第四关键词可能会与其它第四关键词包括相同的第四关键词,为了提高终端根据第四关键词后续进行查询时的效率,在同一个第四关键词集合包括的第四关键词中,每个第四关键词均不与该第四关键词集合中的其它任意第四关键词包括相同的单词。
其中,终端可以通过第四预设算法,将该查询信息对应的第四关键词组合为至少一个第四关键词集合。因此,终端得到至少一个第四关键词集合的步骤可以为:终端根据第四预设算法,将该查询信息对应的第四关键词进行组合,得到至少一个第四关键词集合。
其中,终端根据该第四预设算法,将该查询信息对应的第四关键词进行组合,得到至少一个第四关键词集合的步骤可以为:终端根据该第四预设算法,在该查询信息对应的第四关键词中,在每两个互不包括相同单词的第四关键词之间确定一条连线,生成该查询信息对应的标注图,该标注图包括第四关键词以及第四关键词之间的连线;然后,终端根据该标注图中第四关键词之间的连线,将该标注图中两两之间均有连线的第四关键词组合为一个第四关键词集合该第四关键词集合包括至少两个第四关键词,从而得到的第四关键词集合包括的第四关键词之间均不包括相同的关键词,并且尽可能的覆盖查询信息包括的单词。
其中,该第四预设算法可以根据用户需要设置并更改,本公开实施例对此不作具体限定。例如,该第四预设算法可以为BK(C.Bron and J.Kerbosch,布朗)算法。
例如,将查询信息对应的第四关键词:{scientist},{graduate from},{fromuniversity},{university},{locate},{USA}和{university locate USA}生成查询信息对应的标注图,如图3所示,图3中的c1、c2、c3、c4、c5、c6、c7分别对应表示第四关键词:{scientist}、{graduate from}、{from university}、{university}、{locate}、{USA}、{university locate USA};其中,第四关键词{scientist}、{graduate from}、{university locate USA}两两之间均可以确定一条连线,第四关键词{scientist}、{graduate from}、{university}、{locate}、{USA}两两之间均可以确定一条连线,第四关键词{scientist}、{from university}、{locate}、{USA}两两之间均可以确定一条连线,因此,该查询信息对应三个第四关键词集合:第四关键词集合1、第四关键词集合2和第四关键词3,其中,第四关键词集合1:{scientist,graduate from,university locate USA},第四关键词集合2:{scientist,graduate from,university,locate,USA},第四关键词集合3:{scientist,from university,locate,USA}。
步骤2012:终端确定每个第四关键词集合的覆盖度,将覆盖度最大的第四关键词集合包括的第四关键词作为第一关键词。
本步骤可以通过以下步骤(1)-(2)实现。
步骤(1):终端根据每个第四关键词集合包括的第四关键词,通过以下公式一,计算该第四关键词集合的覆盖度:
其中,α(C)为第四关键词集合C的覆盖度,C为第四关键词集合,A为查询信息,k′为每个第四关键词中包括的关键词,t为每个第四关键词集合包括的第四关键词,k为查询信息A包括的单词。
例如,第四关键词集合1:{scientist,graduate from,university locate USA}与第四关键词集合2:{scientist,graduate from,university,locate,USA}均覆盖了查询信息包括的每一个单词,因此,第四关键词集合1与第四关键词集合2的覆盖度均为1;而第四关键词集合3:{scientist,from university,locate,USA}只覆盖了查询信息中的5个单词,因此,第四关键词集合3的覆盖度为0.83。
步骤(2):终端根据每个第四关键词集合的覆盖度,将覆盖度最大的第四关键词集合包括的第四关键词作为第一关键词。
本步骤中,终端选取多个第四关键词集合中覆盖度最大的第四关键词集合,将该第四关键词集合包括的第四关键词作为第一关键词。
本发明实施例提供的一种可能设计中,终端还可以选取多个第四关键词集合中覆盖度最大的前N个第四关键词集合,将该N个第四关键词集合中每个第四关键词集合包括的第四关键词作为一组第一关键词,得到N组第一关键词,后续终端分别根据该N组第一关键词中的每个第一关键词进行数据查询。其中,N为大于等于2的整数,N可以根据用户需要设置并更改,本发明实施例对此不做具体限定,例如,N=2或N=3等。
步骤202:终端根据每个第一关键词,从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,该数据图中包括多个候选关键词和每个候选关键词的角色,该第二关键词的角色为顶点或关系边。
本步骤可以通过以下步骤2021-2022实现。
步骤2021:终端确定每个第一关键词的角色,每个第一关键词的角色为类别、实体或关系。
本发明实施例中,终端预先构建的第一字典和第二字典中,不仅存储了数据库中候选关键词以及该候选关键词映射出的至少一个第四关键词,即本步骤中的第一关键词,终端还存储了每个第一关键词的角色以及每个候选关键词的角色。其中,第一关键词的角色为类别、实体或关系。
其中,终端构建第一字典和第二字典的步骤可以为:终端获取数据库包括的每一个候选关键词以及该关键词的角色;终端确定每个候选关键词映射的至少一个第一关键词以及该第一关键词的角色,根据该第一关键词的角色,将角色为实体或类别的第一关键词与该第一关键词对应的候选关键词之间的对应关系存储在第一字典中,将角色为关系的第一关键词与该第一关键词对应的候选关键词之间的对应关系存储在第二字典中,并在该第一字典和第二字典中存储每个第一关键词和第一关键词的角色之间的对应关系,以及候选关键词和候选关键词的角色之间的对应关系。
因此,终端确定每个第一关键词的角色的步骤可以为:终端根据每个第一关键词,从第一字典或第二字典存储的第一关键词和第一关键词的角色的对应关系中,确定该第一关键词的角色。
其中,第一关键词的角色可以为类别(class)、实体(entity)或关系(relation)。
例如,以第一关键词分别为第四关键词集合1包括的第四关键词为例进行说明,第一关键词以及第一关键词的角色分别为:{class:scientist}、{relation:graduatefrom}、{class:university}、{relation:locate}、{entity:USA}。
步骤2022:终端根据每个第一关键词和每个第一关键词的角色,从该数据图包括的多个候选关键词和每个候选关键词的角色中,确定每个第一关键词对应的第二关键词和每个第二关键词的角色。
本步骤中,终端根据该第一关键词和该第一关键词的角色,从该第一关键词的角色对应的第一词典或第二词典存储的候选关键词中,确定该第一关键词对应的至少一个候选关键词,将该候选关键词作为该第一关键词对应的第二关键词;终端根据至少一个第二关键词中的每个第二关键词,从第一字典或第二字典存储的候选关键词和候选关键词的角色的对应关系中,确定该第二关键词的角色。
其中,该第二关键词的角色可以为顶点或关系边。
需要说明的是,角色为顶点的第二关键词为角色为实体的第一关键词以及角色为类别的第一关键词对应的第二关键词。由于步骤202-204中,对实体角色的第一关键词对应的第二关键词与类别角色的第一关键词对应的第二关键词之间不作具体区分,因此,将实体角色的第一关键词对应的第二关键词的角色与类别角色的第一关键词对应的第二关键词的角色均称为顶点,将角色为关系的第一关键词对应的第二关键词的角色称为关系边。
例如,第一关键词{class:scientist}对应的第二关键词为:{顶点:scientist},第一关键词{relation:graduate from}对应的第二关键词为{关系边:almaMater}和{关系边:education},第一关键词{class:university}对应的第二关键词为{顶点:university},第一关键词{relation:locate}对应的第二关键词为{关系边:country}和{关系边:location},第一关键词{entity:USA}对应的第二关键词为{顶点:United_States}和{顶点:USA_today}。
需要说明的是,本公开实施例中,用户输入的查询信息可以对应多个第一关键词,以及根据该多个第一关键词,可以确定出该查询信息对应的多个第二关键词。
步骤203:终端根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词。
本发明实施例中,每个跨接边连接的角色为顶点的任意两个第二关键词分别对应不同的第一关键词。由于每个第一关键词可以对应一个第二关键词,也可以对应多个第二关键词,因此,终端可以先在每个第一关键词对应的至少一个第二关键词中,确定出该第一关键次对应的一个目标第二关键词,根据每个第一关键词对应的目标第二关键词,确定跨接边,即以下第一种实现方式;终端也可以直接根据每个第一关键词对应的至少一个第二关键词确定跨接边,即以下第二种实现方式。
对于第一种实现方式,本步骤可以通过以下步骤2031a-2033a实现。
步骤2031a:终端从每个第二关键词中,确定每个第一关键词对应的目标第二关键词。
本发明实施例中,每个第一关键词可能会对应两个或更多个第二关键词,因此,终端可以在第一关键词对应的多个第二关键词中,选取语义最接近第一关键词的目标第二关键词,即可信度最高的第二关键词,以便于终端只根据与第一关键词语义最接近的目标第二关键词,更快速的确定出用户需要的查询数据。
本步骤中,终端可以根据第一预设算法,确定每个第一关键词对应的目标第二关键词。
因此,本步骤可以为:终端根据第一预设算法,计算每个第一关键词对应的第二关键词的可信度;终端在每个第一关键词对应的第二关键词中选择可信度最高的第二关键词,将该可信度最高的第二关键词确定为该第一关键词对应的目标第二关键词。
其中,该第一预设算法可以根据用户需要设置并更改,本公开实施例对此不作具体限定,例如,该第一预设算法为计算第二关键词的置信概率的置信传播算法,即,用第二关键词的置信概率作为衡量第二关键词的可信度的标准,第二关键词的置信概率越大,该第二关键词的可信度越高,终端将每个第一关键词对应的多个第二关键词中置信概率最高的第二关键词作为目标第二关键词。
其中,终端可以预先根据第一预设算法计算数据库中每个候选关键词的可信度,将每个候选关键词与该候选关键词的可信度的对应关系存储在第一字典或第二字典中。
如表一和表二所示,以每个候选关键词的可信度是该候选关键词的置信概率作为例,表一为第一字典中的部分截取数据,表二为第二字典中的部分截取数据:
表一:
表二:
由表一和表二可知,第一关键词{entity:USA}对应的第二关键词{USA_today}和{United_States}中,{USA_today}的置信概率为0.83,大于{United_States},因此,该第一关键词{entity:USA}对应的目标第二关键词为{USA_today},同理,第一关键词{graduatefrom}对应的目标第二关键词为{almaMater},第一关键词{locate}对应的目标第二关键词为{country}。
步骤2032a:终端将角色为顶点的目标第二关键词任意两两组合,得到目标关键词对。
本步骤中,终端将目标第二关键词中的每两个目标第二关键词两两组合,每个目标关键词均与任一其它目标第二关键词组合成一个目标关键词对,从而确定出目标第二关键词对应的所有可能的目标关键词对。
步骤2033a:终端在该目标关键词对和角色为关系边的目标第二关键词之间确定至少一个跨接边。
本步骤中,终端在每个目标关键词对和每个角色为关系边的目标第二关键词之间均确定一个跨接边,得到至少一个跨接边,每个跨接边一端连接目标关键词对,一端连接角色为关系边的一个目标第二关键词,即,通过跨接边将目标关键词对和关系边相关联。
例如,以第一关键词对应的目标第二关键词:{顶点V1:scientist},{关系边P1:almaMater},{顶点V2:university},{关系边P2:country},{顶点V3:USA_today}为例,将目标第二关键词中每两个目标第二关键词进行两两组合,共得到3个目标关键词对,分别为:<V1,V2>,<V2,V3>和<V1,V3>,在每个目标关键词对与角色为关系边的第二关键词之间确定一个跨接边,该目标第二关键词对应的跨接边包括:(<V1,V2>,P1),(<V1,V2>,P2),(<V2,V3>,P1),(<V2,V3>,P2),(<V1,V3>,P1)和(<V1,V3>,P2)。
在第一种实现方式中,由于终端根据第一预设算法,确定出每个第一关键词对应的一个目标第二关键词,而该第一关键词对应的至少一个第二关键词中,除目标第二关键词以外的其它第二关键词也被忽略,此时,很有可能把最接近用户查询意图的第二关键词忽略,从而导致后续的查询结构不准确。并且,第一种实现方式中,查询结果的准确性高度依赖与根据第一预设算法确定出的每个第一关键词对应的目标第二关键词以及根据该目标第二关键词确定出的跨接边的准确率,而为了提高本公开实施例的鲁棒性,即,使得本公开实施例提供的方法具备一定的容错率,因此,本公开实施例中还提出了以下第二种实现方式,作为一种普适情况。在该第二种实现方式中,直接根据每个第一关键词对应的至少一个第二关键词确定跨接边,考虑到了每个第一关键词对应的每个第二关键词所包含的查询意图,因此,提高了数据查询的准确率。
对于第二种实现方式,本步骤可以通过以下步骤2031b-2032b实现。
步骤2031b:终端根据每个第二关键词和每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个第一关键词各自对应的一个第二关键词。
本步骤中,一个第一关键词可以对应多个第二关键词,终端根据每个第二关键词和该第二关键词的角色,在角色为顶点的第二关键词中,任选择两个分别对应不同的两个第一关键词的第二关键词,将这两个第二关键词组成关键词对,即,该关键词对由两个第二关键词组成,该两个第二关键词为角色为实体或类别的两个第一关键词分别对应的第二关键词;然后,确定出角色为顶点的第二关键词中所有可能的关键词对。
步骤2032b:终端分别在角色为关系边的第二关键词和该至少一个关键词对之间确定至少一个跨接边。
终端在每个关键词对和每个角色为关系边的第二关键词之间均确定一个跨接边,得到多个跨接边,每个跨接边的将一端的关键词对和另一端连接角色为关系边的第二关键词相关联。
其中,为了便于执行,终端可以根据第二关键词的角色,将角色为顶点的第二关键词作为顶点,将角色为关系边的第二关键词作为关系边,将顶点和关系边构建到拼接图中,其中,该拼接图中,在关键词对所在的顶点对和角色为关系边的第二关键词所在的关系边之间确定一个跨接边,这样,在每个顶点对和关系边之间建立连接,终端每个顶点对中的两个顶点通过关系边相连接。
需要说明的是,终端确定的拼接二部图中,角色为顶点的第二关键词两两组合成第二关键词对,出现在拼接二部图的第一集合,角色为关系边的第二关键词,出现在拼接二部图的第二集合。拼接二部图的第一集合和第二集合之间,确定至少一个跨接边。每个跨接边连接角色为顶点的任意两个第二关键词,即第一集合中的第二关键词对,和角色为关系边的任意一个第二关键词,即第二集合中的角色为关系边的第二关键词,从而将每个跨接边一端的关键词对和角色为关系边的第二关键词相关联。
其中,可以将顶点对表示为:VL={(Vi1,Vi2)|1≤i1<i2≤n}(n为拼接图包括的总顶点数,Vi1,Vi2分别为对应不同第一关键词的顶点),Pj表示关系边,则(<Vi1,Vi2>,Pj)即为一个跨接边,每个跨接边对应一个三元组,该三元组由跨接边一端的顶点对和另一端的关系边组成,表示该顶点对包括的两个顶点之间可由该关系边进行连接。
例如,以第一关键词对应的第二关键词:{顶点V1:scientist},{关系边P11:almaMater}和{关系边P12:education},{顶点V2:university},{关系边P21:country}和{关系边P22:location},{顶点V31:United_States}和{顶点V32:USA_today}为例,其中,关键词对包括:V1和V2,V1和V31,V1和V32,V2和V31以及V2和V32,如图4所示,在关键词对V1、V2和P11可以确定跨接边(<V1,V2>,P11),同理,在关键词对和关系边之间确定的跨接边还可以包括:(<V1,V2>,P12)、(<V1,V2>,P21)、(<V1,V2>,P22)、(<V1,V31>,P11)、(<V1,V31>,P12)(<V1,V31>,P21)、(<V1,V31>,P22)、(<V1,V32>,P11)、(<V1,V32>,P12)(<V1,V32>,P21)、(<V1,V32>,P22)、(<V2,V31>,P11)、(<V2,V31>,P12)(<V2,V31>,P21)、(<V2,V31>,P22)、(<V2,V32>,P11)、(<V2,V32>,P12)(<V2,V32>,P21)、(<V2,V32>,P22)。
需要说明的是,终端通过跨接边,将每个跨接边一端的关键词对和角色为关系边的第二关键词相关联。实际上,每个跨接边为终端对关键词对和角色为关系边的第二关键词之间的连接关系所做的预测,每个跨接边均对应一个预测关系,该预测关系用于预测关键词对包括的第二关键词可以通过该跨接边另一端的角色为关系边的第二关键词进行连接。
步骤204:终端确定每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边。
本发明实施例中,由于每个跨接边连接的关键词对和角色为关系边的第二关键词中,关键词对和角色为关系边的第二关键词之间的连接代价未知,即,每个跨接边的边权未知,因此,终端需要先确定每个跨接边的边权,再根据跨接边的边权,选择边权最小的预设数目个目标跨接边。
其中,终端确定每个跨接边的边权的步骤可以为:终端根据第二预设算法,编码该每个跨接边连接的第二关键词,得到顶点向量和关系边向量,该顶点向量为角色为顶点的第二关键词对应的向量,该关系边向量为角色为关系边的第二关键词对应的向量;终端根据每个跨接边对应的该顶点向量和该关系边向量之间的向量距离,作为该跨接边的边权。其中编码向量的算法可以为TransE(Translating Embedding,翻译嵌入)算法,并且该编码算法可以根据用户需要设置并更改,本公开实施例对此不作具体限定。
终端确定每个跨接边的边权后,还需在多个跨接边中选出边权最小的预设数目个目标跨接边,该预设数目与角色为关系的第一关键词的数目相等,且该预设数目个目标跨接边之间不存在冲突关系。其中,由于在步骤203中,终端可以通过两种实现方式确定跨接边,相应的,本步骤中,终端选择边权小的预设数目个目标跨接边的实现方式也有两种,即以下第一种实现方式和以下第二种实现方式。
在第一种实现方式中,每个第一关键词对应一个目标关键词,即终端通过步骤203中的第一种实现方式确定跨接边时,终端根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边的步骤可以为:终端根据第五预设算法,确定出在多个跨接边中存在的多个匹配关系,并在该多个匹配关系中确定边权最小的目标匹配关系,将该目标匹配关系包括的跨接边作为目标跨接边。
其中,此处终端将预设数目个跨接边构建为一个匹配关系,且每个匹配关系均满足:每个匹配关系包括的预设数目个跨接边之间不存在冲突关系。
该预设数目为角色为关系的第一关键词的总数目。此处的冲突关系为:两个目标跨接边一端共同连接到相同的一个顶点对上,或者,两个目标跨接边的另一端共同连接到相同的一个关系边上。这会使得后续终端根据多个跨接边生成的查询图不准确,从而导致得到的查询结果不准确。而在本发明实施例中,为了提高查询数据的准确性,同一个匹配关系中不允许存在该冲突关系。
其中该第五预设算法可以根据用户需要设置并更改,本公开实施例对此不作具体限定。例如,该第五预设算法可以为已有的KM(Kuhn-Munkres,二分图最佳匹配)算法。
在第二种实现方式中,每个第一关键词对应至少一个第二关键词,即终端通过步骤203中的第二种实现方式确定跨接边时,终端预先定义了QGA(Query Graph Assembly,查询图拼接)算法,因此,终端可以根据该QGA算法,选择边权最小的预设数目个目标跨接边。
其中,该QGA(Query Graph Assembly,查询图拼接)算法包括以下步骤2041-2043。
步骤2041:终端根据每个跨接边,生成每个待构建的匹配关系,根据每个待构建的匹配关系包括的跨接边,从每个待构建的匹配关系中选择待构建的匹配关系,将该选择的匹配关系对应的边权最小的跨接边添加到该选择的匹配关系中;预估添加后的该选择的匹配关系的下界。
需要说明的是,该待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系,该匹配关系的下界为终端预估将每个待构建的匹配关系构建为完整匹配关系时的最小边权。该预设数目为角色为关系的第一关键词的总数目。
具体的,本步骤可以通过以下步骤(1)-(2)实现。
步骤(1):终端将多个跨接边包括的每个跨接边作为一个待构建的匹配关系中的首个跨接边,同时,终端实时将每个匹配关系的搜索状态存储到队列H中。
其中,终端根据每个跨接边,以每个跨接边作为一个待构建的匹配关系中的首个跨接边,预先为每个跨接边建立一个待构建的匹配关系。同时,终端为每个正在构建的匹配关系创建一个搜索状态:{M,Z,cost(M),LB(M)}。其中,集合M记录了该待构建的匹配关系中当前已经包括的跨接边,即,已经选取出的跨接边;集合Z记录了该待构建的匹配关系中不包括的且与集合M中的跨接边不存在冲突关系的跨接边,即,还未选取且不与已选取的跨接边之间存在冲突关系的跨接边;cost(M)为集合M中包括的跨接边的总边权,即,待构建的匹配关系中包括的跨接边的边权之和;LB(M)为终端预测的将当前待构建的匹配关系构建成为完整的匹配关系时预估边权的最小值,即,该待构建的匹配关系的边权的下界,表示如果将当前匹配关系构建为完整的匹配关系,终端预估该完整的匹配关系的边权可能达到的最小值。
需要说明的是,队列H中存储了每个待构建的匹配关系的搜索状态,并且,在队列H中,终端将各个搜索状态按照LB(M)升序排列,即,队列H头部的首个位置存储了搜索状态为LB(M)最小的待构建的匹配关系。其中,初始状态时,定义队列H为空集φ,然后,再将待构建的各个搜索状态添加到队列H中,即“H=φ;H←{M=0,Z=E,cost(M)=0,LB(M)=0}”,其中,集合E为所有的跨接边组成的跨接边集合。
其中,步骤2041中,终端预估添加后的所述选择的匹配关系的下界的步骤可以为:终端获取所述添加后的所述选择的匹配关系的边权,所述添加后的所述选择的匹配关系为所述添加后的所述选择的匹配关系中当前包括的跨接边的边权之和;根据第三预设算法以及所述添加后的所述选择的匹配关系的边权,确定所述添加后的所述选择的匹配关系的下界。
本发明实施例中,终端中预先定义了三种该第三预设算法,因此,终端可以通过以下三种实现方式预估待构建的匹配关系的下界,即LB(M)。其中,该待构建的匹配关系的搜索状态为{M,Z,cost(M),LB(M)},该匹配关系中包括的跨接边数目为|M|,预设数目为m,|M|<m,即,该待构建的匹配关系包括m个跨接边时,为一个完整的匹配关系。
需要说明的是,对于每个待构建的匹配关系,该待构建的匹配关系的下界满足:LB(M)≤cost(M∪M1(Z)),其中,M1(Z)为集合Z中(m-|M|)个跨接边组成的最优匹配,该(m-|M|)个跨接边组成的最优匹配为集合Z中边权最小且不存在冲突关系的匹配关系,M∪M1(Z)为终端将待构建的匹配关系构建为边权最小的完整匹配关系时的跨接边集合,cost(M∪M1(Z))为该边权最小的完整匹配关系的边权。
第一种实现方式:在待构建的匹配关系中,终端可以通过Naive-LB(Naive LowerBound,简单的下界)算法预估待构建的匹配关系的下界。该Naive-LB算法包括以下步骤(1-1a)-(1-2a)。
步骤(1-1a):终端获取集合Z中前(m-|M|)个边权最小的跨接边。
步骤(1-2a):终端通过以下公式二,计算该待构建的匹配关系的下界,即Naive-LB(M)。
其中,Naive-LB(M)为通过Naive-LB算法计算出的待构建的匹配关系的下界;ei为集合Z中的第i个跨接边,w(ei)为第i个跨接边的边权,cost(M)为集合M中包括的跨接边的总边权,即,待构建的匹配关系中包括的跨接边的边权之和。
第二种实现方式:在待构建的匹配关系中,终端可以利用已有的KM算法预估待构建的匹配关系的下界。该过程可以包括以下步骤(1-1b)-(1-3b)。
步骤(1-1b):终端通过KM算法,在集合Z中确定出包括(m-|M|)个跨接边的边权最小的子匹配关系。
步骤(1-2b):终端杆通过以下公式三,计算该待构建的匹配关系的下界,即KM-LB(M)。
公式三:KM-LB(M)=cost(M)+cost(MKM(Z))
其中,KM-LB(M)为先通过KM算法确定子匹配关系,再计算出的该待构建的匹配关系的下界,MKM(Z)为由(m-|M|)个跨接边组成的集合,该(m-|M|)个跨接边为集合Z中边权最小的子匹配关系包括的跨接边,cost(MKM(Z))为集合MKM(Z)中跨接边的边权之和,即,该边权最小的子匹配关系的边权,cost(M)为集合M中包括的跨接边的总边权,即,待构建的匹配关系中包括的跨接边的边权之和。
第三种实现方式:在待构建的匹配关系中,终端可以利用Greedy-LB(GreedyMatching Lower Bound贪心)算法预估待构建的匹配关系的下界,该过程可以包括以下步骤(1-1c)-(1-3c)。
步骤(1-1c):终端通过Greedy-LB算法确定(m-|M|)个跨接边的边权最小的子匹配关系的近似解Mgreedy(Z)。
步骤(1-2c):终端通过以下公式四,计算该待构建的匹配关系的下界,即Greedy-LB(M)。
其中,Greedy-LB(M)为通过Greedy-LB算法计算出的待构建的匹配关系的下界;ei为集合Z中的第i个跨接边,w(ei)为第i个跨接边的边权,cost(M)为集合M中包括的跨接边的总边权,即,待构建的匹配关系中包括的跨接边的边权之和。Mgreedy(Z)为通过Greedy-LB算法确定出的(m-|M|)个跨接边组成边权最小的匹配关系的近似解,cost(Mgreedy(Z))为集合Mgreedy(Z)中跨接边的边权之和。
需要说明的是,该Greedy-LB算法如下:
通过证明可知,由Greedy-LB算法确定出的Mgreedy具有二分之一近似比率,即Mgreedy和由KM算法确定出的MKM(Z)满足:
KM算法的时间复杂度为三次方,而Naive-LB和Greedy-LB算法的时间复杂度均为线性,因此KM算法的计算开销远大于Naive-LB和Greedy-LB算法的计算开销,而通过Naive-LB算法计算Naive-LB(M)时,集合Z中前(m-|M|)个边权最小的跨接边很有可能存在冲突关系,导致计算出的Naive-LB(M)不准确。因此,对于第三种实现方式,通过Greedy-LB算法可以更准确、快速的预估出的待构建的匹配关系的下界。
需要说明的是,此处,我们定义了一个匹配关系中发生冲突的两个跨接边所包括的情况:如果同一个匹配关系中的跨接边e(<Vi1,Vi2>,Pj)和跨接边e’(<Vi1’,Vi2’>,Pj’)满足以下条件(1)-(3)中的任意一个,则确定同一个匹配关系中的跨接边e(<Vi1,Vi2>,Pj)和跨接边e’(<Vi1’,Vi2’>,Pj’)之间存在冲突关系。
条件(1):Vi1和Vi1’(或者Vi2和Vi2’、Vi1和Vi2’、Vi2和Vi1’)为同一个角色为类别或实体的第一关键词对应的两个不同的第二关键词,即,来自两个跨接边中的两个不同顶点对应同一个角色为顶点的第一关键词;
此时,说明同一个匹配关系中存在将同一个角色为实体或类别的第一关键词对应到了不同第二关键词的情况,使得终端后续会根据同一个角色为实体或类别的第一关键词对应的不同两个第二关键词进行查询数据,这会导致得到的查询结果不准确。
条件(2):Pj和Pj’为同一个角色为关系的第一关键词对应的两个不同的第二关键词,即,来自两个跨接边中的两个不同关系边对应同一个角色为关系的第一关键词;
此时,说明同一个匹配关系中存在将同一个角色为关系的第一关键词对应到了不同第二关键词的情况,使得终端后续会根据同一个角色为关系的第一关键词对应的不同两个第二关键词进行查询数据,这也会导致得到的查询结果不准确。
条件(3):(Vi1=Vi1’∧Vi2=Vi2’)∨Pj=Pj’,跨接边e(<Vi1,Vi2>,Pj)一端连接的顶点对和跨接边e’(<Vi1’,Vi2’>,Pj’)一端连接的顶点对相同,或者,跨接边e(<Vi1,Vi2>,Pj)另一端连接的关系边和跨接边e’(<Vi1’,Vi2’>,Pj’)另一端连接的关系边相同,即,跨接边e(<Vi1,Vi2>,Pj)和跨接边e’(<Vi1’,Vi2’>,Pj’)有共同的端点,该共同的端点可以为一个相同的顶点对或者一个相同的关系边。
由于每个跨接边均对应一个预测关系,该预测关系用于预测关键词对包括的两个第二关键词可以通过该跨接边另一端的角色为关系边的第二关键词进行连接,此时,如果两个跨接边共端点,说明在同一个匹配关系中,同一个关键词对包括的两个第二关键词可以通过两个不同的角色为关系边的第二关键词进行连接,或者,同一个角色为关系边的第二关键词可以将不同的两个顶点对相连接,这会使得后续终端根据多个跨接边生成的查询图不准确,从而导致得到的查询结果不准确。
需要说明的是,同一个匹配关系中的两个跨接边满足以上条件(1)-(3)中的任一条件,即说明这两个跨接边之间存在冲突关系,从而导致得到的查询结果不准确。而在本发明实施例中,为了提高查询数据的准确性,同一个匹配关系中不允许存在该冲突关系。因此,本发明实施例中所涉及的匹配关系均为不存在冲突关系的匹配关系。
步骤(2):终端获取队列H头部首个位置存储的搜索状态,根据该搜索状态{M,Z,cost(M),LB(M)},获取集合Z中边权最小的跨接边,将该跨接边添加到集合M中,同时,更新该搜索状态。
需要说明的是,本步骤中,将该搜索状态{M,Z,cost(M),LB(M)}更新为{M’,Z’,cost(M’),LB(M’)},其中,集合M中添加了集合Z中边权最小的一个跨接边,更新为集合M’;集合Z中减少了一个边权最小的跨接边,更新为集合Z’,同时,终端根据更新后的M’和Z’,重新计算cost(M’),LB(M’),得到更新后的搜索状态{M’,Z’,cost(M’),LB(M’)}。
需要注意的是,本步骤中,如果集合Z中含有多条未匹配的跨接边,那么每条未匹配的跨接边都会产生一个相应的后继搜索状态{M’,Z’,cost(M’),LB(M’)}。
步骤2042:终端获取每个待构建的匹配关系对应的最小边权;如果该最小边权小于该添加后的该选择的匹配关系的下界,将该最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
其中,终端获取每个待构建的匹配关系对应的最小边权的步骤可以为:终端判断每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从每个待构建的匹配关系中提取每个完整匹配关系;将每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,该完整匹配关系为包括预设数目个跨接边的匹配关系。
具体的,本步骤可以通过以下步骤(3)-(6)实现。
步骤(3):终端判断队列H中更新后的搜索状态{M’,Z’,cost(M’),LB(M’)}对应的匹配关系是否为完整的匹配关系。如果该匹配关系为完整的匹配关系,执行步骤(4);如果该匹配关系不是完整的匹配关系,执行步骤(5)。
此处,终端将预设数目个跨接边构建为一个匹配关系,且每个匹配关系均满足:每个匹配关系包括的预设数目个跨接边之间不存在冲突关系。
本步骤中的完整的匹配关系为包括了预设数目个跨接边的匹配关系;不完整的匹配关系为包括的跨接边数目小于预设数目匹配关系,即,终端正在将该匹配关系对应的集合Z中的跨接边,构建到该不完整的匹配关系中。
步骤(4):如果该匹配关系为完整的匹配关系,将该匹配关系对应的搜索状态移出队列H,并判断该匹配关系的cost(M’)是否小于θ,如果cost(M’)小于θ,将θ更新为cost(M’),同时,最优匹配Mopt=M’,如果cost(M’)不小于θ,不更新θ。
需要说明的是,θ记录了当前完整的匹配关系中,边权最小的匹配关系的边权。每当构建一个完整的匹配关系时,终端会根据该新构建成的完整匹配关系,实时更新θ。初始状态时,终端将θ设置为∞,同时,最优匹配Mopt=φ。
步骤(5):判断θ是否小于该匹配关系中的LB(M’),如果θ小于LB(M’),将最优匹配Mopt对应的匹配关系作为目标匹配关系,输出Mopt。结束。
需要说明的是,由步骤(1)可知,对于每一个待构建的匹配关系,LB(M’)﹤cost(M’),cost(M’)为终端将该不完整的匹配关系构建为完整的匹配关系时实际达到的边权,LB(M’)对应的匹配关系为队列H中下界最小匹配关系,即队列H中当前的最优待构建匹配,而θ为已构建的完整匹配关系中的最优匹配,如果θ﹤LB(M’),则有:θ﹤LB(M’)﹤cost(M’),即,完整匹配关系中的最优匹配的边权小于队列H中当前的最优待构建匹配的边权,由此可见,与队列H中当前的最优待构建匹配的边权相比,完整匹配关系中的最优匹配为目标匹配关系,因此,输出Mopt即可。
步骤2043:如果所述最小边权不小于所述添加后的所述选择的匹配关系的下界,终端重新从所述每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;执行将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中的步骤。
具体的,本步骤可以通过以下步骤(6)-(7)实现。
步骤(6):如果θ不小于LB(M’),终端对队列H中存储的搜索状态重新进行升序排列,执行步骤(2)。
步骤(7):终端判断队列H中存储的搜索状态的数目是否减为0,当队列H中存储的搜索状态数目减为0时,获取θ对应的最优匹配Mopt,输出Mopt。结束。当队列H中存储的搜索状态数目不为0时,执行步骤(2)。
需要说明的是,当队列H中存储的搜索状态数目减为0时,终端确定了所有可能存在的匹配关系的边权,因此,终端直接将θ对应的最优匹配作为目标匹配关系,输出Mopt,结束。
如图5所示,在关键词对和关系边之间确定的跨接边包括:(<V1,V2>,P11)(<V1,V2>,P12)、(<V1,V2>,P21)、(<V1,V2>,P22)、(<V1,V31>,P11)、(<V1,V31>,P12)(<V1,V31>,P21)、(<V1,V31>,P22)、(<V1,V32>,P11)、(<V1,V32>,P12)(<V1,V32>,P21)、(<V1,V32>,P22)、(<V2,V31>,P11)、(<V2,V31>,P12)(<V2,V31>,P21)、(<V2,V31>,P22)、(<V2,V32>,P11)、(<V2,V32>,P12)(<V2,V32>,P21)、(<V2,V32>,P22)。终端通过以上步骤确定每个跨接边的边权,并选择出的2个边权最小的且不存在冲突关系的目标跨接边为:E1(<V1,V2>,P11)和E2(<V2,V32>,P21)。
本发明实施例中,为了提高本发明实施例的准确率,终端根据该每个跨接边的边权,选择边权最小的预设数目个目标跨接边之后,还可以通过以下步骤,生成该预设数目个目标跨接边对应的目标拼接图,并检测该目标拼接图中是否存在间断顶点,从而对该目标拼接图进行修正。该过程可以为:根据边权最小的预设数目个目标跨接边,生成目标拼接图,该目标拼接图包括每个角色为顶点的第二关键词对应的每个顶点和每个角色为关系边的第二关键词对应的每个关系边,每个顶点通过每个关系边相连接;检测目标拼接图中是否存在间断顶点,如果目标拼接图中存在间断顶点,修正目标拼接图,间断顶点为该目标拼接图中除首位位置顶点和末位位置顶点外,不与两个顶点相连接的顶点。
需要说明的是,由步骤203可知,在一个拼接图中,顶点对和关系边通过跨接边相关联,因此,每个顶点对可以通过与之相关联的关系边连接,从而所有的顶点对之间均可通过关系边相连接。
终端可以根据预设数目个跨接边连接的第二关键词的角色,将角色为顶点的第二关键词作为顶点,将角色为关系边的第二关键词作为关系边,将顶点和关系边构建到拼接图中。其中,一个合理的目标拼接图中,需满足合理条件:除位于首位位置的顶点和末位位置的顶点外,其它顶点两端分别通过一个关系边与另一个顶点相连接。
然而,如果用户输入查询信息时,如果漏输或省略了角色为关系的第一关键词,从而导致拼接图中存在中间位置的顶点没有对应的关系边与两个顶点相连接,即,该目标拼接图不满足此合理条件,该目标拼接图中存在间断顶点,此时,需要对该目标拼接图进行修正。
此处,将与该间断顶点相连接的其它顶点以及顶点之间的关系边组成的部分拼接图称为该目标拼接图中的一个不连通的分量。
此时,终端可以通过在两个不连通的分量之间确定边权最小的跨接边,将这两个不连通的分量相连接,该过程可以为:终端遍历出第一不连通的分量和第二不连通的分量之间存在的顶点对。对于每个顶点对,终端确定该顶点对可能对应的至少一个关系边,并在该顶点对和关系边之间确定至少一个跨接边,在该至少一个跨接边中确定边权最小的跨接边,根据该边权最小的跨接边,将第一分量和第二分量进行连接。
然后,终端根据该预设数目个目标跨接边,通过以下步骤205,确定查询图。
步骤205:终端根据该预设数目个目标跨接边,确定查询图,该查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,该关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成。
由步骤205可知,该预设数目个目标跨接边关联的关键词对和角色为关系边的第二关键词分别对应目标拼接图中的顶点和关系边,终端可以根据该目标拼接图包括的顶点和关系边,确定查询图;其中,目标拼接图中只是将顶点对中的顶点通过关系边相连接,本步骤中,还需确定目标拼接图中的关系边的方向。
由步骤204可知,终端可以根据第二预设算法,编码每个跨接边连接的第二关键词,得到角色为顶点的第二关键词对应的顶点向量和角色为关系边的第二关键词对应的关系边向量,因此,在一个跨接边e(<Vi1,Vi2>,Pj)中,Vi1、Vi2、Pj对应的向量分别为其中,终端可以通过以下公式五,确定关系边Pj的方向,即,的方向:
其中,k为参考量,如果k小于零,确定的方向为由指向如果k大于零,确定的方向为由指向
本步骤中,将该查询图包括的关键词称为第三关键词,该第三关键词角色为类别、实体和关系,该查询图包括的第三关键词为预设数目个目标跨接边关联的顶点和关系边对应的第二关键词。终端根据目标拼接图以及目标拼接图中关系边的方向,确定查询图,该过程可以为:终端将目标拼接图中关系边对应的第二关键词作为查询图中的关系边,将目标拼接图中的顶点对应的第二关键词作为查询图中的顶点,详细地,根据顶点中角色为类别的第一关键词对应的顶点,引入该类别角色的顶点对应的变量顶点,并通过定义一条类别角色的关系边一端连接该变量顶点,该关系边另一端连接该类别角色的第一关键词对应的顶点;将顶点中角色为实体的第一关键词对应的顶点作为常量顶点,即实体角色的顶点。从而确定该查询图包括的第三关键词以及第三关键词的角色,终端通过关系边以及关系边的方向,将顶点对之间的顶点相连接,即,通过角色为关系的第三关键词,将角色为实体或类别的第三关键词相连接,并根据该角色为关系的第三关键词对应的关系边的方向,确定每个第三关键词之间的关系,从而确定查询图。
例如,如图6所示,根据目标跨接边:E1(<V1,V2>,P11)和E2(<V2,V32>,P21),通过公式五计算出每个跨接边对应的常量k,确定的方向为由指向确定的方向为由指向从而生成该查询图,该查询图中,用“?x”“?y”分别表示该查询图中的类别顶点{V1:scientist}、{V2:university}对应的变量顶点。
然后,终端根据该查询图,通过以下步骤106,在数据图中查询该查询图对应的查询数据。
步骤206:终端从该数据图中查询该查询图对应的查询数据,输出该查询数据。
本公开实施例中,由于已经将用户输入的查询信息中的每个单词对应的查询意图的进行分析,从而生成查询图,然后,直接将该查询图中的顶点或关系边对应的第三关键词和第三关键词的连接关系,生成目标查询指令,从而在该数据图中确定查询数据。无需将用户输入的查询信息中的每个单词对应到该数据图中,更无需根据每个单词在该数据图中对应的关键词寻找生成树,因此,相比现有技术,本公开提供的数据查询的方法极大的提高了查询效率。
本步骤中,终端从该数据图中查询该查询图对应的查询数据的步骤可以包括以下步骤2061-2062。
步骤2061:终端根据该查询图中包括的该每个第三关键词和该每个第三关键词之间的连接关系,生成目标查询指令,该目标查询指令为在该数据图中可识别查询指令。
本步骤中,终端通过将该查询图转换为目标查询指令,从而在数据图中进行查询。
终端根据该查询图中的每个第三关键词的角色,将角色为类别的该第三关键词作为变量关键词,将角色为实体的该第三关键词作为常量关键词。终端根据该变量关键词、该常量关键词以及角色为关系的第三关键词,生成该目标查询指令。
其中,该目标查询指令可以为SPARQL(Simple Protocol and RDF QueryLanguage,RDF查询语言和数据获取协议)查询对应的查询指令,还可以为其它将该查询图转换为在数据图进行查询的其它任一查询指令,本公开实施例对此不作具体限定。
例如,图6中的查询图对应的SPARQL查询指令可以为:
SELECT DISTINCT?x?y WHERE{
?x:type:Scientist.
?y:type:University.
?x:almaMater:?y.
?y:country:Unitied_States.
}
步骤2062:终端根据该目标查询指令,在该数据图中确定出该目标查询指令对应的查询数据。
本步骤中,该目标查询指令为查询工具可识别的指令,终端通过查询工具,执行该目标查询指令,将执行该目标查询指令得到的数据作为查询数据,从而确定出该目标查询指令在数据图中对应的查询数据。
其中,该查询工具可以为SPARQL查询引擎,此时,终端直接通过该SPARQL查询引擎执行查询图对应的SPARQL查询指令,将执行该SPARQL查询指令得到的数据作为查询数据。
然后,终端将该查询数据显示在终端屏幕上,使得用户浏览到所需的查询数据。
本发明实施例中,终端获取用户输入的查询信息,通过对查询信息分词得到第一关键词,从而将查询信息分成多个表示不同语义的第一关键词;终端从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,即确定出不同语义的第一关键词在数据图中对应的第二关键词;然后,终端根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边以及每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边,从而使得查询信息对应的关键词对和关系边角色的第二关键词通过该边权最小的预设数目个跨接边相关联;终端根据该预设数目个目标跨接边,确定查询图,该查询图包括了关键词集合包括的第三关键词以及每个第三关键词的连接关系,该关键词集合为终端表示用户查询意图的第一关键词确定,因此,终端将用户的查询意图构建到该查询图中,终端直接从数据图中查询查询图对应的查询数据,输出查询数据,使得用户获知所需的查询数据。由于终端将查询信息分成多个表示不同语义的第一关键词,根据多个不同语义的第一关键词,从而使得终端可以准确分析出用户的查询意图,然后,根据用户的查询意图,确定该第一关键词在数据图中对应的第二关键词,通过在第二关键词对和关系边角色的第二关键词之间确定跨接边,并计算跨接边的边权,从而构建出可以准确表达用户查询意图的查询图,使得终端可以根据该查询图,从数据图中查询用户所需的查询数据,从而提高了数据查询的准确率。
本发明实施例提供了一种数据查询的装置,该装置可以应用在终端中,参见图7,该装置包括:
获取模块301,用于获取用户输入的查询信息,对该查询信息进行分词得到第一关键词;
第一选择模块302,用于根据每个第一关键词,从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,该数据图中包括多个候选关键词和每个候选关键词的角色,该第二关键词的角色为顶点或关系边;
第一确定模块303,用于根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;
第二确定模块304,用于确定每个跨接边的边权;
第二选择模块305,用于根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边;
第三确定模块306,用于根据该预设数目个目标跨接边,确定查询图,该查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,该关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成;
查询模块307,用于从该数据图中查询该查询图对应的查询数据,输出该查询数据。
在一种可能的设计中,该第一确定模块303,包括:
第一确定单元,用于根据每个第二关键词和每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个该第一关键词各自对应的一个第二关键词;
第二确定单元,用于分别在角色为关系边的第二关键词和该至少一个关键词对之间确定该至少一个跨接边。
在一种可能的设计中,该第二确定模块304,包括:
编码单元,用于根据第二预设算法,编码每个跨接边连接的第二关键词,得到顶点向量和关系边向量,该顶点向量为角色为顶点的第二关键词对应的向量,该关系边向量为角色为关系边的第二关键词对应的向量;
计算单元,用于根据每个跨接边对应的该顶点向量和该关系边向量,计算每个跨接边的边权。
在一种可能的设计中,预设数目个跨接边对应一个匹配关系,该第二选择模块305,包括:
生成单元,用于根据每个跨接边,生成每个待构建的匹配关系,该待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
选择单元,用于根据每个待构建的匹配关系包括的跨接边,从每个待构建的匹配关系中选择待构建的匹配关系,将该选择的匹配关系对应的边权最小的跨接边添加到该选择的匹配关系中;
预估单元,用于预估添加后的该选择的匹配关系的下界,该匹配关系的下界为终端预估将每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取单元,用于获取每个待构建的匹配关系对应的最小边权;
作为单元,用于如果该最小边权小于该添加后的该选择的匹配关系的下界,将该最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
在一种可能的设计中,其特征在于,
该第二选择模块305,还用于如果该最小边权不小于该添加后的该选择的匹配关系的下界,重新从每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;将该选择的匹配关系对应的边权最小的跨接边添加到该选择的匹配关系中。
在一种可能的设计中,其特征在于,
该取单元,还用于判断每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从每个待构建的匹配关系中提取每个完整匹配关系;将每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,该完整匹配关系为包括预设数目个跨接边的匹配关系。
在一种可能的设计中,其特征在于,
该预估单元,还用于获取该添加后的该选择的匹配关系的边权,该添加后的该选择的匹配关系为该添加后的该选择的匹配关系中当前包括的跨接边的边权之和;根据第三预设算法以及该添加后的该选择的匹配关系的边权,确定该添加后的该选择的匹配关系的下界。
本发明实施例中,终端获取用户输入的查询信息,通过对查询信息分词得到第一关键词,从而将查询信息分成多个表示不同语义的第一关键词;终端从数据图中选择每个第一关键词对应的第二关键词和角色,得到每个第二关键词和每个第二关键词的角色,即确定出不同语义的第一关键词在数据图中对应的第二关键词;然后,终端根据每个第二关键词和每个第二关键词的角色,确定至少一个跨接边以及每个跨接边的边权,并根据每个跨接边的边权,选择边权最小的预设数目个目标跨接边,从而使得查询信息对应的关键词对和关系边角色的第二关键词通过该边权最小的预设数目个跨接边相关联;终端根据该预设数目个目标跨接边,确定查询图,该查询图包括了关键词集合包括的第三关键词以及每个第三关键词的连接关系,该关键词集合为终端表示用户查询意图的第一关键词确定,因此,终端将用户的查询意图构建到该查询图中,终端直接从数据图中查询查询图对应的查询数据,输出查询数据。由于终端将查询信息分成多个表示不同语义的第一关键词,根据多个不同语义的第一关键词,从而使得终端可以准确划分出用户的查询意图包括的多个语义,然后,确定该第一关键词在数据图中对应的第二关键词,通过在第二关键词对和关系边角色的第二关键词之间确定跨接边,并计算跨接边的边权,从而构建出可以准确表达用户查询意图的查询图,使得终端可以根据该查询图,从数据图中查询用户所需的查询数据,从而提高了数据查询的准确率。
需要说明的是:上述实施例提供的数据查询的装置在数据查询时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据查询的装置与数据查询的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种数据查询的方法,其特征在于,所述方法包括:
获取用户输入的查询信息,将所述查询信息进行分词处理得到多个第四关键词集合,选取所述多个第四关键词集合中覆盖度最大的第四关键词集合包括的第四关键词作为第一关键词;
根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和第二关键词的角色,得到每个第二关键词和每个第二关键词的角色,所述数据图中包括多个候选关键词和每个候选关键词的角色,所述第二关键词的角色为顶点或关系边;
根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;
确定每个跨接边的边权,并根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边;
根据所述预设数目个目标跨接边,确定查询图,所述查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,所述关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成;
从所述数据图中查询所述查询图对应的查询数据,输出所述查询数据;
预设数目个跨接边对应一个匹配关系,所述根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边,包括:
根据所述每个跨接边,生成每个待构建的匹配关系,所述待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
根据所述每个待构建的匹配关系包括的跨接边,从所述每个待构建的匹配关系中选择待构建的匹配关系,将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中;
预估添加后的所述选择的匹配关系的下界,所述匹配关系的下界为终端预估将所述每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取所述每个待构建的匹配关系对应的最小边权;
如果所述最小边权小于所述添加后的所述选择的匹配关系的下界,将所述最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
2.根据权利要求1所述的方法,其特征在于,所述根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和角色,得到第二关键词和第二关键词的角色,包括:
确定所述每个第一关键词的角色,所述每个第一关键词的角色为类别、实体或关系;
根据所述每个第一关键词和所述每个第一关键词的角色,从所述数据图包括的多个候选关键词和每个候选关键词的角色中,确定所述每个第一关键词对应的第二关键词和每个第二关键词的角色。
3.根据权利要求1所述的方法,其特征在于,所述根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,包括:
根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个所述第一关键词各自对应的一个第二关键词;
分别在角色为关系边的第二关键词和所述至少一个关键词对之间确定所述至少一个跨接边。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,包括:
从所述每个第二关键词中,确定所述每个第一关键词对应的目标第二关键词;
将角色为顶点的目标第二关键词任意两两组合,得到目标关键词对;
在所述目标关键词对和角色为关系边的目标第二关键词之间确定所述至少一个跨接边。
5.根据权利要求1所述的方法,其特征在于,所述确定每个跨接边的边权,包括:
根据第二预设算法,编码所述每个跨接边连接的第二关键词,得到顶点向量和关系边向量,所述顶点向量为角色为顶点的第二关键词对应的向量,所述关系边向量为角色为关系边的第二关键词对应的向量;
根据所述每个跨接边对应的所述顶点向量和所述关系边向量,计算所述每个跨接边的边权。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述最小边权不小于所述添加后的所述选择的匹配关系的下界,重新从所述每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;
执行将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中的步骤。
7.根据权利要求1所述的方法,其特征在于,所述获取所述每个待构建的匹配关系对应的最小边权,包括:
判断所述每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从所述每个待构建的匹配关系中提取每个完整匹配关系;
将所述每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,所述完整匹配关系为包括预设数目个跨接边的匹配关系。
8.根据权利要求1所述的方法,其特征在于,所述预估添加后的所述选择的匹配关系的下界,包括:
获取所述添加后的所述选择的匹配关系的边权,所述添加后的所述选择的匹配关系为所述添加后的所述选择的匹配关系中当前包括的跨接边的边权之和;
根据第三预设算法以及所述添加后的所述选择的匹配关系的边权,确定所述添加后的所述选择的匹配关系的下界。
9.一种数据查询的装置,其特征在于,所述装置包括:
获取模块,用于获取用户输入的查询信息,将所述查询信息进行分词处理得到多个第四关键词集合,选取所述多个第四关键词集合中覆盖度最大的第四关键词集合包括的第四关键词作为第一关键词;
第一选择模块,用于根据每个第一关键词,从数据图中选择所述每个第一关键词对应的第二关键词和第二关键词的角色,得到每个第二关键词和每个第二关键词的角色,所述数据图中包括多个候选关键词和每个候选关键词的角色,所述第二关键词的角色为顶点或关系边;
第一确定模块,用于根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个跨接边,每个跨接边连接角色为顶点的任意两个第二关键词和角色为关系边的任意一个第二关键词;
第二确定模块,用于确定每个跨接边的边权;
第二选择模块,用于根据所述每个跨接边的边权,选择边权最小的预设数目个目标跨接边;
第三确定模块,用于根据所述预设数目个目标跨接边,确定查询图,所述查询图包括关键词集合中的每个第三关键词和每个第三关键词之间的连接关系,所述关键词集合由每个目标跨接边包括的顶点和关系边对应的第二关键词组成;
查询模块,用于从所述数据图中查询所述查询图对应的查询数据,输出所述查询数据;
预设数目个跨接边对应一个匹配关系,所述第二选择模块,包括:
生成单元,用于根据所述每个跨接边,生成每个待构建的匹配关系,所述待构建的匹配关系为包括的跨接边数目小于预设数目的匹配关系;
选择单元,用于根据所述每个待构建的匹配关系包括的跨接边,从所述每个待构建的匹配关系中选择待构建的匹配关系,将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中;
预估单元,用于预估添加后的所述选择的匹配关系的下界,所述匹配关系的下界为终端预估将所述每个待构建的匹配关系构建为完整匹配关系时的最小边权;
获取单元,用于获取所述每个待构建的匹配关系对应的最小边权;
作为单元,用于如果所述最小边权小于所述添加后的所述选择的匹配关系的下界,将所述最小边权的完整匹配关系包括的预设数目个跨接边作为目标跨接边。
10.根据权利要求9所述的装置,其特征在于,所述第一确定模块,包括:
第一确定单元,用于根据所述每个第二关键词和所述每个第二关键词的角色,确定至少一个关键词对,每个关键词对包括角色为实体或类别的两个所述第一关键词各自对应的一个第二关键词;
第二确定单元,用于分别在角色为关系边的第二关键词和所述至少一个关键词对之间确定所述至少一个跨接边。
11.根据权利要求9所述的装置,其特征在于,所述第二确定模块,包括:
编码单元,用于根据第二预设算法,编码所述每个跨接边连接的第二关键词,得到顶点向量和关系边向量,所述顶点向量为角色为顶点的第二关键词对应的向量,所述关系边向量为角色为关系边的第二关键词对应的向量;
计算单元,用于根据所述每个跨接边对应的所述顶点向量和所述关系边向量,计算所述每个跨接边的边权。
12.根据权利要求9所述的装置,其特征在于,
所述第二选择模块,还用于如果所述最小边权不小于所述添加后的所述选择的匹配关系的下界,重新从所述每个待构建的匹配关系中选择满足预设条件的待构建的匹配关系;将所述选择的匹配关系对应的边权最小的跨接边添加到所述选择的匹配关系中。
13.根据权利要求9所述的装置,其特征在于,
所述获取单元,还用于判断所述每个待构建的匹配关系中是否存在完整匹配关系,如果存在,从所述每个待构建的匹配关系中提取每个完整匹配关系;将所述每个完整匹配关系中边权最小的完整匹配关系的边权作为最小边权,所述完整匹配关系为包括预设数目个跨接边的匹配关系。
14.根据权利要求9所述的装置,其特征在于,
所述预估单元,还用于获取所述添加后的所述选择的匹配关系的边权,所述添加后的所述选择的匹配关系为所述添加后的所述选择的匹配关系中当前包括的跨接边的边权之和;根据第三预设算法以及所述添加后的所述选择的匹配关系的边权,确定所述添加后的所述选择的匹配关系的下界。
CN201710208998.8A 2017-03-31 2017-03-31 数据查询的方法和装置 Active CN107145512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710208998.8A CN107145512B (zh) 2017-03-31 2017-03-31 数据查询的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710208998.8A CN107145512B (zh) 2017-03-31 2017-03-31 数据查询的方法和装置

Publications (2)

Publication Number Publication Date
CN107145512A CN107145512A (zh) 2017-09-08
CN107145512B true CN107145512B (zh) 2019-10-18

Family

ID=59783948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710208998.8A Active CN107145512B (zh) 2017-03-31 2017-03-31 数据查询的方法和装置

Country Status (1)

Country Link
CN (1) CN107145512B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920452B (zh) * 2018-06-08 2022-05-17 北京明略软件系统有限公司 一种信息处理方法及装置
CN109062902B (zh) * 2018-08-17 2022-12-06 科大讯飞股份有限公司 一种文本语义表达方法及装置
CN109976743B (zh) * 2019-04-09 2022-07-12 苏州浪潮智能科技有限公司 一种代码提示的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008097A (zh) * 2013-02-21 2014-08-27 日电(中国)有限公司 实现查询理解的方法及装置
CN104156431A (zh) * 2014-08-08 2014-11-19 西安交通大学 一种基于实体图社团结构的rdf关键词查询方法
CN104915340A (zh) * 2014-03-10 2015-09-16 北京大学 自然语言问答方法及装置
CN105912606A (zh) * 2016-04-05 2016-08-31 湖南人文科技学院 基于同义词扩展的关系数据库关键词搜索方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008097A (zh) * 2013-02-21 2014-08-27 日电(中国)有限公司 实现查询理解的方法及装置
CN104915340A (zh) * 2014-03-10 2015-09-16 北京大学 自然语言问答方法及装置
CN104156431A (zh) * 2014-08-08 2014-11-19 西安交通大学 一种基于实体图社团结构的rdf关键词查询方法
CN105912606A (zh) * 2016-04-05 2016-08-31 湖南人文科技学院 基于同义词扩展的关系数据库关键词搜索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Keyword search over RDF graphs";Shady Elbassuoni等;《Proceedings of the 20th ACM international conference on Information and knowledge management》;20111028;第237-242页 *

Also Published As

Publication number Publication date
CN107145512A (zh) 2017-09-08

Similar Documents

Publication Publication Date Title
CN108052547B (zh) 基于问句和知识图结构分析的自然语言问答方法及系统
CN104915340B (zh) 自然语言问答方法及装置
CN106484664B (zh) 一种短文本间相似度计算方法
CN107145512B (zh) 数据查询的方法和装置
US20060253273A1 (en) Information extraction using a trainable grammar
CN103970733B (zh) 一种基于图结构的中文新词识别方法
CN112527998A (zh) 一种答复推荐方法、答复推荐装置及智能设备
CN111026886A (zh) 一种针对专业场景的多轮对话处理方法
CN112328891A (zh) 训练搜索模型的方法、搜索目标对象的方法及其装置
CN114896373A (zh) 图文互检模型训练方法及装置、图文互检方法、设备
CN107203526A (zh) 一种查询串语义需求分析方法及装置
CN109582761A (zh) 一种基于网络平台的词语相似度的中文智能问答系统方法
Dong et al. Data-anonymous encoding for text-to-SQL generation
CN108052683B (zh) 一种基于余弦度量规则的知识图谱表示学习方法
CN110823226A (zh) 一种基于蜕变测试技术的无人机智能航路规划测试方法
CN115688753A (zh) 中文预训练语言模型的知识注入方法和交互系统
CN109165351A (zh) 一种基于语义的服务构件搜索推荐方法
CN108536796B (zh) 一种基于图的异构本体匹配方法及系统
CN116680356A (zh) 地址数据处理方法、装置、电子设备及存储介质
CN116069876A (zh) 基于知识图谱的问答方法、装置、设备及存储介质
CN115577119A (zh) 知识图谱推理模型训练方法、设备和存储介质
CN112328915B (zh) 基于空间实体匹配性能评估的多源兴趣点融合方法及系统
CN115146022A (zh) 用于知识图中的关键词搜索的计算机实现方法
Kami et al. Algorithm for detecting significant locations from raw GPS data
CN109885700B (zh) 一种基于工业知识图谱的非结构化数据分析方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant