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

一种知识图谱的构建方法、系统及电子设备

文献发布时间:2023-06-19 09:26:02


一种知识图谱的构建方法、系统及电子设备

技术领域

本发明涉及知识图谱技术领域,特别涉及一种知识图谱的构建方法、系统及电子设备。

背景技术

随着大数据技术的发展,人们对于数据的要求不再局限于海量的传统数据,数据工作者及科学家开始着眼于探求数据更深层次的价值,知识图谱应运而生,目前知识图谱的应用范围越来越广泛,例如可以应用在互联网金融、人力资源管理、企业管理等不同的领域。

知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。当下国内大部分厂商的研发重心在于基于本体结构构建知识图谱,即先手工编辑形成本体结构和数据规范,然后再基于本体层配置数据源,这显然已经形成一种规范和习惯做法。然而在实际工作中,由于图谱面向的业务场景、业务需求是千变万化的,不同的业务需求其本体模型也是不同的,因此,基于现有技术方案,需要耗费大量的时间和人员投入到本体模型的手工编辑中,同时,本体模型的构建可复用率低,导致知识图谱的构建成本较高。

综上,基于现有的技术构建知识图谱普遍存在过程复杂、效率低下、构建成本过高等问题。

发明内容

本发明的目的在于克服现有技术中存在的上述缺陷,提供一种知识图谱的构建方法、系统及电子设备,用于解决现有图谱的构建方法中存在的过程复杂,效率低下,资源浪费严重等技术问题。

为达到上述目的,本发明提供一种知识图谱的构建方法,通过一处理设备接收输入的数据源,所述数据源包括多个数据表,所述数据表包含实体表和关系表,所述处理设备采用一内置处理单元,通过自动解析输入的数据源的数据表的表结构来生成本体结构,根据所述本体结构进行知识图谱数据映射,创建可视化知识图谱。

所述的知识图谱的构建方法,包括以下步骤:

步骤S1:读入所述数据源,采用所述处理单元自动解析所述数据源的数据表的表结构,得到表结构信息,并基于表结构信息,生成本体结构;

步骤S2:读取数据源,进行图谱数据映射,将数据表中的实体数据和关系数据映射到对应本体结构中;

步骤S3:根据所述本体结构,将完成数据映射的数据表的实体数据和关系数据以对应节点和边的形式展示出来,完成知识图谱的创建。

所述步骤S1包含以下实现步骤:

步骤S1-1:所述处理设备读入所述数据源,遍历所述数据源,自动解析来获得各个数据表的表结构信息;所述表结构信息包含实体信息和关系信息;

步骤S1-2:所述处理设备根据所述数据表的表结构信息,进行映射封装,转化成本体结构数据进行存储。

所述步骤S1-2中,所述本体结构数据的格式为JSON格式。

所述数据源包含的数据表的格式包括MYSQL、CSV。

当数据表格式为MYSQL格式时通过SQL查询语句来抽取对应的表结构信息。

当数据表格式为CSV格式时,通过读取表头信息来读取表结构信息。

所述步骤S1-2之后还包含以下步骤S1-3:在预先生成的视窗中根据预设的本体结构的配置,对本体结构进行渲染,获得所述本体结构的图形结构。

所述的知识图谱的构建方法,还包含步骤:对获取到的本体结构的图形进行人工修改调整,对本体结构中重复的实体进行融合,生成新的本体结构图形,并将对应新的本体结构数据进行保存。

所述的知识图谱的构建方法,还包括:对生成的本体结构进行保存,以便于基于已保存的本体结构来创建新的本体结构。该方案扩展支持本体结构模型的保存,以便在以后更多业务场景中,调用已经建好的本体结构进行复用,或者进行修改编辑,进一步提高知识图谱的创建效率。

在所述的步骤S3中还包括,在预先生成的视窗中根据预设的设置,加载所述获得的知识图谱数据集并进行渲染,获得所述知识图谱数据集的图形结构。

基于同样的发明构思,本发明提供一种知识图谱的构建系统,包括:数据输入模块、本体构建模块、图谱数据映射模块和图谱可视化模块;所述数据输入模块、本体构建模块、图谱数据映射模块和图谱可视化模块依次相连,所述数据输入模块与图谱数据映射模块相连;

所述数据输入模块:用于接收数据源的输入;

所述本体构建模块:用于根据输入的数据源,获得本体结构;

所述图谱数据映射模块:根据所述的本体结构,进行知识图谱数据映射;

所述图谱可视化模块:根据本体结构,读取映射好的数据,将数据以知识图谱的形式可视化展示出来;

所述本体构建模块采用以下步骤构建本体:

读入数据源,所述数据源包括多个数据表,遍历所述数据源,自动解析获得各个数据表的表结构信息;

根据所述数据表的表结构信息,进行映射封装,转化成本体结构数据并进行存储。

进一步的,所述图谱可视化模块用于在预先生成的视窗中根据预设的设置,加载所述获得的知识图谱数据集并进行渲染,得到所述知识图谱数据集的图形结构。

作为一种优选,所述系统还包括:图谱配置模块,所述图谱配置模块与所述图谱数据映射模块和所述图谱可视化模块分别相连;所述图谱配置模块用于对包含知识图谱的显示的节点和边的样式、状态、属性进行配置。本系统包含图谱配置模型,通过对图谱节点、边等的样式进行配置,可以进一步提升知识图谱创建的质量和效果。

还包括:保存模块,所述保存模块用于将产生的图谱数据集保存到存储器。

基于同样的发明构思,本发明提供一种电子设备,所述电子设备包括处理器以及存储器,

所述存储器用于存储可执行程序;

所述处理器用于执行所述可执行程序以实现上述知识图谱的构建方法。

有益效果:

本申请实施例中的上述一个或多个技术方案,与现有图谱建立技术相比,具有如下明显的技术优势和技术效果:

(1)基于本发明公开的知识图谱构建方式,简化了图谱构建过程,提高了效率,降低了重复劳动和资源浪费,可以更加有效的适用于业务场景;

(2)采用本发明公布的系统,用户只需要对自有的数据清洗形成节点表和边表,系统链接数据源后再进行少量的配置,即可生成图谱。在这个过程中,用户还可以对结构数据进行查看与操作,从属性配置到样式配置的一站式体验,使得知识图谱的应用更加灵活、便捷。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例的用于知识图谱的本体结构的构建方法的流程示意图;

图2为本发明实施例的步骤S1的流程图;

图3为本发明实施例的本体结构的图形结构示意图;

图4为本发明实施例提供的可视化窗口示意图;

图5为本发明实施例提供的知识图谱的构建系统的结构框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

基于目前的图谱构建方法错误率高、效率低的问题,本发明实施例提供了一种知识图谱的构建方法,通过一处理设备接收输入的数据源,所述数据源包括多个数据表,数据表包含实体表和关系表,所述处理设备采用一内置处理单元通过自动解析输入的数据源的数据表结构来生成本体结构,根据所述本体结构进行知识图谱数据映射,创建可视化知识图谱。

本发明采用上述处理单元自动解析输入的数据源的数据表结构来生成本体结构,相比传统的构建方式(一般包括:用户先分析本体结构的对象,手工定义本体结构的节点和节点间的关系,然后再生成本体结构,再基于本体结构构建图谱),只需要进行数据表的读入,即可自动完成本体结构的构建,不仅简化了本体结构的构建过程,而且降低了由于全手工编辑的错误率,提高了本体结构构建效率和成功率,节省了人力资源。

具体的,请参阅图1,上述知识图谱的构建方法,包括以下步骤:

步骤S1:读入所述数据源,采用所述处理单元自动解析所述数据源的数据表的表结构,得到表结构信息,并基于表结构信息,生成本体结构。

步骤S2:读取数据源,进行图谱数据映射,将数据表中的实体数据和关系数据映射到对应本体结构中。

步骤S3:根据所述本体结构,将完成数据映射的数据表的实体数据和关系数据以对应节点和边的形式展示出来,完成知识图谱的创建。

本发明方法,通过自动解析数据源数据表的结构,生成本体结构,并基于本体结构映射数据进一步完成知识图谱的创建,整个过程人工干预配置过程较少,极大实现了知识图谱构建的自动化,显著节省人力投入。

请参阅图2,在更细化的实施方案中,所述步骤S1包含以下实现步骤:

步骤S1-1:所述处理设备读入所述数据源,遍历所述数据源,自动解析来获得各个数据表的表结构信息;所述表结构信息包含实体信息和关系信息。

步骤S1-2:所述处理设备根据所述数据表的表结构信息,进行映射封装,转化成本体结构数据进行存储。

此处的映射封装是指,将获取到所述表结构信息转化成可供创建知识图谱时数据映射时可调用和识别的本体结构数据格式。表结构被解析出来后,并不能直接作为本体结构数据使用,不同的知识图谱的生成系统的本体结构数据的格式要求不同,本发明方法中通过映射封装,将解析出的表结构信息转成可被识别的本体结构数据。

作为一种优选,所述步骤S1-2中,所述本体结构数据的格式为JSON格式。不同的知识图谱生成系统可识别的本体结构的格式不同,比如一些系统中的本体结构格式是OWL格式,本申请优选使用JSON格式,JSON格式的本体结构数据存储方便,便于知识图谱生成时的数据映射解析,且支持多种数据库调用。

数据源中数据表的格式可以有多种,作为优选,本实施例中所述数据源包含的数据表的格式包括MYSQL、CSV,因为MYSQL、CSV数据格式容易解析,可存储数据内容丰富。

上述步骤S1-1中,当数据表格式为MYSQL格式时,通过SQL查询语句来抽取对应的表结构信息。当数据表格式为CSV格式时,通过读取表头信息来获得表结构信息。不同数据格式的数据表的表结构信息的抽取方法不同,根据数据表的具体情况而采用。

上述步骤S1中生成的本体结构,可以只是得到本体结构数据,也可以是得到本体结构的图形结构。因此,作为可选的实施方式,所述步骤S1-2之后还可以包含步骤S1-3:在预先生成的视窗中根据预设的本体结构的配置,对本体结构进行渲染,获得所述本体结构的图形结构。

本发明方法中,本体结构在视窗中可视化展示出来,结合自动化解析的过程,从数据源输入到获得可视化的本体结构,生成效率极高,本体结构经过可视化展示后,逻辑关系清晰明确,一目了然,提高用户使用感受。

作为一种优选,所述的知识图谱的构建方法还可以包含步骤:对自动获取到的本体结构的图形进行人工修改调整,对本体结构中重复的实体节点进行融合,生成新的本体结构图形,并将对应新的本体结构数据进行保存。

通过解析数据表结构直接生成本体结构可能产生的一个问题是,节点重复,比如一个自然人可能具有多个属性,比如是一家公司股东、实际控制人、员工等、这些属性在数据表的结构中解析出来可能是单独的实体节点,由此生成的本体结构中包含多个点,如果不进行合并,那么在对应图谱数据映射后产生的知识图谱中,将有多个实质相同的节点,和同一家公司建立多个不同的关联关系。通过实体的合并,到达简化本体结构,提升本体结构性能的目标。结合数据解析自动生成本体结构,在此基础上只需要少量的人工修改即可建立逻辑清晰简要的优质本体模型,为高质量的知识图谱的创建提供本体模型基础。

在可选实施方案中,在所述的步骤S1中,在生成本体结构之后,对生成的本体结构(本体结构数据或本体结构图形)进行保存,以便于基于对已保存的本体结构来创建新的本体结构。该方案扩展支持本体结构模型的保存,以便在以后更多业务场景中,调用已经建好的本体结构进行复用,或者进行修改编辑,进一步提高知识图谱的创建效率,同时也可以提高本体结构的利用率。

在可选实施方案中,在所述的步骤S3中还可以包括:在预先生成的视窗中根据预设的配置,加载所述获得的知识图谱数据集并进行渲染,获得所述知识图谱数据集的图形结构。本发明方法实现从数据源输入到快速生成知识图谱,整个过程效率极高,速度极快,为各类业务领域的知识图谱的构建提供了非常有力的技术支撑。

上述是对本发明方法的步骤流程进行了阐述,为了更容易理解,下面结合具体的举例,对本发明方法中的某些步骤做进一步说明。

为了提高识别出各个数据源的表结构信息的效率,步骤S1中读入的数据源,是事先经过预处理之后得到的数据源,即是说,数据表是事先经过预处理之后得到的数据表。例如,数据表的表头或表体中包含表结构信息和映射数据。表结构信息包括实体信息和关系信息,实体信息包括实体的类型和个数,关系信息包括关系(或称为关系类型)对象类型、对象名称、关联对象及关系,对象类型包括关系对象和实体对象。映射数据包括实体数据和关系数据,实体数据包括实体类型和实体名,关系数据包括关联对象和关系(或称为关系类型)。

一般地,vertex表必须有id或含有{id}的字段,可以解析表示该表主键。edge表示关系类型数据,edge_前缀加{起始节点label}加{关系类型label}加{结束节点label},构成一类关系类型表命名;关系表不需有id类主键,但必须有startnode和endnode,或者{start?}和{end?}为反射可识别的起始节点标识、结束节点标识,关系表中必须有联合主键,其中start和end字段必选。

例如作为一种举例,生成图3所示本体结构的数据源包括的六个CSV格式的数据表,表结构为edge_person_has_accout.csv,edge_accout_out_transfer.csv,edge_transfer_in_accout.csv,vertex_person.csv,vertex_account.csv,vertex_transfer.csv。

上述举例中,数据表就是按可解析的规则命名,例如有表示数据类型的前缀,有节点标识,根据表头即可获得表结构信息和映射数据。其中,数据表的表名由vertex_或者edge_前缀构成,vertex_表示节点类型数据,edge_表示边类型数据,类型后为具体名称。如vertex_accout.csv,即为节点类型,名称为accout;edge_person_has_accout.csv,即为关系类型,关系名称为has(拥有),关联对象为person和accout。

通过读入上述六个数据表头信息,即可获得表结构信息和映射数据,即获取到三个实体:person、account、transfer,以及三个关系:person_has_accout、account_out_transfer、transfer_in_accout。

表结构信息也可以有宽泛的定义。例如,假设表结构信息的表达式为:{表对象:表结构信息},针对上述几个数据表,可以得到表结构信息:{person:name,uid},{account:number,uid},{transfer:amount,location,locationid,time},{has:uid,startNode,endNode,source},{in:uid,startNode,endNode,balance,create_time,create_time,source},{out:uid,startNode,endNode,balance,source}。

获得上述表结构信息后,即可将上述表结构信息按照预设的格式映射封装,转化为JSON类型的本体结构。

作为一种举例,以person作为本体结构的节点结构为例,其封装后的数据如下:

"person":{"source_table":"vertex_person.csv","properties":{"name":{"type":"string","primary":false,"index":false,"display_index":1,"disabled":false,"format":"","source_column":"name"},"uid":{"type":"string","primary":true,"index":false,"display_index":2,"disabled":false,"format":"","source_column":"uid"}}

以has作为本体结构的边结构为例,其封装后的数据如下:

"has":{"properties":{"uid":{"type":"string","primary":true,"index":false,"display_index":1,"disabled":false,"format":"","is_start":false,"is_end":false},"startNode":{"type":"string","primary":true,"index":false,"display_index":2,"disabled":false,"format":"","is_start":false,"is_end":false},"endNode":{"type":"string","primary":true,"index":false,"display_index":3,"disabled":false,"format":"","is_start":false,"is_end":false},"source":[{"start":"person","end":"account","source_table":"edge_person_has_account.csv","source_column":{"uid":"uid","startNode":"startNode","endNode":"endNode","__start_node__":"startNode","__end_node__":"endNode"}}],"type":"edge"}。

需要说明的是,本发明实施例中所述的数据表的命名只是一种举例,在实际实现中,可以还有其他的实现方式。例如,针对于数据表格式为MYSQL格式的数据表,则不是通过读取表头信息获得表结构信息,而是通过SQL查询语句来抽取对应的表结构信息。

在上述步骤S1-3中,可定义的样式包括采用不同形状表示实体数据和关系数据,例如,圆形表示实体、连线表示关系。请参阅图3所示的本发明实施例的本体结构的图形结构示意图,圆形表示三个实体:人、账号、交易,用连线及箭头表示三个关系:拥有、转出、转入,其中,“拥有”代表person_has_accout,“转出”代表account_out_transfer,“转入”代表transfer_in_accout。用户可在可视化区域预览本体结构,并进行形状和样式的配置操作,实现对本体结构渲染,使得本体结构的显示更丰富。如图4所示,可在区域三中进行相应的配置。

请参阅图5,图5示出了本发明实施例的本体结构的构建系统的结构框图,该系统包括数据输入模块601、本体构建模块602、图谱数据映射模块603、图谱可视化模块604,数据输入模块601、本体构建模块602、图谱数据映射模块603和图谱可视化模块604依次相连,数据输入模块601与图谱数据映射模块603相连。

数据输入模块601:接收数据源的输入;

本体构建模块602:用于根据输入的数据源,获得本体结构;

图谱数据映射模块603:根据本体结构,进行知识图谱数据映射;

图谱可视化模块604:根据本体结构,读取映射好的数据,将数据以知识图谱的形式可视化展示出来。

其中,本体构建模块602采用以下步骤构建本体:

读入数据源,数据源包括多个数据表,遍历所述数据源,自动解析获得各个数据表的表结构信息;

根据数据表的表结构信息,进行映射封装,转化成本体结构数据并进行存储。

图谱可视化模块604在具体实现时,在预先生成的视窗中根据预设的设置,加载所述获得的知识图谱数据集并进行渲染,得到所述知识图谱数据集的图形结构。

在一个实施例中,上述构建系统还可以包括图谱配置模块,与所述图谱数据映射模块和所述图谱可视化模块分别相连。所述图谱配置模块用于对包含知识图谱的显示的节点和边的样式、状态、属性进行配置。

对每个字段的属性配置,如字段名字、主键字段名、字段数据类型等。

在一个实施例中,配置信息如下表所示:

在一个实施例中,上述构建系统还可以包括保存模块,所述保存模块用于将产生的图谱数据集保存到存储器。

上述系统中的各个模块的具体执行步骤,或者可扩展的执行步骤,请参见前述方法实施例的描述,此处不再赘述。

请参阅图4,图4示出了本发明实施例中的图谱可视化模块可视化窗口的示意图,如图所示,系统提供的可视化区域分为3个区域,一个区域用一个实线框表示,其中,区域一显示数据源,包括多个数据表,区域二显示自动生成本体结构,用户可在区域三对本体结构的属性信息包括字段名、数据格式、长度进行配置和修改,也可以对本体结构和/或图谱的样式信息进行修改。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成模块及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 一种知识图谱构建方法、系统、电子设备及存储介质
  • 一种构建领域知识图谱方法、系统、电子设备及介质
技术分类

06120112165659