知识图谱的构建方法、装置及存储介质与流程

文档序号:33706998发布日期:2023-03-31 22:02阅读:67来源:国知局
知识图谱的构建方法、装置及存储介质与流程

1.本发明属于知识图谱技术领域,具体涉及一种知识图谱的构建方法、装置及存储介质。


背景技术:

2.知识图谱(knowledge graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。
3.具体来说,知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。它把复杂的知识领域通过数据挖掘、信息处理、知识计量和图形绘制而显示出来,揭示知识领域的动态发展规律,为学科研究提供切实的、有价值的参考。
4.在知识图谱构建过程中,用于构建知识图谱的原始数据来源于不同的数据源,由于数据来源不同,同一对象可能会有不同的描述,例如同一家公司名称可能有全名和缩写名等形式,这会对后续知识图谱的构建造成干扰,导致知识图谱的可靠性降低,通过所构建的知识图谱进行数据查询时,不能够准确查找出相应的数据。


技术实现要素:

5.本发明的目的是提供一种知识图谱的构建方法、装置及存储介质,用以解决现有技术中存在的上述问题。
6.为了实现上述目的,本发明采用以下技术方案:
7.第一方面,本发明提供了一种知识图谱的构建方法,所述方法包括:
8.从多元异构的数据源中抽取出多个三元组;
9.对所述多个三元组中的属性和实体进行对齐处理,并将所述多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组;
10.基于处理后的多个三元组构建知识图谱。
11.在一个可能的设计中,从多元异构的数据源中抽取出三元组,包括:
12.通过爬虫从多元异构的数据源中抽取出半结构化数据;
13.将所述半结构化数据转换为json数据;
14.将所述json数据解析为结构化数据并存入关系表;
15.将关系表中的数据映射为三元组。
16.在一个可能的设计中,将关系表中的数据映射为三元组,包括:
17.根据知识图谱模式层的约束关系,通过d2rq工具将关系表中的数据映射为三元组。
18.在一个可能的设计中,所述对所述多个三元组中的属性和实体进行对齐处理,包
括:
19.判断所述多个三元组中是否存在表征同一对象的属性,如果存在则将表征同一对象的属性对齐处理;
20.判断所述多个三元组中是否存在表征同一对象的实体,如果存在则将表征同一对象的实体对齐处理。
21.在一个可能的设计中,所述方法还包括:
22.通过图数据库存储所述知识图谱。
23.在一个可能的设计中,所述图数据库为neo4j数据库。
24.第二方面,本发明提供了一种知识图谱的构建装置,所述知识图谱的构建装置包括:
25.抽取单元,用于从多元异构的数据源中抽取出多个三元组;
26.处理单元,用于对所述多个三元组中的属性和实体进行对齐处理,并将所述多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组;
27.构建单元,用于基于处理后的多个三元组构建知识图谱。
28.在一个可能的设计中,处理单元在用于从多元异构的数据源中抽取出三元组时,具体用于:
29.通过爬虫从多元异构的数据源中抽取出半结构化数据;
30.将所述半结构化数据转换为json数据;
31.将所述json数据解析为结构化数据并存入关系表;
32.将关系表中的数据映射为三元组。
33.在一个可能的设计中,处理单元在用于将关系表中的数据映射为三元组时,具体用于:
34.根据知识图谱模式层的约束关系,通过d2rq工具将关系表中的数据映射为三元组。
35.在一个可能的设计中,处理单元在用于对所述多个三元组中的属性和实体进行对齐处理时,具体用于:
36.判断所述多个三元组中是否存在表征同一对象的属性,如果存在则将表征同一对象的属性对齐处理;
37.判断所述多个三元组中是否存在表征同一对象的实体,如果存在则将表征同一对象的实体对齐处理。
38.在一个可能的设计中,所述知识图谱的构建装置还包括:
39.存储单元,用于通过图数据库存储所述知识图谱。
40.在一个可能的设计中,所述图数据库为neo4j数据库。
41.第三方面,本发明提供了一种知识图谱的构建装置,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如上述第一方面所述的知识图谱的构建方法。
42.第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行第一方面所述的知识图谱的构建方法。
43.第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机
上运行时,使所述计算机执行如第一方面所述的知识图谱的构建方法。
44.有益效果:
45.本发明提供的知识图谱的构建方法,通过基于预定义的知识图谱模式层,从多元异构的数据源中抽取出多个三元组;对多个三元组中的属性和实体进行对齐处理,并将多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组;然后基于处理后的多个三元组构建知识图谱。如此,在构建知识图谱时能够对三元组中的属性和实体进行对齐处理,并将多个三元组中表征同一对象的实体所对应的属性进行聚合,避免出现由于同一对象的不同描述而导致所构建的知识图谱的可靠性降的问题,使得通过所构建的知识图谱进行查询时能够准确查找出相应的数据。
附图说明
46.图1为本技术实施例提供的知识图谱的构建方法的流程图;
47.图2为本技术实施例提供的知识图谱的构建装置的结构示意图;
48.图3为本技术实施例提供的另一知识图谱的构建装置的结构示意图。
具体实施方式
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
50.应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
51.为了确保所构建的知识图谱的可靠性,本技术实施例提供了一种知识图谱的构建方法、装置及存储介质,该知识图谱的构建方法、装置及存储介质可避免出现由于同一对象的不同描述而导致所构建的知识图谱的可靠性降的问题。
52.申请实施例提供的知识图谱的构建方法可应用于用户终端或服务器,所述用户终端可以是,但不限于个人电脑、智能手机、平板电脑、膝上型便携计算机、个人数字助理(personal digital assistant,pda)等。
53.可以理解,所述执行主体并不构成对本技术实施例的限定。
54.下面将对本技术实施例提供的知识图谱的构建方法进行详细说明。
55.如图1所示,本实施例第一方面提供了一种知识图谱的构建方法,用于知识图谱的构建,特别是与政务服务相关的知识图谱,该知识图谱的构建方法可以但不限于包括如下步骤s101-s103。
56.s101.从多元异构的数据源中抽取出多个三元组。
57.本技术实施例中,在构建知识图谱时可先定义知识图谱的模式层,模式层在数据
层之上,是知识图谱的核心,在模式层存储的是经过提炼的知识,通常采用本体库来管理知识图谱的模式层,借助本体库对公理、规则和约束条件的支持能力来规范实体、关系以及实体的类型和属性等对象之间的联系。定义知识图谱的模式层的过程可以是先定义多个顶层概念和其他若干子概念,然后分别定义概念(即实体)之间的关系以及概念具有的属性。
58.从数据源抽取三元组时,可基于预定义的知识图谱模式层,从多元异构的数据源中抽取出多个三元组。所述多元异构的数据源可以但不限于是与政务服务相关的政府服务网站、电子档案系统、事项配置系统、大数据分析系统以及数据共享系统等。
59.在一个或多个实施例中,从多元异构的数据源中抽取出三元组可以包括如下步骤s1011-s1013。
60.s1011.通过爬虫从多元异构的数据源中抽取出半结构化数据。
61.其中,半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层,数据的结构和内容混在一起,没有明显的区分,因此,它也被称为自描述的结构。简单的说半结构化数据就是介于完全结构化数据和完全无结构的数据之间的数据。例如:html(hyper text markup language,超文本标记语言)文档、json(javascript object notation,javascript对象简谱)数据、xml(extensible markup language,可扩展标记语言)数据和一些nosql(not only sql)数据库中的数据等就属于半结构化数据。
62.s1012.将半结构化数据转换为json数据。
63.可以理解的,如果半结构化数据为json数据,则无需进行转换。
64.s1013.将json数据解析为结构化数据并存入关系表。
65.本技术实施例中,将json数据解析为结构化数据的可以采用现有技术实现,于此不再详细说明。
66.s1014.将关系表中的数据映射为三元组。
67.具体的,可根据知识图谱模式层的约束关系,通过d2rq工具将关系表中的数据映射为三元组。
68.本技术实施例中,在将关系表中的数据映射为三元组时,可以将关系表的表头映射为知识图谱模式层中的类名,关系表中的字段映射为对应实体的属性名。
69.如下表一为一关系表的示意,表二为将关系表中的数据映射为三元组后得到的三元组表的示意。
70.表一
[0071][0072]
表二
[0073][0074][0075]
s102.对多个三元组中的属性和实体进行对齐处理,并将多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组。
[0076]
本技术实施例中,对多个三元组中的属性和实体进行对齐处理,可以采用如下的方式:
[0077]
判断多个三元组中是否存在表征同一对象的属性,如果多个三元组中是存在表征同一对象的属性,则将表征同一对象的属性对齐处理。同时判断多个三元组中是否存在表征同一对象的实体,如果多个三元组中存在表征同一对象的实体,则将表征同一对象的实体对齐处理。
[0078]
举例多个三元组中的实体/属性包括有“单位”、“机构”、“女士”、“女”“办理时间”、“受理时间”、“办公电话”以及“咨询电话”等。其中,“单位”和“机构”为表征同一对象的实体/属性,“女士”和“女”为表征同一对象的实体/属性,“办理时间”和“受理时间”为表征同一对象的实体/属性,“办公电话”和“咨询电话”为表征同一对象的实体/属性。因此,可将“单位”和“机构”这两个实体/属性对齐处理,将“女士”和“女”这两个实体/属性对齐处理,将“办理时间”和“受理时间”这两个实体/属性对齐处理,将“办公电话”和“咨询电话”这两个实体/属性对齐处理。其中,对齐处理可以是将实体/属性名称调整为统一的名称,或在实体/属性之间建立对应关系。
[0079]
将多个三元组中表征同一对象的实体所对应的属性进行聚合,可以是指将中表征同一对象的实体所对应的属性组合起来。举例多个三元组中包括表征同一对象的实体a与实体b,其中实体a所对应的属性为属性a,实体b所对应的属性为属性b,则两可将属性a和属性b进行聚合,此时实体a所对应的属性包括属性a和属性b,实体b所对应的属性也包括属性a和属性b。
[0080]
s103.基于处理后的多个三元组构建知识图谱。
[0081]
基于三元组构建知识图谱的过程为现有技术,本技术实施例中不再具体说明。
[0082]
在一个或多个实施例中,在构建知识图谱后,还可通过图数据库存储所构建的知识图谱,所述图数据库可以但不限于是neo4j数据库、janusgraph数据库、dgraph数据库等。
本技术实施例中,图数据库采用neo4j数据库。
[0083]
由此通过前述步骤s101-s103所述的知识图谱的构建方法,通过基于预定义的知识图谱模式层,从多元异构的数据源中抽取出多个三元组;对多个三元组中的属性和实体进行对齐处理,并将多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组;然后基于处理后的多个三元组构建知识图谱。如此,在构建知识图谱时能够对三元组中的属性和实体进行对齐处理,并将多个三元组中表征同一对象的实体所对应的属性进行聚合,避免出现由于同一对象的不同描述而导致所构建的知识图谱的可靠性降的问题,使得通过所构建的知识图谱进行查询时能够准确查找出相应的数据,便于实际应用和推广。
[0084]
请参阅图2,本技术实施例第二方面提供了一种知识图谱的构建装置,用于知识图谱的构建,特别是与政务服务相关的知识图谱,该知识图谱的构建装置包括:
[0085]
抽取单元,用于从多元异构的数据源中抽取出多个三元组;
[0086]
处理单元,用于对所述多个三元组中的属性和实体进行对齐处理,并将所述多个三元组中表征同一对象的实体所对应的属性进行聚合,得到处理后的多个三元组;
[0087]
构建单元,用于基于处理后的多个三元组构建知识图谱。
[0088]
在一个可能的设计中,处理单元在用于从多元异构的数据源中抽取出三元组时,具体用于:
[0089]
通过爬虫从多元异构的数据源中抽取出半结构化数据;
[0090]
将所述半结构化数据转换为json数据;
[0091]
将所述json数据解析为结构化数据并存入关系表;
[0092]
将关系表中的数据映射为三元组。
[0093]
在一个可能的设计中,处理单元在用于将关系表中的数据映射为三元组时,具体用于:
[0094]
根据知识图谱模式层的约束关系,通过d2rq工具将关系表中的数据映射为三元组。
[0095]
在一个可能的设计中,处理单元在用于对所述多个三元组中的属性和实体进行对齐处理时,具体用于:
[0096]
判断所述多个三元组中是否存在表征同一对象的属性,如果存在则将表征同一对象的属性对齐处理;
[0097]
判断所述多个三元组中是否存在表征同一对象的实体,如果存在则将表征同一对象的实体对齐处理。
[0098]
在一个可能的设计中,所述知识图谱的构建装置还包括:
[0099]
存储单元,用于通过图数据库存储所述知识图谱。
[0100]
在一个可能的设计中,所述图数据库为neo4j数据库。
[0101]
本实施例第二方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
[0102]
如图3所示,本技术实施例第三方面提供了另一种知识图谱的构建装置装置,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如实施例第一方面所述的
知识图谱的构建方法。
[0103]
具体举例的,所述存储器可以但不限于包括随机存取存储器(ram)、只读存储器(rom)、闪存(flash memory)、先进先出存储器(fifo)和/或先进后出存储器(filo)等等;所述处理器可以不限于采用型号为stm32f105系列的微处理器、arm(advanced risc machines)、x86等架构处理器或集成npu(neural-network processing units)的处理器;所述收发器可以但不限于为wifi(无线保真)无线收发器、蓝牙无线收发器、通用分组无线服务技术(general packet radio service,gprs)无线收发器、紫蜂协议(基于ieee802.15.4标准的低功耗局域网协议,zigbee)无线收发器、3g收发器、4g收发器和/或5g收发器等。
[0104]
本实施例第四方面提供了一种存储包含有实施例第一方面所述的知识图谱的构建方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的知识图谱的构建方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(memory stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0105]
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如实施例第一方面所述的知识图谱的构建方法,其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0106]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台仓库代码的合并装置执行各个实施例或者实施例的某些部分所述的方法。
[0107]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1