前两次介绍了知识图谱的基本概念和知识图谱的构建方式,这次介绍一下知识图谱系统的构建过程。

1 知识图谱的总体构建思路

如图所示,从原始的数据到形成知识图谱,经历了知识抽取、知识融合(实体对齐)、数据模型构建、质量评估等步骤。

原始的数据,按照数据的结构化程度来分,可以分为结构化数据、半结构化数据和非结构化数据,根据数据的不同的结构化形式,采用不同的方法,将数据转换为三元组的形式,然后对三元组的数据进行知识融合,主要是实体对齐,以及和数据模型进行结合,经过融合之后,会形成标准的数据表示,为了发现新知识,可以依据一定的推理规则,产生隐含的知识,所有形成的知识经过一定的质量评估,最终进入知识图谱,依据知识图谱这个数据平台,可以实现语义搜索,智能问答,推荐系统等一些应用。

以下对知识图谱构建中的步骤进行详细的介绍。

2 知识抽取

我们将原始数据分为结构化数据、半结构化数据和非结构化数据,根据不同的数据类型,我们采用不同的方法进行处理。

2.1 结构化数据处理

针对结构化数据,通常是关系型数据库的数据,数据结构清晰,把关系型数据库中的数据转换为RDF数据(linked data),普遍采用的技术是D2R技术。D2R主要包括D2R Server,D2RQ Engine和D2RRQ Mapping语言。

D2R Server 是一个 HTTP Server,它的主要功能提供对RDF数据的查询访问接口,以供上层的RDF浏览器、SPARQL查询客户端以及传统的 HTML 浏览器调用。 D2RQ Engine的主要功能是使用一个可定制的 D2RQ Mapping 文件将关系型数据库中的数据换成 RDF 格式。D2RQ engine 并没有将关系型数据库发布成真实的 RDF 数据,而是使用 D2RQ Mapping 文件将其映射成虚拟的 RDF 格式。该文件的作用是在访问关系型数据时将 RDF 数据的查询语言 SPARQL 转换为 RDB 数据的查询语言 SQL,并将 SQL 查询结果转换为 RDF 三元组或者 SPARQL 查询结果。D2RQ Engine 是建立在 Jena(Jena 是一个创建 Semantic Web 应用的 Java 平台,它提供了基于 RDF,SPARQL 等的编程环境)的接口之上。 D2RQ Mapping 语言的主要功能是定义将关系型数据转换成 RDF 格式的 Mapping 规则。

2.2 半结构化数据处理

半结构化数据,主要是指那些具有一定的数据结构,但需要进一步提取整理的数据。比如百科的数据,网页中的数据等。对于这类数据,主要采用包装器的方式进行处理。

包装器是一个能够将数据从HTML网页中抽取出来,并且将它们还原为结构化的数据的软件程序。网页数据输入到包装器中,通过包装器的处理,输出为我们需要的信息。

对于一般的有规律的页面,我们可以使用正则表达式的方式写出XPath和CSS选择器表达式来提取网页中的元素。但这样的通用性很差,因此也可以通过包装器归纳这种基于有监督学习的方法,自动的从标注好的训练样例集合中学习数据抽取规则,用于从其他相同标记或相同网页模板抽取目标数据。

2.3 非结构化数据处理

对于非结构化的文本数据,我们抽取的知识包括实体、关系、属性。对应的研究问题就有三个,一是实体抽取,也称为命名实体识别,此处的实体包括概念,人物,组织,地名,时间等等。二是关系抽取,也就是实体和实体之间的关系,也是文本中的重要知识,需要采用一定的技术手段将关系信息提取出来。三是属性抽取,也就是实体的属性信息,和关系比较类似,关系反映实体的外部联系,属性体现实体的内部特征。

非结构化数据的抽取问题,研究的人比较多,对于具体的语料环境,采取的技术也不尽相同。举个例子,比如关系抽取,有的人采用深度学习的方法,将两个实体,他们的关系,以及出处的句子作为训练数据,训练出一个模型,然后对于测试数据进行关系抽取,测试数据需要提供两个实体和出处的句子,模型在训练得到的已知关系中查找,得出测试数据中两个实体之间的关系。这是一种关系抽取的方法。还有人用句法依存特征,来获取关系,这种方法认为,实体和实体之间的关系可以组成主谓宾结构,在一个句子中,找出主谓关系和动宾关系,其中的谓词和动词如果是一个词,那么这个词就是一个关系。比如说“小明吃了一个苹果”,主谓关系是“小明吃”,动宾关系是“吃苹果”,那么就认为“吃”是一个关系。

当然,还有其它很多方法,可以在一定程度上实现实体抽取,关系抽取和属性抽取,效果可能会有差异,这需要在实践中测试和完善。

3 知识融合

知识融合,简单理解,就是将多个知识库中的知识进行整合,形成一个知识库的过程,在这个过程中,主要需要解决的问题就是实体对齐。不同的知识库,收集知识的侧重点不同,对于同一个实体,有知识库的可能侧重于其本身某个方面的描述,有的知识库可能侧重于描述实体与其它实体的关系,知识融合的目的就是将不同知识库对实体的描述进行整合,从而获得实体的完整描述。

比如,对于历史人物曹操的描述,在百度百科、互动百科、维基百科等不同的知识库中,描述有一些差别,曹操所属时代,百度百科为东汉,互动百科为东汉末年,维基百科为东汉末期;曹操的主要成就,百度百科为“实行屯田制,安抚流民消灭群雄,统一北方,奠定曹魏政权的基础,开创建安文学,提倡薄葬”,互动百科为“统一北方”,维基百科为“统一了东汉帝国核心地区”。

由此可以看出,不同的知识库对于同一个实体的描述,还是有一些差异,所属时代的描述差别在于年代的具体程度,主要成就的差别在于成就的范围不同,等等,通过知识融合,可以将不同知识库中的知识进行互补融合,形成全面、准确、完整的实体描述。 知识融合过程中,主要涉及到的工作就是实体对齐,也包括关系对齐,属性对齐,可以通过相似度计算,聚合,聚类等技术来实现。

4 数据模型构建

上一篇文章,我们阐述过知识图谱的构建方法,提到知识图谱的数据整体上可以分为数据模型和具体数据,数据模型就是知识图谱的数据组织框架,不同的知识图谱,会采用不同的数据模型。对于行业知识图谱来说,行业术语、行业数据都相对比较清晰,可以采用自顶向下的方式来建设知识图谱,也就是先确定知识图谱的数据模型,然后,根据数据模型约定的框架,再补充数据,完成知识图谱的建设。 数据模型的构建,一般都会找一个基础的参考模型,这个参考模型,可以参照行业的相关数据标准,整合标准中对数据的要求,慢慢形成一个基础的数据模型,再根据实际收集的数据情况,来完善数据模型。也可以从公共知识图谱数据模型中抽取,将与行业有关的数据模型从公共知识图谱数据模型中提取出来,然后结合行业知识进行完善。

5 知识推理

知识推理,就是根据已有的数据模型和数据,依据推理规则,获取新的知识或者结论,新的知识或结论应该是满足语义的。知识推理,依据描述逻辑系统实现。描述逻辑(Description Logic)是基于对象的知识表示的形式化,也叫概念表示语言或术语逻辑,是一阶谓词逻辑的一个可判定子集。

一个描述逻辑系统由四个基本部分组成: 最基本的元素:概念、关系、个体;TBox术语集:概念术语的公理集合; Abox断言集:个体的断言集合;TBox 和 ABox上的推理机制。

描述逻辑涉及到的内容也比较多,此处举几个例子,比如实体的分类包含关系,一个电脑椅是椅子,椅子是家具,可以说,一个电脑椅是家具。常识规则的推理,一个男人的孩子是A,一个女人的孩子是A,可以知道,这个男人和女人是配偶。

通过推理发现新的知识,应用比较多,说明知识图谱的时候也经常不自觉的会应用推理,比如前两年比较受人关注的王宝强离婚案,为什么会聘用张起淮做律师,通过知识图谱可以很清楚知道,王宝强和冯小刚关系比较密切,冯小刚聘用张起淮作为律师顾问,所以王宝强很容易和张起淮建立关系,这也可以看作是知识推理的范畴。当然,更确切地说,应该是规则的范畴。推理更强调的是固有的逻辑,规则一般是和业务相关的自定义逻辑,但推理和规则都是通过逻辑准则,获取新的知识或发现,在这里先不做区分。

6 质量评估

质量评估,就是对最后的结果数据进行评估,将合格的数据放入知识图谱中。质量评估的方法,根据所构建的知识图谱的不同,对数据要求的差异而有所差别。总的目的是要获得合乎要求的知识图谱数据,要求的标准根据具体情况确定。 比如对于公共领域的知识图谱,知识的获取采用了众包的方法,对于同一个知识点,可能会有很多人来完成,如果这个知识点只有一个答案,可以采用的一种策略是,将多人的标注结果进行比较,取投票多的结果作为最终的结果。当然,这是不严谨的,因为真理往往掌握在少数人的手里,特别是针对一些行业的知识图谱,表现尤为突出。行业内的一条知识,可能只有行业专家能够给出权威正确的答案,如果让大众投票来决定,可能会得到一条错误的知识。所以,针对行业知识图谱,可能会采用不同于公共知识图谱的策略,来进行知识的质量评估。

以上零零散散的将知识图谱的构建过程,大体做了一个描述,知识图谱的构建是一个复杂的系统工程,涉及到的知识和技术都很多,肯定会有很多知识或技术没有说到,或者是描述的比较浅显,没有把握住一些构建方法的本质,希望大家补充,我会在后面做项目的过程中,不断细化构建过程,将构建中碰到的具体问题,再进行详细的描述说明。

转载于:https://www.cnblogs.com/coodream2009/p/10242442.html

知识图谱基础知识之三——知识图谱的构建过程相关推荐

  1. 知识图谱学习笔记(一)——知识图谱基础

    知识图谱基础 一.知识图谱的基本概念 知识库是一个有向图,包含: 多关系数据(multi-relational data) 节点:实体/概念 边:关系/属性 关系事实=(head, relation, ...

  2. 知识图谱基础知识(一): 概念和构建

    推荐: 知识图谱构建技术一览 知识图谱基础知识之三--知识图谱的构建过程 目录 一.什么是知识图谱 二.知识图谱的分层架构 三.知识图谱构架技术 (一)数据获取(Data Acquisition) ( ...

  3. 知识图谱基础知识之四——知识图谱的典型应用

    我们构建知识图谱的目的,在于利用知识图谱来做一些事情.有效利用知识图谱,就是要考虑知识图谱的具备的能力,知识图谱具有哪些能力呢,首先我们知道知识图谱包含了海量的数据,是一个超级知识库,所以我们可以依赖 ...

  4. 知识图谱基础入门(一)

    知识图谱旨在采用图结构来建模和记录世界万物之间的关联关系和只是,以便有效实现更加精准的对象级搜索.其相关技术可以应用在搜索引擎.语言理解.推荐计算.大数据决策分析等众多领域.如今,知识图谱已经是实现认 ...

  5. 知识图谱基础【通俗易懂】

    知识图谱基础(知乎系列博文) 本文从一个例子出发娓娓道来阐述了知识图谱的来源.结构,值得一学,参考链接: https://zhuanlan.zhihu.com/p/31726910 https://z ...

  6. 知识图谱 | 基础篇

    知识图谱 | 基础篇 1 什么是知识图谱? 1.1 图形角度 1.2 数据角度 1.3 技术角度 2 知识图谱和机器学习的关系? 2.1 部分应用殊途同归 2.2 部分应用相结合 2.3 过程中可以互 ...

  7. 知识图谱基础知识之一——人人都能理解的知识图谱

    1 知识图谱和人工智能 说起知识图谱,可能很多人不太了解,但要说到人工智能,大家就耳熟能详了.人工智能是指机器要像人一样可以思考,具有智慧.现在这个阶段,人工智能研究的人越来越多,在很多行业也实现了部 ...

  8. 【知识图谱】知识推理,知识图谱里最“人工智能”的一段

    互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息.如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容. 知识图谱的难点 ...

  9. 【知识图谱】知识表示:知识图谱如何表示结构化的知识?

    互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息.如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容. 那么,在知识图 ...

最新文章

  1. ORA-09817:Write to audit file failed
  2. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
  3. RHEL/CentOS 下安装yum源地址汇集---不定期更新
  4. 【BJDCTF 2nd—MISC/Crypto】做题+复现记录
  5. 使用CLion的时候,对于cmake的使用
  6. Vue 监视属性 watch
  7. [收藏]7个可以调研B端产品的网站
  8. 洛谷 P3049园林绿化 题解
  9. usermod命令,用户密码管理,makpasswd
  10. delphi三方控件的安装方法
  11. 服务器定时备份数据库 执行文件
  12. 通过完美python注释,打印类的帮助文档
  13. xml引用xsd文件规则
  14. Arduino学习笔记:基于LiquidCrystal库运行LCD1602
  15. install package vif包_ggpubr: Publication Ready Plots (发表级质量的作图R包)
  16. 奔驰S400升级主动式氛围灯,大饼轮毂,4D旋转高音
  17. 钛资本研究院:企业服务早期投资方法论
  18. Redis原生SET、SETNX、SETEX方法以及RedisTemplate的方法 + 分布式锁的实现
  19. 【独家】微软中国开始挖人,看中搜索人才
  20. Python 面试题

热门文章

  1. 做seo为什么要了解网站?
  2. PyFlink 教程:PyFlink DataStream API - state timer
  3. oracle16c,Oracle兵器谱上古神器之-KFED-Oracle
  4. 苹果小程序闪退 camera组件
  5. 隆重推荐:唐·玄武门
  6. 关于类似“石头、剪刀、布”游戏,需要循环判断的,判断条件设计技巧
  7. 惊奇的发现,毕加索会是个好的程序员
  8. HTTP 协议中GET和POST到底有哪些区别
  9. java fix sence_iFixit 拆解:Apple 苹果 再次改进蝶式键盘机械结构
  10. es6 使用filter给对象数组去重