知识图谱构建流程概览
1.知识抽取
1.1 知识抽取的主要任务
(1)实体识别与抽取
任务:识别出待处理文本中七类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
两个子任务:实体边界识别和确定实体类型。
(2)关系抽取
任务:关系抽取是从文本中抽取出两个或多个实体之间的语义关系。它是信息抽取研究领域的任务之一。
(3)属性抽取
任务:对一个给定的实体从非结构化文本中抽取出实体的属性及其属性值形成结构化数据。
1.2 实体抽取
知识抽取包括三个要素:实体抽取(命名实体识别 NER)、实体关系抽取(RE) 和 属性抽取。其中属性抽取可以使用python爬虫爬取百度百科、维基百科等网站,操作较为简单,因此命名实体识别(NER)和实体关系抽取(RE)是知识抽取中非常重要的部分,命名实体识别与关系抽取是两个独立的任务,命名实体识别任务是在一个句子中找出具有可描述意义的实体,而关系抽取则是对两个实体的关系进行抽取。命名实体识别是关系抽取的前提,关系抽取是建立在实体识别之后。
1.2.1 使用CRF完成命名实体识别
CRF(Conditional random field,条件随机场)是一种判别式模型 (HMM是生成式模型)。是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。
一般使用BIO体系:标签采用“BIO”体系,即实体的第一个字为 B_,其余字为 I_,非实体字统一标记为 O。大部分情况下,标签体系越复杂,准确度也越高。
方法:使用pycrfsuite和hanlp完成基于CRF的命名实体识别
1. 获取语料库:nltk、人民日报、其他公开标注语料
2.特征函数:定义特征函数,这里其实更像是定义特征函数的模板,因为真正的特征函数会根据这个定义的模板去生成,而且一般生成的特征函数数量是相当大的,然后通过训练确定每个特征函数对应的权重。
3.训练模型:接着可以开始创建 Trainer 进行训练,将语料的每个句子转成特征及标签列表,然后设置好 Trainer 的相关参数,并将样本添加到 Trainer 中开始训练。最终会将模型保存到model_path中。
4.预测:创建 Tagger 并加载模型,即可在测试集中选择一个的句子打标签。
5.评估:最后是评估我们的模型总体效果,将测试集中所有句子输入到训练出来的模型,将得到的预测结果与测试集句子对应的标签对比,输出各项指标。
1.2.2 基于Bilstm+CRF的命名实体识别
BiLSTM指的是双向LSTM;CRF指的是条件随机场。
1.数据预处理:字向量处理:依据字典与标签字典,将文字与标签分别转成数字。第一行是文本,第二行是标签。
2.模型构建:采用双向LSTM对序列进行处理,将输出结果进行拼接。
3.模型训练与测试。
4.模型验证
1.2.3 基于关键词技术的实体抽取
基于TextRank的关键词提取技术:
算法原理:如果一个单词出现在很多单词后面的话,那么说明这个单词比较重要。
一个TextRank值很高的单词后面跟着的一个单词,那么这个单词的TextRank值会相应地因此而提高。
1.3 实体关系抽取
实体和实体之间存在着语义关系, 当两个实体出现在同一个句子里时, 上下文环境就决定了两个实体间的语义关系。
完整的实体关系包括两方面:关系类型和关系的参数,关系类型说明了该关系是什么关系, 如雇佣关系、 类属关系等; 关系的参数也就是发生关系的实体,如雇佣关系中的雇员和公司。
实体关系抽取问题可以看做一个分类问题。使用有监督(标记学习)、半监督(统计分析)或无监督(聚类方法)等方法进行。实体关系抽取往往关注一个句子内的上下文。
1.3.1 基于依存句法分析的开放式中文实体关系抽取
Hanlp分词HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。
Hanlp提供的功能:
-
- 中文分词
- 词性标注(pos)
- 命名实体识别(ner)
- 关键词提取
- 自动摘要
- 短语提取
- 拼音转换
- 简繁转换
- 依存句法分析
- word2vec
hanlp提供了两种依存句法分析的器,默认采用的是基于神经网络的依存句法分析器,另一种为基于最大熵的依存句法分析器。
2 知识存储
知识图谱是结构化的语义知识库,用于以符号形式描述物理世界的概念及其相互关系。基本组成单位是【实体--关系--实体】或者是【实体--属性--属性值】等三元组。实体之间通过关系相互链接,构成网状的知识结构。
2.1 Neo4j
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
Neo4j是老牌的图数据代表。其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系,单节点性能不够时也可进行分布式集群部署。
Neo4j有自己的后端存储,不必依赖另外的数据库存储。 Neo4j在每个节点中存储了每个边的指针,因而遍历时效率相当高。
3 知识加工
3.1 概述
知识加工的概念:
对信息抽取/知识融合后得到的“事实”进行知识推理以拓展现有知识、得到新知识。
知识加工的价值:
通过信息抽取,可以从原始语料中提取出实体、关系与属性等知识要素。再经过知识融合,可以消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。然而,事实本身并不等于知识,要想最终获得结构化、网络化的知识体系,还需要经历知识加工的过程。知识加工主要包括三方面内容:本体构建、知识推理和质量评估。
3.2 本体构建
什么是本体?
定义:源于哲学的概念,知识工程学者借用了这个概念,在开发知识系统时用于领域知识的获取。本体是用于描述一个领域的术语集合,其组织结构是层次结构化的。简而言之,本体是用于描述一个领域的数据集合,是知识库的骨架。
作用:获取、描述和表示相关领域的知识,提供对该领域知识的共同理解,确定领域内共同认可的词汇,提供该领域特定的概念定义和概念之间的关系,提供该领域中发生的活动以及该领域的主要理论和基本原理,达到人机交流的效果。
3.2.1 本体的构建方法
3.2.1.1 IDEF-5方法
IDEF的概念是在70年代提出的,是在结构化分析方法的基础上发展起来的。在1981年美国空军公布的ICAM(integrated computer aided manufacturing)工程中首次用了名为“IDEF”的方法。IDEF是ICAM Definition method的缩写,到目前为止它已经发展成了一个系列。IDEF5是KBSI(Knowledge Based Systems Inc.)开发的一套用于描述和获取企业本体的方法。IDEF5通过使用图表语言和细化说明语言,获取关于客观存在的概念、属性和关系,并将它们形式化成本体。
IDEF5创建本体的5个主要步骤是:① 定义课题、组织队伍;② 收集数据;③ 分析数据;④本体初步开发;⑤ 本体优化与验证。
3.2.1.2 Skeletal Methodolody骨架法(Uschold方法)
Mike Uschold & Micheal Gruninger的骨架法(Skeletal Methodology),又称Enterprise法,专门用来创建企业本体(Enterprise ontology,是有关企业建模过程的本体)。
3.2.1.3 Methontology方法
Mariano Fernandez & GOMEZ-PEREZ等的Methontology方法是由西班牙Madrid理工大学AI实验室提出的。该方法是在结合了骨架法和GOMEZ-PEREZ方法后,提出的一种更为通用的本体建设方法。这个本体开发方法更接近软件工程开发方法。它将本体开发进程和本体生命周期两个方面区别开来,并使用不同的技术予以支持。
Methontology法,专用于创建化学本体(有关化学元素周期表的本体),该方法已被马德里大学理工分校人工智能图书馆采用。它的流程包括:
(1)管理阶段:这一阶段的系统规划包括任务的进展情况、需要的资源、如何保证质量等问题。
(2)开发阶段:分为规范说明、概念化、形式化、执行以及维护五个步骤。
(3)维护阶段:包括知识获取、系统集成、评价、文档说明、配置管理五个步骤。
3.2.1.4七步法
斯坦福大学医学院开发的七步法,主要用于领域本体的构建。七个步骤分别是: ① 确定本体的专业领域和范畴;② 考查复用现有本体的可能性;③ 列出本体中的重要术语;④ 定义类和类的等级体系(完善等级体系可行的方法有:自顶向下法、自低向上法和综合法[7]);⑤ 定义类的属性;⑥ 定义属性的分面;⑦ 创建实例
3.3 知识推理
3.3.1 什么是知识推理
所谓推理就是通过各种方法获取新的知识或者结论。知识推理主要是利用现有知识图谱已存在的事实或者语料,运用算法工具,推理出实体之间的关联的关系,自动产生新的知识,补充缺失的事实,完善知识图谱。
3.3.2 知识推理的方法
(1)基于符号逻辑的推理——本体推理
(2)基于表运算(Tableaux)及改进的⽅法: FaCT++、 Racer、 Pellet Hermit等
(3)基于Datalog转换的⽅法如KAON、 RDFox等
(4)基于产⽣式规则的算法(如rete): Jena 、 Sesame、 OWLIM等
(5)基于图结构和统计规则挖掘的推理
(6)基于路径排序学习⽅法(PRA, Path ranking Algorithm)
(7)基于关联规则挖掘⽅法(AMIE)
(8)基于知识图谱表示学习的关系推理
将实体和关系都表示为向量
通过向量之间的计算代替图的遍历和搜索来预测三元组的存在,由于向量的表示已经包含了实体原有的语义信息,计算含有⼀定的推理能⼒。
可应⽤于链接预测,基于路径的多度查询等
(9)基于概率逻辑的方法
概率逻辑学习有时也叫Relational Machine Learning (RML),关注关系的不确定性和复杂性。
通常使用Bayesian networks or Markov networks
4 知识融合
4.1 知识融合概述
知识融合(也称本体对齐、本体匹配、实体对齐),即合并两个知识图谱(本体),基本的问题都是研究怎样将来自多个来源的关于同一个实体或概念的描述信息融合起来。需要确认的是:
等价实例:实体的匹配,左右两个人是同一个人
等价类/子类:摇滚歌手是歌手的子类
等价属性/子属性:出生于出生日期是等价的属性
主要挑战:
数据质量的挑战: 如命名模糊,数据输入错误、数据丢失、数据格式不一致、缩写等。
数据规模的挑战: 数据量大(并行计算)、数据种类多样性、不再仅仅通过名字匹配、多种关系、更多链接等。
主要任务:
知识图谱的构建经常需要融合多种不同来源的数据(结构化、半结构化、非结构化)需要将来自多个来源的关于同一个实体或概念的描述信息融合起来。
实体统一
实体消歧 实体链接
知识合并
实体链接:从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。
流程:
1.从文本中通过实体抽取得到实体指称项;
2.进行实体统一和实体消歧,判断知识库中的同名实体与之是否代表不同的含义以及知识库中是否存在其他命名实体与之表示相同的含义;
3.在确认知识库中对应的正确实体对象之后,将该实体指称项链接到知识库中对应实体。
4.2 实体统一(共指消解)
多源异构数据在集成的过程中,通常会出现一个现实世界实体对应多个表象的现象,导致这种现象发生的原因可能是:拼写错误、命名规则不同、名称变体、缩写等等。而这种现象会导致集成后的数据存在大量冗余数据、不一致数据等问题,从而降低了集成后数据的质量,进而影响了基于集成后的数据做分析挖掘的结果。分辨多个实体表象是否对应同一个实体的问题即为实体统一。
如重名现象,南京航天航空大学(南航)
实体共指消解解决办法:
4.2.1基于两者混用的方法
4.2.2 模式匹配
模式匹配主要是发现不同关联数据源中属性之间的映射关系,主要解决三元组中谓词之间的冲突问题;另一种解释:解决不同关联数据源对相同属性采用不同标识符的问题,从而实现异构数据源的集成
4.2.3 宾语冲突消解
宾语冲突消解是解决多源关联数据宾语不一致问题。
4.3 实体消歧
实体消歧的本质在于一个词有很多可能的意思,也就是在不同的上下文中所表达的含义不太一样。如:我的手机是苹果。我喜欢吃苹果。
4.3.1 基于词典的词义消歧
基于词典的词义消歧方法研究的早期代表工作是Lesk 于1986 的工作。给定某个待消解词及其上下文,该工作的思想是计算语义词典中各个词义的定义与上下文之间的覆盖度,选择覆盖度最大的作为待消解词在其上下文下的正确词义。但由于词典中词义的定义通常比较简洁,这使得与待消解词的上下文得到的覆盖度为0,造成消歧性能不高。
4.3.2 有监督词义消歧
有监督的消歧方法使用词义标注语料来建立消歧模型,研究的重点在于特征的表示。常见的上下文特征可以归纳为三个类型:
(1)词汇特征通常指待消解词上下窗口内出现的词及其词性;
(2)句法特征利用待消解词在上下文中的句法关系特征,如动-宾关系、是否带主/宾语、主/宾语组块类型、主/宾语中心词等;
(3)语义特征在句法关系的基础上添加了语义类信息,如主/宾语中心词的语义类,甚至还可以是语义角色标注类信息。
4.3.3 无监督和半监督词义消歧
虽然有监督的消歧方法能够取得较好的消歧性能,但需要大量的人工标注语料,费时费力。为了克服对大规模语料的需要,半监督或无监督方法仅需要少量或不需要人工标注语料。一般说来,虽然半监督或无监督方法不需要大量的人工标注数据,但依赖于一个大规模的未标注语料,以及在该语料上的句法分析结果。
4.4 知识合并
实体链接链接的是我们从半结构化数据和非结构化数据那里通过信息抽取提取出来的数据。
更方便的数据来源:结构化数据,如外部知识库和关系数据库。对于这部分结构化数据的处理,就是知识合并的内容。一般来说知识合并主要分为两种:合并外部知识库和合并关系数据库。
4.4.1 合并外部知识库
(1)数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。
(2)模式层的融合,将新得到的本体融入已有的本体库中,一般有以下四个步骤:获取知识->概念匹配->实体匹配->知识评估。
4.4.2 合并关系数据库
在知识图谱构建过程中,一个重要的高质量知识来源是企业或者机构自己的关系数据库。为了将这些结构化的历史数据融入到知识图谱中,可以采用资源描述框架(RDF)作为数据模型。业界和学术界将这一数据转换过程形象地称为RDB2RDF,其实质就是将关系数据库的数据换成RDF的三元组数据。(工具:D2RQ)。
4.5 工具调研
1.使用jieba完成实体统一
2.使用tf-idf完成实体消歧
3.使用Falcon-AO完成本体对齐,是RDF和OWL所表达的Web本体相匹配的一种实用的选择。
4.Limes,Dedupe, Silk实现实体匹配