一种知识图谱构建方法、装置及存储设备与流程

文档序号:19418853发布日期:2019-12-14 01:13阅读:193来源:国知局
一种知识图谱构建方法、装置及存储设备与流程

本发明涉及信息处理技术领域,尤其涉及一种大规模知识图谱构建方法、装置及计算机存储设备。



背景技术:

知识图谱,也称作知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。知识图谱可以应用于许多应用场景,比如在信息推荐系统中基于知识图谱进行信息推荐,或是在文本分类过程中基于知识图谱进行分类等。因此,为了保证知识图谱的广泛应用,目前已有很多研究方法来实现知识图谱的构建。

根据一公开号为cn108563710a的专利文本所记载的知识图谱构建方法,在构建知识图谱时,将已发布文本的标签及基础图谱中的实体信息作为待构建知识图谱中图谱节点的信息,然后将两个图谱阶段的信息在同一个已发布文本中的出现次数作为节点关系信息,以完成知识图谱的构建。根据又一公开号为cn108694177a的专利文本所记载的知识图谱构建方法,主要通过构建各个实体之间的关系数据来构建知识图谱。

上述现有的知识图谱构建方法所构建的概念知识图谱存在规模小,只支持单一语言(中文或英文),知识抽取方法单一,isa概念关系不准确及不能动态更新等问题。



技术实现要素:

本发明实施例为了有效克服现有的知识图谱构建方法中所存在的上述缺陷,创造性地提供一种大规模知识图谱构建方法、装置及计算机存储设备。

根据本发明实施例第一方面,提供一种知识图谱构建方法,该方法包括:从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;通过存储引擎将所得到的翻译结果写入到存储服务中。

根据本发明一实施方式,所述与特定实体词关联的数据源包括如下类型至少之一:结构化数据、半结构化数据及非结构化数据;相应的,从与特定实体词关联的数据源进行知识抽取,包括:采用与数据源类型相对应的知识抽取方式从与特定实体词关联的数据源进行知识抽取,不同的数据源对应不同的知识抽取方法。

根据本发明一实施方式,从与特定实体词关联的数据源进行知识抽取,包括:若所述数据源类型为结构化数据,则使用d2r方法从关系数据库抽取知识或使用图映射的方法从链接数据抽取知识;和/或,若所述数据源类型为半结构化数据,则使用包装器从半结构化数据中抽取知识;和/或,若所述数据源类型为非结构化数据,则使用信息抽取的方法从自由文本中抽取知识。

根据本发明一实施方式,所述将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果,包括:判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中;若所得到的特定实体词的三元组未包含在概念图谱中的已有三元组中,则将所得到的特定实体词的三元组添加到概念图谱中,得到融合结果。

根据本发明一实施方式,所述判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中,包括:对所得到的特定实体词的三元组中的实体词进行词扩展,得到词扩展后的三元组;判断所述词扩展后的三元组是否包含在概念图谱中的已有三元组中。

根据本发明一实施方式,所述知识生成引擎包括知识库查询引擎、神经网络翻译引擎及在线翻译引擎;相应的,利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果,包括:利用多个不同的知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到多个处理结果;对所得到的多个处理结果进行融合比对,得到融合比对结果;将所述融合比对结果中排序最高的处理结果确定为翻译结果。

根据本发明一实施方式,在通过存储引擎将所得到的翻译结果写入到存储服务中之后,所述方法还包括:采用与所述存储引擎匹配的查询引擎从存储服务中读取已写入的翻译结果。

根据本发明实施例第二方面,还提供一种知识图谱构建装置,所述装置包括:知识抽取模块,用于从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;融合模块,用于将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;推理模块,用于对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;知识生成模块,用于利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;存储模块,用于通过存储引擎将所得到的翻译结果写入到存储服务中。

根据本发明一实施方式,所述与特定实体词关联的数据源包括如下类型至少之一:结构化数据、半结构化数据及非结构化数据;相应的,所述知识抽取模块具体用于,采用与数据源类型相对应的知识抽取方式从与特定实体词关联的数据源进行知识抽取,不同的数据源类型对应不同的知识抽取方法。

根据本发明一实施方式,所述知识抽取模块具体用于,若所述数据源类型为结构化数据,则使用d2r方法从关系数据库抽取知识或使用图映射的方法从链接数据抽取知识;和/或,若所述数据源类型为半结构化数据,则使用包装器从半结构化数据中抽取知识;和/或,若所述数据源类型为非结构化数据,则使用信息抽取发方法从自由文本中抽取知识。

根据本发明一实施方式,所述融合模块包括:判断单元,用于判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中;添加单元,用于若所得到的特定实体词的三元组未包含在概念图谱中的已有三元组中,则将所得到的特定实体词的三元组添加到概念图谱中,得到融合结果。

根据本发明一实施方式,所述判断单元具体用于,对所得到的特定实体词的三元组中的实体词进行词扩展,得到此扩展后的三元组;判断所述词扩展后的三元组是否包含在概念图谱中的已有三元组中。

根据本发明一实施方式,所述知识生成引擎包括知识查询引擎、神经网络翻译引擎及在线翻译引擎;相应的,所述知识生成模块具体用于,利用多个不同的知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到多个处理结果;对所得到的多个处理结果进行融合比对,得到融合比对结果;将所述融合比对结果中排序最高的处理结果确定为翻译结果。

根据本发明一实施方式,所述装置还包括查询模块,用于采用与所述存储引擎匹配的查询引擎从存储服务中读取已写入的翻译结果。

根据本发明实施例第三方面,又提供一种计算机存储设备,所述存储设备包括一组计算机可执行指令,当所述指令被执行时用于执行上述任一项所述的知识图谱构建方法。

本发明实施例所公开的知识图谱构建方法、装置及计算机存储设备,首先从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;之后将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;接着对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;进一步利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;最后通过存储引擎将所得到的翻译结果写入到存储服务中。如此,本发明在知识图谱的构建过程中严格按照实体进行组织,有助于实体的准确理解;而且,通过对知识抽取得到的三元组进行融合、推理及翻译处理,能够构建完成大规模高质量的概念知识图谱,从而提高自然语言理解的准确率和召回率。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

在附图中,相同或对应的标号表示相同或对应的部分。

图1示出了本发明实施例实现知识图谱构建的系统架构图;

图2示出了本发明实施例知识图谱构建方法的实现流程示意图;

图3示出了本发明实施例知识生成模块的架构图;

图4示出了本发明一应用实例的概念知识图谱效果图;

图5示出了本发明实施例知识图谱构建装置的组成结构示意图。

具体实施方式

为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

图1示出了本发明实施例实现知识图谱构建的系统架构图。参考图1,本发明实施例实现知识图谱构建的系统架构至少包括:知识抽取、知识融合、知识推理、知识生成、存储引擎和查询引擎等模块。其中,知识抽取环节可以从结果化数据、半结构化数据及非结构化数据等不同类型的数据源来抽取知识;之后,多所抽取的知识进行融合、推理、知识生成(即翻译处理)等处理,从而构建完成大规模高质量的概念知识图谱;进一步地,将所构建的概念知识图谱通过存储引擎写入到存储服务中,以便后续通过查询引擎进行查询处理。

图2为本发明实施例知识图谱构建方法的实现流程示意图;请参考图2。本发明实施例知识图谱构建方法包括:操作201,从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;操作202,将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;操作203,对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;操作204,利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;操作205,通过存储引擎将所得到的翻译结果写入到存储服务中。

其中,对于知识图谱中的三元组而言,通常包括(实体entity,实体关系relation,实体entity)。如果把实体看作是结点,把实体关系(包括属性,类别等等)看作是一条边,那么包含了大量三元组的知识库就成为了一个庞大的知识图。举例来说,包括刘德华的三元组可以为(刘德华,isa,演员)、(刘德华,isa,歌手)、(刘德华,isa,填词人)和(刘德华,isa,制片人)等。

在操作201,与特定实体词关联的数据源包括如下类型至少之一:结构化数据、半结构化数据及非结构化数据。相应的,操作201包括:采用与数据源类型相对应的知识抽取方式从与特定实体词关联的数据源进行知识抽取,不同的数据源对应不同的知识抽取方法。

在一示例中,若所述数据源类型为结构化数据,则使用d2r方法从关系数据库抽取知识或使用图映射的方法从链接数据抽取知识。

在另一示例中,若所述数据源类型为半结构化数据,则使用包装器从半结构化数据中抽取知识。其中,包装器也可称作抽取器。具体地,以半结构化数据为网页为例进行网页解析,从网页中抽取知识,构件三元组。如以刘德华百度百科网页为例,从首页的职业如演员、歌手、填词人及制片人到词条标签如音乐人物、演员、歌手、娱乐人物、制作人及人物,可以抽取出多个包括刘德华的三元组,如(刘德华,isa,演员)、(刘德华,isa,歌手)、(刘德华,isa,填词人)、(刘德华,isa,制片人)、(刘德华,isa,音乐人物)、(刘德华,isa,娱乐人物)等。

在又一示例中,若所述数据源类型为非结构化数据,则使用信息抽取的方法从自由文本中抽取知识。具体地,信息抽取方法可以包括:1)正则表达式;2)模板;3)分词/技法依存关系(主语&宾语,即s&o);以及4)通过序列标注的方法,即多标签分类模型bert+bilstm+crf。

在操作202,首先判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中;若所得到的特定实体词的三元组未包含在概念图谱中的已有三元组中,则将所得到的特定实体词的三元组添加到概念图谱中,得到融合结果。反之,若所得到的特定实体词的三元组包含在概念图谱中的已有三元组中,则可忽略。例如三元组(刘德华,isa,演员),首先判断这个isa三元组在概念图谱是否存在,若存在则忽略,若不存在则新增。

根据本发明一实施方式,在判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中之前,可以首先对所得到的特定实体词的三元组中的实体词进行词扩展,得到词扩展后的三元组;进一步地判断所述词扩展后的三元组是否包含在概念图谱中的已有三元组中。例如三元组(刘德华,isa,演员),首先可以将刘德华进行词扩展,扩展为华仔,从而得到扩展后的三元组如(华仔,isa,演员);进一步判断这个扩展后的isa三元组在概念图谱是否存在,若存在则忽略,若不存在则新增。

在操作203,可以将融合结果,使用推理引擎进行上下位推理,补充更多的isa关系。例如,可以从三元组(刘德华,isa,演员)、(演员,isa,娱乐人物)、(娱乐人物,isa,人物)推理出三元组(刘德华,isa,娱乐人物)和(刘德华,isa,人物)。

图3为本发明实施例知识生成模块的架构图。参考图3,知识生成引擎包括知识库查询引擎、神经网络翻译引擎及在线翻译引擎;相应的,在操作204,首先利用多个不同的知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到多个处理结果;接着对所得到的多个处理结果进行融合比对,得到融合比对结果;最后将所述融合比对结果中排序最高的处理结果确定为翻译结果。

其中,不同的知识生成引擎对应不同的数据库模型,如知识库查询引擎对应dbpedia和wikipedia;神经网络翻译引擎对应神经网络机器翻译模型;在线翻译引擎对应百度翻译、谷歌翻译及有道翻译等。具体地,使用多策略的翻译方式,将经过上下位推理之后的三元组,分别使用知识库查询引擎、神经网络机器翻译引擎、在线翻译引擎将中文实体翻译成英文实体,将英文实体翻译成中文实体,经过召回结果融合比对,最后返回融合比对结果中排序最高(即top1)的翻译结果。

在操作205,存储引擎的类型包括gstore、neo4j和dgraph;且不同的存储引擎对应不同的数据格式。具体地,在操作205可以根据存储引擎的类型选择对应的存储服务,将经知识生成模块得到的翻译结果(即知识生成结果)按照与所选择的查询引擎的类型相对应的数据格式写入到存储服务中。

本领域技术人员应该理解的是,在查询引擎类型的选择中,通常根据存储量大小来确定引擎类型,存储量从小到大依次为gstore、neo4j和dgraph。当然在默认条件下,可以以设备在启动时的默认参数对应的引擎类型为准。

根据本发明一实施方式,在操作205之后,该方法还可以包括:采用与所述存储引擎匹配的查询引擎从存储服务中读取已写入的翻译结果。

本发明实施例知识图谱构建方法,首先从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;之后将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;接着对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;进一步利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;最后通过存储引擎将所得到的翻译结果写入到存储服务中。以如图4所示的刘德华的概念知识图谱效果图为例,最终构建完的概念知识图谱包含50多万的概念、5000万的实体和2.5亿isa关系。如此,本发明在知识图谱的构建过程中严格按照实体进行组织,有助于实体的准确理解;而且,通过对知识抽取得到的三元组进行融合、推理及翻译处理,能够构建完成大规模高质量的概念知识图谱,从而提高自然语言理解的准确率和召回率。例如关于华为的p30和苹果的iphone10的发布会,传统的自然语言理解只能抽取出华为、p30、苹果、iphone10。然而,众所周知的是华为指一家公司、p30和iphone10是一种电子产品,由于苹果可能是一种水果或是苹果公司,通过概念知识图谱的帮助,可以推理出这里的苹果指的是苹果公司,因此这段文本的主题是华为和苹果公司的产品发布会。

同样,基于如上文所述知识图谱构建方法,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器至少执行如下所述的操作步骤:操作201,从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;操作202,将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;操作203,对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;操作204,利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;操作205,通过存储引擎将所得到的翻译结果写入到存储服务中。

进一步地,基于上文所述知识图谱构建方法,本发明实施例还提供一种知识图谱构建装置,如图5所示,所述装置50包括:知识抽取模块501,用于从与特定实体词关联的数据源进行知识抽取,得到所述特定实体词的三元组;融合模块502,用于将所得到的特定实体词的三元组与概念图谱中的已有三元组进行融合,得到融合结果;推理模块503,用于对所得到的融合结果进行上下位推理,得到扩充所述特定实体词的三元组的推理结果;知识生成模块504,用于利用知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到翻译结果;存储模块505,用于通过存储引擎将所得到的翻译结果写入到存储服务中。

根据本发明一实施方式,所述与特定实体词关联的数据源包括如下类型至少之一:结构化数据、半结构化数据及非结构化数据;相应的,所述知识抽取模块501具体用于,采用与数据源类型相对应的知识抽取方式从与特定实体词关联的数据源进行知识抽取,不同的数据源类型对应不同的知识抽取方法。

根据本发明一实施方式,所述知识抽取模块501具体用于,若所述数据源类型为结构化数据,则使用d2r方法从关系数据库抽取知识或使用图映射的方法从链接数据抽取知识;和/或,若所述数据源类型为半结构化数据,则使用包装器从半结构化数据中抽取知识;和/或,若所述数据源类型为非结构化数据,则使用信息抽取发方法从自由文本中抽取知识。

根据本发明一实施方式,所述融合模块502包括:判断单元,用于判断所得到的特定实体词的三元组是否包含在概念图谱中的已有三元组中;添加单元,用于若所得到的特定实体词的三元组未包含在概念图谱中的已有三元组中,则将所得到的特定实体词的三元组添加到概念图谱中,得到融合结果。

根据本发明一实施方式,所述判断单元具体用于,对所得到的特定实体词的三元组中的实体词进行词扩展,得到此扩展后的三元组;判断所述词扩展后的三元组是否包含在概念图谱中的已有三元组中。

根据本发明一实施方式,所述知识生成引擎包括知识查询引擎、神经网络翻译引擎及在线翻译引擎;相应的,所述知识生成模块504具体用于,利用多个不同的知识生成引擎对所述推理结果中扩充后的三元组进行翻译处理,得到多个处理结果;对所得到的多个处理结果进行融合比对,得到融合比对结果;将所述融合比对结果中排序最高的处理结果确定为翻译结果。

根据本发明一实施方式,如图5所示,所述装置50还包括查询模块506,用于采用与所述存储引擎匹配的查询引擎从存储服务中读取已写入的翻译结果。

这里需要指出的是:以上对针对知识图谱构建装置实施例的描述,与前述图2所示的方法实施例的描述是类似的,具有同前述图2所示的方法实施例相似的有益效果,因此不做赘述。对于本发明对知识图谱构建装置实施例中未披露的技术细节,请参照本发明前述图2所示的方法实施例的描述而理解,为节约篇幅,因此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1