可左右滑动选省市

一种基于知识图谱的数据查询系统、方法及终端设备

更新时间:2024-07-01
一种基于知识图谱的数据查询系统、方法及终端设备 专利申请类型:实用新型专利;
地区:广东-惠州;
源自:惠州高价值专利检索信息库;

专利名称:一种基于知识图谱的数据查询系统、方法及终端设备

专利类型:实用新型专利

专利申请号:CN202010484090.1

专利申请(专利权)人:TCL科技集团股份有限公司
权利人地址:广东省惠州市仲恺高新区惠风三路17号TCL科技大厦

专利发明(设计)人:朱信杰

专利摘要:本申请适用于数据检索技术领域,提供一种基于知识图谱的数据查询系统、方法及终端设备,其中系统包括:图数据库,存储有以第一设定数据模型的形式所存储的知识图谱,图数据库对应有第一搜索工具,第一搜索工具用于基于图数据库的知识图谱获取待查询数据;副本数据库,存储有知识图谱,知识图谱在副本数据库中以与第一设定数据模型不同的第二设定数据模型的形式进行存储,副本数据库对应有第二搜索工具,第二搜索工具用于基于副本数据库的知识图谱获取待查询数据。该方案确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时,又能兼顾其他查询需求,提升基于知识图谱的数据查询性能。

主权利要求:
1.一种基于知识图谱的数据查询系统,其特征在于,包括:
图数据库,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述图数据库对应有第一搜索工具,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据;所述第一搜索工具是所述图数据库自身所配置的搜索工具;
副本数据库,所述副本数据库中存储有所述知识图谱,所述知识图谱在所述副本数据库中以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储,所述副本数据库对应有第二搜索工具,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据;所述第二搜索工具为搜索引擎;
其中,所述第一设定数据模型中包括:
实体,对应于所述知识图谱中的结点;关系,对应于所述知识图谱中结点之间的边;属性,用于描述所述知识图谱中所述实体或所述关系的特征;
其中,所述第二设定数据模型中包括:
文档,对应于所述第一设定数据模型中的所述实体,所述文档中还包括场地,所述场地中第一场地对应于当前文档所对应实体的所述属性,所述场地中第二场地对应于与当前文档所对应实体具有边连接关系的另一实体。
2.如权利要求1所述的数据查询系统,其特征在于,所述数据查询系统还包括第三搜索工具,其中,所述第三搜索工具为供用户进行数据查询条件输入的搜索工具,所述第三搜索工具分别与所述第一搜索工具及所述第二搜索工具联结。
3.根据权利要求1或2所述的数据查询系统,其特征在于,其中,所述第二搜索工具中,基于每个所述场地对所述文档建立倒排索引。
4.一种数据查询方法,其特征在于,包括:
获取数据查询条件;
基于所述数据查询条件,在确定所述数据查询条件符合第一查询特征的情况下,通过第一搜索工具在图数据库中搜索与所述数据查询条件相匹配的第一目标查询数据,其中,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据;所述第一搜索工具是所述图数据库自身所配置的搜索工具;
基于所述数据查询条件,在确定所述数据查询条件符合第二查询特征的情况下,将所述数据查询条件输出至第二搜索工具,使所述第二搜索工具基于所述数据查询条件,从副本数据库中搜索与所述数据查询条件相匹配的第二目标查询数据,其中,所述副本数据库中存储有以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储的知识图谱,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据;所述第二搜索工具为搜索引擎;
其中,所述第一设定数据模型中包括:实体,对应于所述知识图谱中的结点;关系,对应于所述知识图谱中结点之间的边;属性,用于描述所述知识图谱中所述实体或所述关系的特征;
其中,所述第二设定数据模型中包括:文档,对应于所述第一设定数据模型中的所述实体,所述文档中还包括场地,所述场地中第一场地对应于当前文档所对应实体的所述属性,所述场地中第二场地对应于与当前文档所对应实体具有边连接关系的另一实体。
5.根据权利要求4所述的数据查询方法,其特征在于,所述第一查询特征包括:所述数据查询条件中所包括的实体的数量大于或等于第一阈值,且所述数据查询条件中所包括的实体之间所对应的关系的数量大于或等于第二阈值。
6.根据权利要求5所述的数据查询方法,其特征在于,所述第二搜索工具中,基于每个所述场地对所述文档建立倒排索引;
相应地,所述第二查询特征包括:
所述数据查询条件中所包括的实体的数量小于所述第一阈值且所述数据查询条件中所包括的实体之间所对应的关系的数量小于所述第二阈值。
7.根据权利要求4至6中任一项所述的数据查询方法,其特征在于,所述获取数据查询条件之前,还包括:在所述第二搜索工具中进行索引声明;
基于声明的所述索引,定义预设类别的分析器;
其中,不同类别的分析器具有不同的数据查询条件的解析功能。
8.根据权利要求4至6中任一项所述的数据查询方法,其特征在于,还包括:对所述图数据库中的所述知识图谱进行数据监测;
在监测到所述知识图谱发生数据内容改变的情况下,对应修改所述副本数据库中存储的所述知识图谱的数据内容。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求4至8任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4至8任一项所述方法的步骤。 说明书 : 一种基于知识图谱的数据查询系统、方法及终端设备技术领域[0001] 本申请属于数据检索技术领域,尤其涉及一种基于知识图谱的数据查询系统、方法及终端设备。背景技术[0002] 知识图谱可以用来表示客观世界中不同实体、属性及实体间存在的关系。基于知识图谱的查询越来越被应用于各类语义搜索中。比如对于媒体资料领域,其中需要存储并使用的知识是各种影片、音乐、艺人等方面的信息。将这些知识构建在一个媒资垂类的知识图谱中,每一部影片便是一个实体,它的片名、片长、语言等信息均是该实体的属性。每个艺人同样也是一个实体,作为艺人的实体与其参演的影片实体构成“出演”的关系。[0003] 知识图谱中的内容可以根据需要存储在各类数据库或文件系统,现有传统数据库可以实现传统的数据查询操作功能,但在对知识图谱进行文件查询访问时,不能直观地表现出图谱中实体之间的关系,通常需要对返回的结果进行后处理加工才能生成语义搜索的最终结果,令基于知识图谱的搜索引擎的性能受到影响。[0004] 为了更直观方便地存储图类型的数据,现有的知识图谱常常存储在各类图数据库中。但通过图数据库实现图类型数据的直观方便存储的同时,通常图数据库自身所提供的查询语言更侧重于图结构中路径的匹配,尤其突出表现于长路径匹配。而在基于实体的属性去查询满足特定条件的实体(只关注某类实体,并不涉及到关系,只考虑图中的某些点,但不考虑到边)时,则查询响应较慢,查询效果不佳,不能实现图类型数据的不同数据查询需求。发明内容[0005] 本申请实施例提供了一种基于知识图谱的数据查询系统、方法及终端设备,以解决现有技术中针对图类型数据的信息查询无法确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时又能实现其他查询需求的问题。[0006] 本申请实施例的第一方面提供了一种基于知识图谱的数据查询系统,包括:[0007] 图数据库,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述图数据库对应有第一搜索工具,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据;[0008] 副本数据库,所述副本数据库中存储有所述知识图谱,所述知识图谱在所述副本数据库中以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储,所述副本数据库对应有第二搜索工具,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据。[0009] 本申请实施例的第二方面提供了一种数据查询方法,包括:[0010] 获取数据查询条件;[0011] 基于所述数据查询条件,在确定所述数据查询条件符合第一查询特征的情况下,通过第一搜索工具在图数据库中搜索与所述数据查询条件相匹配的第一目标查询数据,其中,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据;[0012] 基于所述数据查询条件,在确定所述数据查询条件符合第二查询特征的情况下,将所述数据查询条件输出至第二搜索工具,使所述第二搜索工具基于所述数据查询条件,从副本数据库中搜索与所述数据查询条件相匹配的第二目标查询数据,其中,所述副本数据库中存储有以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储的知识图谱,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据。[0013] 本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面所述方法的步骤。[0014] 本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面所述方法的步骤。[0015] 本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述第二方面所述方法的步骤。[0016] 由上可见,本申请实施例中,通过建立两个存储数据的数据库,分别以不同的数据模型进行数据存储,通过改变知识图谱的数据内容的存储方式,以能够满足不同查询需求下,分别采用各自对应的搜索工具,实现从不同数据库中读取不同数据模型下存储的知识图谱数据,提升知识图谱中数据的搜索效率,确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时,又能兼顾其他查询需求,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。附图说明[0017] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0018] 图1是本申请实施例提供的基于知识图谱的数据查询系统的结构图;[0019] 图2是本申请实施例提供的一种数据查询方法的流程图一;[0020] 图3是本申请实施例提供的一种数据查询方法的流程图二;[0021] 图4是本申请实施例提供的一种终端设备的结构图。具体实施方式[0022] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。[0023] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。[0024] 还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。[0025] 还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。[0026] 如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。[0027] 具体实现中,本申请实施例中描述的终端设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。[0028] 在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端设备。然而,应当理解的是,终端设备可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。[0029] 终端设备支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。[0030] 可以在终端设备上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端设备上显示的相应信息。这样,终端设备的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。[0031] 应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。[0032] 为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。[0033] 本申请实施例中公开了一种基于知识图谱的数据查询系统,结合图1所示,包括:[0034] 图数据库,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述图数据库对应有第一搜索工具,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据;[0035] 副本数据库,所述副本数据库中存储有所述知识图谱,所述知识图谱在所述副本数据库中以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储,所述副本数据库对应有第二搜索工具,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据。[0036] 具体地,图数据库中对知识图谱的建立,为依照第一设定数据模型进行;在副本数据库中同样存储有该知识图谱的数据内容,具体地,在对该知识图谱的数据内容进行存储时,则是按照与第一设定数据模型所完全不同的第二设定数据模型进行数据存储。该副本数据库中存储的知识图谱的数据内容具体为从图数据库中进行的导入,该存储方式相当于在第二搜索工具所对应的副本数据库中以不同的数据模式存储一份知识图谱的副本。[0037] 这里,图数据库具体为开源的图数据库,例如为Neo4j,该Neo4j本身也提供类似SQL一样简洁的查询语言Cypher。书写Cypher语句可以灵活地创建、更新和删除Neo4j中的实体数据及关系数据。当查询Neo4j时,Cypher语句表达的便是图谱中的一条或多条路径。其中,第一搜索工具可以是图数据库自身所配置的搜索工具,具体为配置的应用该Cypher查询语言的搜索工具。[0038] 其中,该第二搜索工具可以为搜索引擎,具体为利用大量索引的搜索引擎,例如ElasticSearch。可以针对单纯基于实体的属性去查询满足特定条件的实体这一类型的查询减少响应时间,同时结合对应的副本数据库,该副本数据库中的数据与图数据库中的知识图谱数据保持内容上的一致性,实现某些搜索需求下的数据快速查找。[0039] Neo4j与ElasticSearch都作为可扩展性的、高性能的数据处理工具,可以存储和分析大规模的知识图谱数据。将Elasticsearch与Neo4j共同用于知识图谱的搜索上,实现将Elasticsearch结合到Neo4j构建的知识图谱做搜索引擎,能够基于不同的查询条件采取不同的基于Elasticsearch为主或基于Neo4j为主的数据查询执行计划。[0040] 其中,包括第一设定数据模型及第二设定数据模型在内的设定数据模型,用于指示将数据内容(知识图谱)按照指定数据分布形式在数据库中进行存储。[0041] 该过程中,通过建立两个存储数据的数据库,分别以不同的数据模型进行数据存储,通过改变知识图谱的数据内容的存储方式,以能够满足不同查询需求下,分别采用各自对应的搜索工具,实现从不同数据库中读取不同数据模型下存储的知识图谱数据,提升知识图谱中数据的搜索效率,确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时,又能兼顾其他查询需求,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0042] 进一步地,作为一可选的实施方式,结合图1所示,该数据查询系统还包括第三搜索工具。[0043] 其中,所述第三搜索工具为可供用户进行数据查询条件输入的搜索工具,所述第三搜索工具分别与所述第一搜索工具及所述第二搜索工具联结。[0044] 该第三搜索工具具体为单独设置的搜索引擎,以供用户进行数据查询条件输入,该第三搜索工具与第一搜索工具及所述第二搜索工具相联结,实现用户输入的数据查询条件及查询结果的交互传递。该第三搜索工具用于基于数据查询条件,通过第一搜索工具在图数据库中进行数据查询,和/或,通过第二搜索工具在副本数据库中进行数据查询。[0045] 在具体操作过程中,在处理收到的知识图谱查询时,开发了一个搜索引擎(即第三搜索工具),此引擎可同时访问Neo4j和Elasticsearch,对待不同的查询条件采用不同的查询计划,在判断需要借助Elasticsearch做搜索时,编写DSL语句实现在副本数据库中进行数据检索匹配,而需要借助neo4j做查询时,编写Cypher语句,这样从二者当中获得满足查询条件的数据后即可进行结果输出,返回给查询用户。[0046] 图作为一种灵活的数据结构,也是数据科学的一种经典模型,许多实际问题都可以把其中的事物抽象成顶点,各个事物之间的关系抽象成边后再根据不同的应用场景直接或间接的规约为图计算问题再进行处理。[0047] 在对知识图谱进行数据存储时,作为一可选的实施方式,其中第一设定数据模型中包括:[0048] 实体,对应于所述知识图谱中的结点;[0049] 关系,对应于所述知识图谱中结点之间的边;[0050] 属性,用于描述所述知识图谱中所述实体或所述关系的特征。[0051] 对应地,第二设定数据模型中包括:[0052] 文档,对应于所述第一设定数据模型中的所述实体,所述文档中还包括场地,所述场地中第一场地对应于当前文档所对应实体的所述属性,所述场地中第二场地对应于与当前文档所对应实体具有边连接关系的另一实体;[0053] 其中,所述第二搜索工具中,基于每个所述场地对所述文档建立倒排索引。[0054] 具体地,以图数据库为Neo4j、第二搜索工具为ElasticSearch为例,进行说明。首先,要将Neo4j与ElasticSearch结合起来一起使用,需要首先理解二者的数据模型。[0055] 作为图数据库的Neo4j,其定义的基本数据模型为propertygraphmodel(属性图形模型),其中主要包含四个要素:(1)实体,对应于知识图谱中的结点,如媒资库中的影片、艺人等。(2)关系,对应于知识图谱中结点之间的边,如媒资库中艺人实体和影片实体间的出演关系,或艺人实体之间的人物关系等。(3)属性,可为描述实体特征的属性,也可为描述关系的属性,即知识图谱中的结点和边都可以具备属性,如媒资库中影片的片长、得分等属性,或艺人出演影片的时间属性等。此外,还可以包括:标签,用于描述实体所属集合的类别,如媒资库中所有的影片实体的类别都是影片,给出标签的好处在于可以将搜索的实体范围缩小,加快搜索效率。[0056] ElasticSearch的数据模型为index(索引)‑type(类型)‑document(文件)三层,其中document中含有若干个field(场地)。需要根据待满足的搜索需求对数据模式进行设置。这里遵循的策略是document中的field分别对应于实体的各个属性。当在某个index中导入多个document时,ElasticSearch基于每个field对所有document建立倒排索引。待给定查询条件时,ElasticSearch便会利用事先建立好的倒排索引搜索到与数据查询条件相匹配的document。[0057] ElasticSearch所对应的副本数据库中同样存储有知识图谱对应的数据内容,在具体存储时,采用的做法是每个Neo4j中的实体对应一个ElasticSearch中的document,实体的各属性对应document中所包括的对应的field。而对于Neo4j中存在的关系或边,我们可以令具有此关系的某个实体(即边的一个结点)对应的document带有一个field,该field的值为此关系的另一个实体(即边的另一个结点),即,通过一个field将此关系及具有此关系的另一个实体进行同时记录存储,而不将关系及具有此关系的另一个实体进行分别记录存储。[0058] 通过一个field将实体间的边连接关系(包括结点之间的边连接关系及关系的特征)及对与当前document所对应实体具有边连接。如在媒资库中,一个表示某部影片的document除了具有表示其自身属性的field(如片长、得分等)外,还有名为“演员”的field表示哪些演员实体与该影片实体具有“出演”关系。当多个艺人实体与此影片实体具有“出演”关系时,此“演员”field的值为多个艺人的名字(数据类型可以为数组)。[0059] 具体地,第二设定数据模型中,场地中对应于与当前文档所对应实体具有边连接关系的另一实体第二场地的设置,可以是是从图谱中具有某种关系的两个实体中,选取待满足的搜索需求中更偏重的一个实体,在其对应的document中加上一个field表示此种关系,并将另一个实体作为代表此关系的field的值;或者选取存在关系的两个实体,在该两个实体各自对应的document中加上一个field表示此种关系,并将该关系中与一个实体本身对应的另一个实体作为代表此关系的field的值。[0060] 进一步地,在上述过程中,副本数据库中的数据可以是通过运行预设的脚本将图数据库中的数据导入至副本数据库中,可通过运行脚本完成此项功能,以从图数据库中读取其存储的所有实体、关系及属性数据,再通过转换得到符合之前定义好的模式的数据,最后批量导入副本数据库中,提升数据处理效率。[0061] 参见图2,图2是本申请实施例提供的一种数据查询方法的流程图一。如图2所示,一种数据查询方法,该方法包括以下步骤:[0062] 步骤201,获取数据查询条件。[0063] 其中,该数据查询条件可以是基于设置的一可供用户进行数据查询条件输入的搜索工具进行的获取。[0064] 步骤202,基于所述数据查询条件,在确定所述数据查询条件符合第一查询特征的情况下,通过第一搜索工具在图数据库中搜索与所述数据查询条件相匹配的第一目标查询数据。[0065] 该第一搜索工具及图数据库的相关功能及实现方式与前述基于知识图谱的数据查询系统的实施方式中的第一搜索工具及图数据库的相同,此处不再赘述。[0066] 其中,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据。[0067] 这里,第一查询特征与图数据库中存储知识图谱所采用的第一设定数据模式相关联,当数据查询条件符合该第一设定数据模式的数据存储特征时,则可以确定数据查询条件符合第一查询特征。[0068] 作为一具体的实施方式,第一设定数据模型中包括:实体,对应于所述知识图谱中的结点;关系,对应于所述知识图谱中结点之间的边;属性,用于描述所述知识图谱中所述实体或所述关系的特征。[0069] 该第一设定数据模型中,实现对知识图谱中的结点、结点之间的边及知识图谱中结点或边的特征的分别记录存储,具备结点之间具有清晰的关系记录信息的特征。[0070] 相应地,所述第一查询特征包括:所述数据查询条件中所包括的实体的数量大于或等于第一阈值;或者,所述数据查询条件中所包括的实体的数量大于或等于所述第一阈值,且所述数据查询条件中所包括的实体之间所对应的关系的数量大于或等于第二阈值。[0071] 其中,该第一阈值及第二阈值可以是基于实际应用进行具体设置。该第一阈值及第二阈值均为正整数,第一阈值可以取值为大于2的数值,第二阈值可以取值为大于1的数值,例如,该第一阈值为3,第二阈值为2。[0072] 其中,在数据查询条件中所包括的实体的数量大于或等于所述第一阈值时,在该数量的实体中,不同实体之间可能会存在对应的关系(对应于所述知识图谱中结点之间的边),前述的“实体之间所对应的关系的数量”即为在实体的数量大于或等于第一阈值的情况下,不同实体之间所存在的关系的总数量。[0073] 在数据查询条件中所包括的实体的数量大于或等于第一阈值时,则表明用户当前所输入的数据查询条件中所包括的实体(对应于知识图谱中的结点)的数量比较多,即数据查询条件中牵涉多个主体。在数据查询条件中所包括的实体的数量大于或等于第一阈值,且所述数据查询条件中所包括的实体之间所对应的关系的数量大于第二阈值时,则表明用户当前所输入的数据查询条件中所包括的实体(对应于知识图谱中的结点)的数量比较多且该些数量的实体之间所具有的关系(对应于所述知识图谱中结点之间的边)的数量同样比较多,即该些数量的实体之间存在复杂的关系。此时,则认为采用第一设定数据模型进行知识图谱存储的图数据库进行数据的查询检索较为合适,确保数据库中数据查询匹配过程能够与用户的数据查询条件相适配,能够满足用户基于多实体及多实体之间关联关系进行的数据查询,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0074] 当数据查询条件中所包括的实体数量比较多的时候,或者数据查询条件中所包括的实体数量比较多且该些实体之间存在复杂的关系种类时,则认为采用第一设定数据模型进行知识图谱存储的图数据库进行数据的查询检索较为合适,此时选择通过第一搜索工具在图数据库中搜索与数据查询条件相匹配的第一目标查询数据。[0075] 具体地,在实际应用中,上述情况下,可利用Neo4j在整个图结构中找出匹配查询条件的子图结构。这类查询一般包含图中结点的多“跳”(从某一结点A经其一条边到达另一结点B,再由B经其一条边达到结点C,以此类推)。作为专为处理图数据而生的Neo4j最重要的能力便是执行多“跳”模式的子图匹配。比如在媒资知识图谱应用中,给定某部影片,我们的目标是找到与其相关的其他影片。影片之间的该相关具体可以定义为它们拥有共同的标签,例如拥有共同的演员参演、影片都属于古装剧,拥有共同的标签显示它们的分类一致。如“甄嬛传”和“芈月传”都是孙俪参演的古装剧。在我们利用Neo4j构建的图结构中,影片、艺人、标签词分别作为三类实体,而该三类实体之间具有多种关系。当数据查询条件中包含这样的多个实体或包含的多个实体之间具有多种关系时,则通过第一搜索工具在图数据库中搜索与数据查询条件相匹配的第一目标查询数据。[0076] 例如,数据查询条件中包括:与甄嬛传风格相同且孙俪所出演的古装剧。则,该数据查询条件中包括:甄嬛传、孙俪、古装剧这三个实体,及包括孙俪与古装剧之间的出演关系,甄嬛传与古装剧之间具有同一风格的关系。则此时认为对该数据查询条件,通过采用第一设定数据模型进行知识图谱存储的图数据库进行数据的查询检索较为合适,能够满足用户基于多实体及多实体之间关联关系进行的数据查询,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0077] 步骤203,基于所述数据查询条件,在确定所述数据查询条件符合第二查询特征的情况下,将所述数据查询条件输出至第二搜索工具,使所述第二搜索工具基于所述数据查询条件,从副本数据库中搜索与所述数据查询条件相匹配的第二目标查询数据。[0078] 其中,所述副本数据库中存储有以与所述第一设定数据模型不同的第二设定数据模型的形式进行存储的知识图谱,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据。[0079] 该第二搜索工具及副本数据库的相关功能及实现方式与前述基于知识图谱的数据查询系统的实施方式中的第二搜索工具及副本数据库的相同,此处不再赘述。[0080] 这里,第二查询特征与副本数据库中存储知识图谱所采用的第二设定数据模式相关联,当数据查询条件符合该第二设定数据模式的数据存储特征时,则可以确定数据查询条件符合第二查询特征。[0081] 作为一具体的实施方式,该第二设定数据模型中包括:文档,对应于所述第一设定数据模型中的所述实体,所述文档中还包括场地,所述场地中第一场地对应于当前文档所对应实体的所述属性,所述场地中第二场地对应于与当前文档所对应实体具有边连接关系的另一实体;其中,所述第二搜索工具中,基于每个所述场地对所述文档建立倒排索引。[0082] 该第二设定数据模型中,基于每个场地对文档建立倒排索引,具备结点、结点特征及结点间的关系进行融合记录的特征。该倒排索引用于使第二搜索工具在对数据查询条件进行分析解析后通过该倒排索引实现快速的数据匹配查询。[0083] 相应地,所述第二查询特征包括:[0084] 所述数据查询条件中所包括的实体的数量小于所述第一阈值,或者,所述数据查询条件中所包括的实体的数量小于所述第一阈值且所述数据查询条件中所包括的实体之间所对应的关系的数量小于所述第二阈值。[0085] 其中,该第一阈值及第二阈值可以是基于实际应用进行具体设置。该第一阈值及第二阈值均为正整数,第一阈值可以取值为大于2的数值,第二阈值可以取值为大于1的数值,例如,该第一阈值为3,第二阈值为2。[0086] 其中,在数据查询条件中所包括的实体的数量小于所述第一阈值时,在该数量的实体中,不同实体之间可能会存在对应的关系(对应于所述知识图谱中结点之间的边),前述的“实体之间所对应的关系的数量”即为在实体的数量小于第一阈值的情况下,不同实体之间所存在的关系的总数量。[0087] 在数据查询条件中所包括的实体的数量小于第一阈值时,则表明用户当前所输入的数据查询条件中所包括的实体(对应于知识图谱中的结点)的数量比较少。在数据查询条件中所包括的实体的数量小于第一阈值,且所述数据查询条件中所包括的实体之间所对应的关系的数量小于第二阈值时,则表明用户当前所输入的数据查询条件中所包括的实体(对应于知识图谱中的结点)的数量比较少且该些数量的实体之间所具有的关系(对应于所述知识图谱中结点之间的边)的数量同样比较少,即该些数量的实体之间存在简单的关系。此时,则认为采用第二设定数据模型进行知识图谱存储的图数据库进行数据的查询检索较为合适,确保数据库中数据查询匹配过程能够与用户的数据查询条件相适配,能够满足用户基于较少实体及较少实体之间的简单关系进行的数据查询,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0088] 例如,数据查询条件中包括:孙俪出演的上映年份为2005年的古装剧。该数据查询条件中实体为孙俪、古装剧,该数据查询条件中所包括的实体的数量为2,小于前述的第一阈值的举例数值3,该古装剧的上映年份这一属性需满足是2005年这一特定条件,实现基于属性查询属性满足特定条件的实体的查询操作,其中,该实体之间所对应的关系为出演关系,该关系数量为1,小于前述的第二阈值的举例数值2。则,此时认为对该数据查询条件,通过采用第二设定数据模型进行知识图谱存储的副本数据库进行数据的查询检索较为合适,能够满足用户基于较少实体或较少实体间的简单关联关系进行的数据查询,提升不同查询需求下的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0089] 具体地,以第二搜索工具为ElasticSearch为例,当数据查询条件中所包括的实体数量小于所述第一阈值时,或者,数据查询条件中所包括的实体的数量小于第一阈值且数据查询条件中所包括的实体之间所对应的关系的数量小于第二阈值时,则认为该数据查询条件符合第二设定数据模型中结点、结点特征及结点间的关系进行融合记录的特征,且可以利用第二搜索工具中,基于每个场地对文档建立的倒排索引实现更有效的数据查询,此时,可确定将数据查询条件输出至ElasticSearch,使ElasticSearch基于数据查询条件,利用ElasticSearch的分析器对数据查询条件进行分词和过滤,再建立倒排索引后做数据匹配,实现从副本数据库中搜索与数据查询条件相匹配的第二目标查询数据,在搜索时,分析器也会将原本完整的查询语句拆分成多个词,再返回匹配到最多词的document并返回查询结果。[0090] 本申请实施例中的该数据查询方法,基于获取到的数据查询条件,在确定数据查询条件符合第一查询特征的情况下,通过第一搜索工具在以第一设定数据模型的形式存储知识图谱的图数据库中,搜索与数据查询条件相匹配的目标查询数据,在确定数据查询条件符合第二查询特征的情况下,通过第二搜索工具在以与第一设定数据模型不同的第二设定数据模型的形式存储知识图谱的副本数据库中,搜索与数据查询条件相匹配的目标查询数据,以能够满足不同查询需求下,分别采用各自对应的搜索工具,实现从不同数据库中读取不同数据模型下存储的知识图谱数据,提升知识图谱中数据的搜索效率,确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时,又能兼顾其他查询需求,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0091] 本申请实施例中还提供了数据查询方法的不同实施方式。[0092] 参见图3,图3是本申请实施例提供的一种数据查询方法的流程图二。如图3所示,一种数据查询方法,该方法包括以下步骤:[0093] 步骤301,在第二搜索工具中进行索引声明。[0094] 步骤302,基于声明的所述索引,定义预设类别的分析器。[0095] 其中,不同类别的分析器具有不同的数据查询条件的解析功能。[0096] 该分析器用于对获取的数据查询条件进行分词解析。[0097] 该分析器可以是处理中文文本需要的中文分词器、拼音转写器等。[0098] 在进行检索时,可以选择不同功能的分析器。例如在媒资知识图谱中进行搜索时,有时会根据含有同音或近音错字的片名来查询影片,像是“萧申克的救赎”(实际:“肖申克的救赎”,同音字“萧”“肖”),“李德水”(实际:“驴得水”,近音字“李”“驴”,同音字“德”“得”)。ElasticSearch在对某一field建立索引时,允许对其使用多个不同的分析器并分别对不同的分析结果建立索引。所以我们可对该field使用拼音分析器得到文字的拼音后,再对每个拼音音节建立倒排索引。当搜索条件遇到同音或近音字时,ElasticSearch不仅会利用该field本身的分词索引,而且还会利用该field中文字的拼音去查找满足匹配的document。如“萧申克的救赎”会被两个分析器分别分析得到[“萧”,“申”,“克”,“的”,“救赎”]和[“xiao”,“shen”,“ke”,“de”,“jiu”,“shu”],“肖申克的救赎”会被两个分析器分别分析得到[“肖申克”,“的”,“救赎”]和[“xiao”,“shen”,“ke”,“de”,“jiu”,“shu”],该过程中,在第一个分析器得到的分词匹配程度不够高的情况下,第二个分析器得到的拼音音节实现完全相同,可以结合两个分析器的分析结果来实现数据匹配,会避免由于查询条件中带有同音或近音错字而找不到实体的情况出现,提升数据检索准确度。[0099] 该分析器还用于将副本数据库中存储的知识图谱的数据内容进行分词,并基于每个分词得到的场地对文档建立倒排索引,实现后续过程中通过建立好的倒排索引进行更准确快速的数据匹配。[0100] 步骤303,获取数据查询条件。[0101] 该步骤的实施过程与前述实施方式中的步骤201的实施过程相同,此处不再赘述。[0102] 步骤304,基于所述数据查询条件,在确定所述数据查询条件符合第一查询特征的情况下,通过第一搜索工具在图数据库中搜索与所述数据查询条件相匹配的第一目标查询数据。[0103] 其中,所述图数据库中存储有以第一设定数据模型的形式所存储的知识图谱,所述第一搜索工具用于基于所述图数据库的所述知识图谱获取待查询数据。[0104] 该步骤的实施过程与前述实施方式中的步骤202的实施过程相同,此处不再赘述。[0105] 步骤305,基于所述数据查询条件,在确定所述数据查询条件符合第二查询特征的情况下,将所述数据查询条件输出至第二搜索工具,使所述第二搜索工具基于所述数据查询条件,从副本数据库中搜索与所述数据查询条件相匹配的第二目标查询数据。[0106] 其中,所述副本数据库中存储有以第二设定数据模型的形式进行存储的知识图谱,所述第二搜索工具用于基于所述副本数据库的所述知识图谱获取待查询数据。[0107] 该步骤的实施过程与前述实施方式中的步骤203的实施过程相同,此处不再赘述。[0108] 更进一步地,该方法还包括:[0109] 对所述图数据库中的所述知识图谱进行数据监测;在监测到所述知识图谱发生数据内容改变的情况下,对应修改所述副本数据库中存储的所述知识图谱的数据内容。[0110] 该过程中,当图数据库中的数据发生更新或删除后,可以通过设置的脚本实时抓取到图数据库中改变了的数据,再对副本数据库中的副本数据也对应进行数据调整,实现同样的数据更新或删除,以保证二者存储的数据始终保持一致。具体地,为了实现图数据库与副本数据库之间存储数据的一致性及数据联动性,副本数据库中每个document的识别标记应为其在图数据库中对应的实体的识别标记。[0111] 本申请实施例中的该数据查询方法,基于获取到的数据查询条件,在确定数据查询条件符合第一查询特征的情况下,通过第一搜索工具在以第一设定数据模型的形式存储知识图谱的图数据库中,搜索与数据查询条件相匹配的目标查询数据,在确定数据查询条件符合第二查询特征的情况下,通过第二搜索工具在以与第一设定数据模型不同的第二设定数据模型的形式存储知识图谱的副本数据库中,搜索与数据查询条件相匹配的目标查询数据,以能够满足不同查询需求下,分别采用各自对应的搜索工具,实现从不同数据库中读取不同数据模型下存储的知识图谱数据,提升知识图谱中数据的搜索效率,确保查询结果可以满足直观表现出图谱中实体之间的关系的需求的同时,又能兼顾其他查询需求,提升基于知识图谱的数据查询性能,且提升查询结果的精准度,更好地服务语义搜索。[0112] 图4是本申请实施例提供的一种终端设备的结构图。如该图所示,该实施例的终端设备4包括:至少一个处理器40(图4中仅示出一个)、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意各个方法实施例中的步骤。[0113] 所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。[0114] 所称处理器40可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field‑ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0115] 所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。[0116] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0117] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。[0118] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。[0119] 在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。[0120] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0121] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0122] 所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。[0123] 本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端设备上运行时,使得所述终端设备执行时实现可实现上述各个方法实施例中的步骤。[0124] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

专利地区:广东

专利申请日期:2020-06-01

专利公开日期:2024-06-18

专利公告号:CN113761213B

电话咨询
读内容
搜本页
回顶部