作者:zhangqiang1104
1 引言
1.1 知识图谱概念的提出
正如Google的辛格博士在介绍知识图谱时提到的:“The world is not made of strings , but is madeof things.”,这里的“thing”是和传统的互联网上的网页相比较的,知识图谱的目标在于描述真实世界中存在的各种实体和概念,以及这些实体、概念之间的关联关系。知识图谱可以看成是一张巨大的图,图中的节点表示实体或概念,而图中的边则由关系构成。
1.2研究现状和存在的问题
1.2.1本体构建
本体定义了知识图谱中的数据模式,因而本体构建研究的成果能在很大程度上辅助知识图谱的构建。本体学习技术在近年来得到越来越多研究者的关注。本体学习可以简单地划分为术语和概念的学习、术语概念之间的关系学习,在关系学习中,主要包括同义关系学习、分类学关系学习、非分类学关系学习以及属性学习。依据本体学习所基于数据来源,本文把本体学习分为五类:基于非结构化数据的本体学习、基于半结构化数据的本体学习、基于结构化数据的本体学习、基于在线百科的本体学习和基于其它数据源的本体学习。
(1)基于非结构化数据的本体学习
非结构化数据就是没有固定结构的数据,这里常用的非结构化数据是指纯文本,在互联网中存在着大量的文本信息,是本体学习的重要数据来源。文本通常依据特定句法规则表达特定的含义,人类可以根据一些背景知识和上下文来理解其中包含的语义;但是,由于其不具备特定的结构,机器并不能直接明白其中所包含的语义。因此,从文本中获取知识通常需要使用自然语言处理技术进行预先处理,包括分词、词性标注、命名实体识别和句法分析等步骤;然后借助统计分析、机器学习等技术获取知识[1,2]。
(2)基于结构化数据的本体学习
结构化的数据主要指数据库中包含的数据,企业的内部数据基本都存储于关系数据库中,这些数据可以视作深网数据或隐网数据,使用通用的搜索引擎爬虫很难直接获取。这些数据对于构建本体非常有用,尤其是构建领域本体,因为这些数据大部分情况下都是面向主题或领域的。在关系模型中,实体以及实体间的关系都是使用数据表来表示的,所以需要首先鉴定每个表的用途,寻找出其中用来描述实体或实体间关系的表,然后将这些表分别映射成为本体中的概念和关系。Stojanovic[3]等人制定了组从关系模型到本体的映射规则,规则涵盖了关系数据库中的表格、列、主键、外键以及其它的依赖关系;通过使用这些规则可以得到一个初步的本体,在经过修正好,可以生成最终的本体。
(3)基于半结构化网页的本体学习
半结构化的数据指具备一定的隐含结构,但缺乏严格且固定的数据模式,最具代表性的半结构化数据为互联网中海量的以HTML格式存在的网页文档和部分以XML形式存在的文档。对于非结构化的数据,在进行本体学习时,首先尽可能地利用当中的结构化信息,然后还可以使用基于无结构化文本的方法学习本体。Sanchez和Moreno[4]等人开发了一种从初始关键词自动构建本体的方法,他们首先使用搜索引擎获取与初始关键词相关的网页,然后再从这些获得的网页中抽取新的概念以及概念之间的关系,抽取的主要依据是对概念的出现进行统计分析。
(4)基于在线百科的本体学习
随着互联网中用户生成内容的快速增长,这些数据成为本体构建的非常重要的数据源;与一般的网页文档相比,这些数据具备更加丰富的信息,并且具备一定的语义结构,而且是公幵的,可以非常方便地从中抽取和学习本体知识。最具代表性的用户生成内容为在线百科,包括维基百科[5]、互动百科[6]和百度百科[7]。
(5)基于其它数据源的本体学习
许多其它的数据源也被用于本体的构建,例如搜索引擎日志[8,9]、概念网络[10]和一些机器可读的词典[11]等。基于搜索引擎日志和方法主要对用户在使用搜索引擎寻找知识的过程中的各种行为信息进行挖掘,这些行为包括输入搜索词、对搜索引擎返回结果的点击和翻页、搜索词的修改等。
1.2.2现有本体构建方法的不足
从以上国内外本体构建相关研究工作的现状分析得知,目前本体构建的方法还存在各方面的问题。基于人工构建本体的方法都还在专家编辑时代,在互联网规模数据时代已经不能满足大知识量的要求,本体编辑的工作量非常巨大而专家资源相对稀缺,所构建的本体在覆盖面、更新速度等方面将到比较严重的限制。在自动构建本体方面,目前还极少有方法能够自动构建在覆盖面、准确性均能很好满足的本体。在中文本体构建方面,目前的方法对互联网中的越来越多的结构化或半结构化的信息利用不够充分,而且缺乏有综合利用多种方法并且利用多种数据源的本体学习方法。
1.2.3中文知识图谱构建的特殊性
在其它语言中,知识图谱与本体的构建相关的研究工作非常多,尤其是英文知识图谱和本体的构建研究。与英文知识图谱和本体构建相比,中文知识图谱和本体构建具备以下差异和难点:
(1)中文的在线百科也不如英文维基百科丰富。英文维基百科拥有良好的结构和丰富的数据,文章数量在400万以上,而且大多数文章拥有比较详细的内容;而中文维基百科的文章数量则仅有70余万,其中许多文章仅含有简短的文字描述,还有部分文章是从英文文章通过机器翻译转换而得,因此信息非常有限。中文中虽然有其它两大百科拥有与维基百科相当数量的文章,但它们的结构比较自由。因此在中文的知识图谱学习中,从百科中获取知识的方法比英文中复杂得多。
(2)中文知识图谱构建的开放链接数据和开放知识库相对缺乏。DBPedia和YAGO两个知名的开放链接数据集中包含了丰富的英文结构化数据,是知识图谱构建的最丰富的知识来源,然而这两个数据集中包含的中文知识非常有限;在中文领域也没有其它类似的开放数据集。
(3)在中文中,没有像WordNet—样完整的词典库,用于知识图谱构建中机器学习的起步或用于学习结果的评估。
(4)中文语言的自然特性与英文不同,因此,英文中关于从文本中抽取与学习知识的方法在中文在并不实用,尤其是基于文本的开放关系学习的相关方法。
1.3研究内容及意义
针对目前知识图谱及其本体构建存在的问题与不足,本文主要在如下几个方面展开研究:
(1)研究综合使用多种数据源相构建中文知识图谱。充分利用目前互联网中的各类结构化或半结构化的信息,最具代表性的有各种开放链接数据、百科数据、行业网站等。关系数据库中的数据,准确性方面可以得到良好的保证,虽然数据模式方面比较贫乏,但其依然可有作为知识图谱构建的起点,用于bootstrapping;互联网中的开放链接数据和领域公开知识库,以及各个在线百科,一方面可以从中得到基本的数据模式,另一方面也可从中抽取大量数据层面的知识,尤其是实体信息本文构建的知识图谱中的实体,大部分都从这些数据源得到);从非结构化的文本当中,主要用于填充数据层面的信息(属性的值)。
(2)研究如何从大规模的互联网文本中抽取构建知识图谱所需要的知识。对于文本知识抽取,通常使用基于模式的方法和基于分布相似度的方法。这两类方法通常可以保证比较高的准确率,但在召回率方面明显不足,而机器学习的方法则在召回率方面表现良好,但是如果使用监督学习,则需要人工标注大量的语料。本文将探索如何利用从结构化数据源中抽取的知识,在一定程度上自动地标注机器学习所需要的语料以减少人工标注工作,然后在互联网规模的文本中利用训练的模型抽取知识。
(3)基于多种数据源之间的冗余数据对知识图谱的准确性进行有效保证和合理地评估,因为这些冗余信息一方面可以提高知识点的可信度,另一方面也可以为后续人工编辑和校验提供依据。对于各类数据源,首先赋予一定的置信度,结合各知识点的支持条件,给出初步的可信度,对于冲突的结果给出详细的支撑信息;最后在自动校验上结果上提供了人工进行校验的方法。
2 知识图谱的构建过程设计的关键技术
2.1概念和实体学习
2.1.1可用数据源分析
知识图谱构建的相关数据源,包括结构化数据、半结构的数据以及非结构化数据。
结构化数据为存储在关系数据库或是面向对象数据库中的数据,由于这些都深网数据,使用通用的爬虫通常难以获得,因此,如果要使用,通常需要有专门的获取方式。值得注意的是,存储于关系数据库中的数据基本都是面向行业的;因此,主要用于构建行业知识图谱。在行业知识图谱构建时,通常以这些结构化的数据为起点,进而扩充其它数据。
机器可读的本体或辞典通常是由人工构建的,因此具有良好的可靠性。用于本体构建最多的当属WordNet和Cyc与OpenCyc,它们有时候被用于直接的知识抽取数据源,有时也作为启动过程的初始数据,还有些情形下用于做学习结果评估。这两个本体均只包含英文的知识,因此,在中文知识图谱构建时难以直接使用。在中文领域中,最常用的为知网[12]和同义词词林[13]及其扩展版。
开放链接数据和开放知识库严格而言属于半结构化的数据,这些数据通常以图形式的数据结构存储。最知名的为YAGO[14]、DBPedia[15]和Freebase[16],这些数据源通常具备很高的覆盖面,同时在特定的领域也在相当数量的数据;因此,既可用于通用知识图谱的构建。在中文领域,Zhishi.mi[17]是一个从三大中文百科中映射得到的中文开放链接数据集,由于其数据全部来自于中文百科且其在映射时也仅采用了通常的百科结构化信息抽取方法,数据也并未及时更新。
行业知识库和行业垂直网站也属于半结构化数据,它们描述的目标是特定的领域,虽然在描述范围方面比较窄,但正因为专注,因此在数据一致性和完整性方面较通用的知识库完善。这些知识库或垂直网站通常具备自己的结构,在抽取其中的知识时,通常仅需要按照其结构解析即可。
在线百科是互联网中存在公开存在的最大数量的用户生成数据集合,这些数据具备一定的结构,因此,也属于半结构化数据。最知名的当属维基百科,中文领域则还有互动百科和百度百科。百科中的内容虽然是以HTML形式的网页存在中,但其中包含了许多结构化的信息,具体而言包括:文章标题、分类标签、分类系统、信息模块、重定向、消歧、摘要、文本。
图2.1 在线百科页面案例
2.1.2从多源数据学习概念和实体
从开放链接数据集中抽取概念和实体。在开放链接数据中,例如YAGO和DBPedia等,有丰富的概念和实体信息,而且还经常以一定的结构进行组织,因此,从这类数据源中抽取概念和实体非常方便,只需要直接把这些概念和实体解析成知识图谱形式的概念和实体即可。
从百科中抽取概念和实体。本文按照大多数研究者所采用的方法,把百科文章的标题作为实体的候选,而把百科中的分类作为概念的候选。在百科中,存在同一标题对应多篇文章情形,这种情形使用消歧页面来表示的。对于这类概念或实体,需要使用不同的释义标签对同名的概念或实体进行区分。
2.2实体对齐(同义关系学习)
关于知识图谱的实体(概念)对齐的目标是,先把从三类百科中学习到的实体(概念)中描述同一目标的进行合并,再把经过合并后的结果实体集与从开放链接数据中抽取的实体进行合并。
2.2.1基于百科结构化数据的百科实体对齐
百科实体对齐分为单个百科内的实体对齐和多个百科之间的实体对齐,本节讨论第一种情形。
同一百科中的实体对齐主要依赖于当前百科中的两类结构化数据,重定向页面和信息模块。重定向页面已在第小节中详述,其本身的用途即在于对当前百科中表示同一事物的不同文章进行合并,也就是文章对齐;使用重定向页面进行实体对齐时,仅需要遍历所有的页面,如果其中包括重定向标记,则把对应的源文章标题和重定向到的目标文章标题记录下来,标识它们是同一实体。
另外,在百科的信息模块中也包含了部分同义信息,这部分同义信息虽然是在同一个页面中,但如果其中描述的具备同义关系的实体对应了多篇文章,那么,这些文章对应的实体需要合并。具体而言,信息模块中包含的字段名为“别称”(百度百科中)、“中文别称”(互动百科中)等字段列举了当前文章对应实体的同义实体。
2.2.2基于的自监督百科实体对齐方法
在进行百科之间的实体合并时,最直观的方法是把标题相同的文章对应的实体进行合并以,以及把对应同义集合中有相同实体名的实体进行合并;然而这种做法的问题在于并非标题相同的文章一定代表同一实体,典型的例子就是具备多种释义(在百科中使用消歧页面表示)的文章。对于具备多个义项的文章,则需要一种理深层次的方法来判别它们是否指代同一实体。另一方面,并非标题不同的文章代表的就一定是不同的实体,可能是同一实体的不同名称,这种现象不仅在不同的百科之间存在,在同一百科中也有少量存在。因此,也同样需要一种更深层次的对齐方法。
一种可能的方式是对文章之间进行两两比较,以判别它们是否指代同一个实体。然而,这种做法显然是不现实的,因为任意文章间的两两对比意味着需要进行超过50万亿次比较;因此,在进行两两比较前,需要一种方法来减少比较的次数。
候选实体确定以后,接下来需要进行判别了。对于两个候选实体,它要么是同义实体,要么不是,这是一个典型的分类问题。因此,本文采用机器学习分类算法来解决此问题,釆用的模型为支持向量机。
(1) 候选实体选择
文献[18]中提出的Silk是一个知名的链接发现框架(Link DiscoveryFramework)它在对资源进行详细比较时首先通过索引以减少比较的次数。本文采用的方法与其原理基本相同,首先利用索引的方法得到相似度比较高的文章作为需要进行相似度比较的候选文章。
候选文章选取的具体过程如下:首先对每篇文章的标题和内容建立倒排索引,选取候选文章时,把当前文章在倒排索引中进行检索,选择相似度高的一定数量的文章作为候选。
(1) 特征选取
对于每个候选实体,都有一篇百科文章与之对应,其中包含了丰富的特征可用于辅助分类决策。本文所使用的特征有:文章内容之间的相似度,使用余弦相似度计算,文章之间的相似度越高,它们越有可能代同一目标。文章标题之间的余弦相似度:指代同一目标的不同文章的标题在大部分情形下是相似的。
(2) 自动生成训练语料
特征选取完毕后,接下来构建训练模型需要的语料。通常,在监督机器学习方法中,需要人工标注训练语料,在大规模的互联网规模的应用中,人工标注语料非常困难,所标注的语料在特征覆盖面方面很容易具备片面性;因此,需要一种能够自动生成训练语料的方法。本文借助于本科中的结构化信息以及一些通用的启发式规则来生成训练语料。
(3) 支持向量机
支持向量机的由Christopher J.C. Burges于1998年提出,基本目标是把一堆n维空间里的点用n-1维的曲面分开来。为了获得一个直观的认识,我们来看看一个n=2的情况,如图所示,此时是一个线性分类器,对应的的分割曲面是一条曲线;在左边的图中,需要寻求一个线性的分类器,把黑点和白点分开来;显然,直线H2和H3都可以完成这个划分任务,但是H3被最终选取的结果,因为根据这条边界划分,离边界最近的黑点和白点(被称为支持向量),离边界距离的总和达到最小。这个划分过程使用数学表达如公式所示,在一个训练集合D中,
xi是一个p维向量,yi可以是1或者-1,代表两个不同的类别。如果此数据集是线性可分的,则一定可以找到两类别的线性边缘wx-b=1和wx-b=-1,使得两个类别内的数据点完全分开,这样就可以基于这两个边缘定义一个离两个边缘等距离的分类器wx-b=0,如右图所示,其中w代表一个新的向量(训练得到),b/||w||代表边缘到分离器的距离。
图2.2 支持向量机示意图
在现实应用的数据中,可能不存在线性可分的边界,此时可以通过数学方法将它从低维空间转化为高维空间,然后它就变得存在线性可分的边界了。这个投影过程采取了一种叫核的技术,转换过程中使用的函数叫做核函数,常见的核函数有线性核函数、多项式核函数、径向基核函数和Sigmoid核函数等。
(5)模型训练
语料构建完毕后,接下来便可以训练模型了。本文使用的实现是libSVM,它是一个简单易用的软件包,可以解决分类问题、回归问题和分布估计问题等,并且可以有效地多类问题;同时,还提供了四种常用的核函数:线性核函数、多项式核函数、径向基核函数和函数核函数。包括训练数据文件生成、特征值缩放、训练等。
(6)判别
训练完成后,即可对目标数据修订本进行预测,目标数据集合的格式和训练文件的格式一致,在中使用命令svmpredict完成。
2.2.3基于语言学模式的方法
在中文语言中,有一些固定的语言模式用于描述同义关系,例如:“X又名Y”、“X也叫Y”、“X别称Y”等。基于语言模式的方法非常简单,人工编写好模式后,把这些模式在海量的句子中进行匹配,即可得到大量的同义关系。这类方法的准确度通常比较高,但是召回率却非常低,因为不可能人工把所有的描述同义关系的语言模式都列举出来。
2.2.4基于CRF的开放同义关系学习
前述使用语言学规则的方法提到,在中文语言中,有一些常用的句法模式是用来表达同义关系的;利用一些常用的规则,己经成功抽取了相当数量的同义实体。然而,手工编写句法模式是难以完全的,因此需要一种更加幵放的学习方法。
在机器学习中,序列化标注问题指为一个观察序列中的每个组成单元赋予类别标签,其输入X是一个观测序列,输出Y是一些需要依据观测序列来推导的隐式状态;所有的输出yi形成一条链,每个y(i-1)至少和yi之间有一条边相连,这也保证了它们是遵守一阶马尔可夫假设的。常用的序列化模型有隐马尔可夫模型,最大熵马尔可夫模型和CRF。本文采用的是CRF模型。
中文翻译为条件随机场或条件随机域,是一种机器学习模型,在自然语言处理的词性标注、中文分词、命名实体识别等方面都有比较好的应用效果。CRF的理论是基于隐马尔可夫模型和最大熵马尔可夫模型。
在理解了序列模型之后,接下来详述开放式同义关系抽取算法的过程,主要包括五步:选取作为同义关系的候选实体,标注机器学习所需要的语料,确定需要训练模型需要使用的特征,训练同义关系抽取模型,以及把学习的模型用于更丰富的句子中以抽取同义实体。本文把从文本句子中抽取同义实体建模成序列化标注问题,并使用CRF作为机器学习模型。
2.3 上下位关系学习
2.3.1 从开放链接数据集中抽取上下位关系
在开放链接数据集中,上下位关系是使用明确的机制来描述的,因此,直接进行解析即可获取,针对每个数据集编写相应的规则即可。
2.3.2 从百科中抽取上下位关系
百科中描述了两种上下位关系,一种是类别之间,另一种是类别和文章之间,前者对应概念间的层次关系,后者对应实体和概念之间的从属关系。
中文维基百科和互动百科均有比较完整的分类体系,从中可以直接获取一个原始的分类系统;百度百科中也有相应的分类体系,但是这些分类是离散的,没有形成严格的分类体系。百科的分类体系如图所示,(1)中所示的是百度百科的分类体系,(2)和(3)分别是互动百科和维基百科的分类体系。
图2.3 中文三大百科分类图
2.3.3基于开放上下位关系学习方法
基于CRF的开放上下位关系学习与基于CRF的开放同义关系学习非常相似首先,需要验证开放学习的可行性,然后进行建模、特征选取、自动语料标注、模型训练和关系抽取。
2.3.4分类树整合
到目前为止,已经抽取了大量的上下位关系,接下来需要把它们组织成一个以层次结构组织的分类体系。组织的方法非常简单,仅需要把这些上下位关系两端的实体进行合并即可,对于两个实体A和B,如果A和B的名称相同,或者A和B同时位于某一实体的同义集合中,则把A和B进行合并。
2.4 属性学习
2.4.1概念的属性学习(数据模式的学习)
给概念添加属性属于数据模式层的构建,一个属性的定义包括个部分,属性名、属性的定义域和属性的值域。当概念的属性被定义好,属于该概念的实体默认具备此属性,需要填充属性的值即可。
概念属性的更改会影响到直接属于它的实体,以及它所有直接子概念、间接子概念以及这些概念所管辖的实体,因此,概念属性的定义非常重要,在现有的大部分的知识库中都是通过人工的方式定义的。本文所采用的方法过程如下:首先,通过一系列的方法从开放链接数据集中获取概念的属性;然后,从在线百科中学习实体的属性,并对实体属性进行往上规约从而生成概念的属性。
2.4.2从开放链接数据集中抽取概念属性
在幵放链接数据集中,每个概念都有相应的属性,而且这些属性都经过人工校验的,可靠性非常高,因此,直接把他们作为本文构建的知识图谱中的对应的概念的属性。而且,所使用的两个数据集,DBPedia和YAGO,它们之间已经做过对齐,因而合并后所属性中并不会出现重复的属性。
2.4.3从百科中抽取实体属性
百科中的信息模块中包含了大量以“属性值”对出现的信息,信息模块的示例如图所示,实线框中的是属性名,虚线框中的为属性值。需要注意的是,百科中的信息模块虽然基于概念定义的,但是在概念对应的百科文章页面中并没有直接显示,而是在属于这些概念的实体中体现的。
图2.4 中文三大百科属性图
2.5 规则和公理学习
规则与公理的学习是知识图谱构建的较上层,自动学习的难度也非常高。目前相关的研究相对较少,存在的少量研究基本都是基于模板或规则的方法。因此,本文不讨论规则与公理的自动学习,而是提供协作编辑平台,让用户针对领域和应用场景添加相应的规则和公理。
2.6 学习过程中的冲突解决
在知识图谱的构建过程中,不可避免地会出现一些冲突。这些冲突主要来自两个方面,不同数据源造成的冲突和不同构建方法造成的冲突。具体的冲突可能性分析如下:
(1)概念与实体的区分:有些数据集中认为某个事物为概念,而在其它的数据集中则认为是实体,此时即造成了真实意义上的冲突。
(2)上下位关系学习:造成冲突的示例如:对于两个实体或概念和在一些数据集中认为A是B的上位,而在另一些数据集中则认为B是A的上位,这也造成了冲突;更加复杂的还包括在层次结构图中形成了闭环。
(3)属性:主要体现在单值型属性下,如果学习到了不同的值,也表示存在冲突;对于多值型属性,通常仅需要把属性值合并。
2.6.1冲突检测
针对可能产生冲突的发生点,本文使用了特定的探测算法进行探测。所采用的探测方法如下:
(1)概念与实体的区分:因为主要产生于不同的数据源中,因此只需要对各数据源的实体和概念分开建立索引;然后,对于一个数据源中的实体和概念,在其它数据源的索引中查找;如果当前数据源中为实体(概念),而在其它数据源中则作为概念(实体),则检测到冲突;
(2)上下位关系中的冲突:由于层次结构图应该为一个有向无环图,其中不能存在闭环,因此本文基于有向无环图中的闭环寻找算法来检测冲突。具体使用的方法基于拓扑排序的方法,基本过程如下:找到图中所有入度为零的顶点,删除该顶点及相关的出边,如此循环到无顶点输出;若能把整个图中的结点都删除,则说明图中不存在闭环,否则说明图中存在闭环。
(3)对于单值型的进行遍历,如果有多个值,说明存在冲突。
2.6.2冲突解决方法
本文主要釆用三种方法来解决学习过程中的冲突,一种是基于数据源可靠性的方法,第二种是基于支持因素数目的方法,第三种则是基于人工解决的方法。
(1)基于数据源可靠性的冲突解决方法
这种方法需要对知识图谱构建数据来源的结构化或半结构化数据源的可靠性进行评分,通常是基于统计的方法与基于人工的方法相结合。本文最后确定的数据源可靠性从高到低依次为,DBpedia(0.8)、YAGO(0.75)、维基百科(0.5),互动百科(0.3)和百度百科(0.25),括号中的数值为可信度。数据源可靠性确定以后,当冲突发生于数据源之间时,则按数据源的可靠性进行取舍。例如,当一个单值属性的值在维基百科中取值为A,而在百度百科中则取值为B,由于维基百科的可靠性高于百度百科,因此应该选取A作为该属性的值。
(2)基于支持因素数目的冲突解决方法
对于从文本中通过机器学习所得的知识,由于无法依据数据源的可靠性进行取舍,因此需要使用其它的方法。在机器学习的方法中,对于每条知识都有支持其为真的依据,例如在基于CRF的开放同义关系学习中,对于一对学习到的同义实体,通常会有多个语言学模式来支持它,支持的数目即代表了一种可信度;因此,对于产生冲突的知识,可以依据支持的数目多少来进行裁决。
(3)基于人工的冲突解决方法
基于人工的方法很好理解,即当自动的冲突解决方法无法完成判别时,需要人工的介入;或者在某些对于知识图谱的可靠性要求相当高的场景下,需要人工对自动解决方法的裁决结果进行校验和修正。
2.7 知识图谱的更新
知识图谱的构建并非一織而就,需要不断的进行更新。这种更新分为两个层次的更新,数据模式层的更新和数据层的更新。
2.7.1数据模式层的更新
数据模式层的更新指概念层次的更新,包括概念的层次关系,同义关系和概念的属性定义等;这些更新主要来自两方面的驱动,一是在结构化和半结构化的数据源中的知识有更新,知识图谱也需要相应的更新;另一方面是因为使用的自动学习算法在语料添加、算法改进等方面变化时,所学习的知识发生变化,这些知识变化规约到数据模式层的变化。
对于数据模式层的变化,本文通过对这些变更进行分类,对不同的分类使用不同的解决方法。
(1)对于概念的描述、图片及同义关系的变化,由于它们的变更所影响的仅为当前概念本身,因此,通常不需要进行额外处理,仅通过本章前面小节中描述的构建方法进行更新即可。
(2)对于概念间的上下位关系的更新,由于会更新整个分类层次结构,因此需要谨慎处理;如果并未造成冲突,则不需要特殊处理,如果造成了闭环式的冲突,此时系统检测到以后,由人工进行处理。
(3)对于概念的属性更新,如果是新的属性添加,依据本章之前所述的方法进行处理即可;如果是对现有属性的更新,包括属性类型、值类型、值域的更新,系统检测到后由人工进行处理;如果是对属性的删除,若属于当前概念的所有实体中该属性均已被移除,则可以把概念的属性直接移除,否则仍然需要人工确认。
2.7.2数据层的更新
数据层的更新处理相对比较简单,依据在学习过程中所选取办法自动解决更新问题即可。
3 知识的应用
3.1 语义检索
传统的检索是基于关键词,搜索引擎并不理解用户的输入,仅对用户的输入进行切分得到关键词,得到关键词后再与目标数据进行匹配,把匹配的结果通过一定的排序算法返回给用户,用户在这些结果中选取想要的目标结果。
基于知识图谱的语义检索的目标在于理解用户的输入,为用户给出更加直接和准确的答案。语义检索分为三个过程:
(1)通过分词和实体识别从输入中识别概念、实体和属性;
(2)结合知识图谱的数据模式,对识别的结果进行理解;
(3)把理解的结果在目标数据集上进行搜索并返回结果;
如图所示,用户搜索“罗志祥的年龄”,不仅列出了罗志祥的年龄,还给出了罗志祥相关度较大的人物的年龄,右侧显示了罗志祥的关系图谱以及同年出生的人。这些检索结果看似简単,但这些场景背后蕴含着极其丰富的信息:首先,搜索引擎需要知道用户输入中的“罗志祥”代表的是一个人;其次,需要同时明白“年龄”一词代表什么含义;最后,还需要在后台有丰富的知识图谱数据的支撑,才能回答用户问题。
图3.1 搜狗搜索结果快照
3.2 知识导航
知识图谱包括了概念、实体以及它们之间的关系,是一个具备体系结构的知识库,因此可以辅助和引导用户进行学习:
(1) 实体和概念本身的知识,通常以知识卡片的形式提供;
(2) 实体、概念之间的关联关系,主要包括上下位层次关系和属性关系;
3.3 决策支持
决策支持系统,是一种辅助人类做决策的信息系统,强调的是支持而非替代人类进行决策。决策的过程主要是对数据、信息及相关资料进行统计与分析,从中发现数据的规律,为用户决定提供参考。
基于知识图谱的决策支持系统的优点如下:
(1)使得一些无结构或者离散孤立的数据的利用变得可能;
(2)同时也可以使用多种类型的数据进行综合分析,提供推理功能,更好地辅助用户决策。
基于知识图谱的决策支持系统的使用方法如下:
(1)使用基于自然语言的语义查询来获取结果;
(2)也可以使用所提供的SPARQL查询接口或RESTful接口进行知识的搜索;
4 参考文献
[1] Buitelaar P, Cimiano P, Magnini B. Ontologylearning from text: methods, evaluation and applications[M]. IOS press, 2005.
[2] Maedche A, Staab S. The text-to-onto ontologylearning environment[C]//Software Demonstration at ICCS-2000-EightInternational Conference on Conceptual Structures. 2000, 38.
[3] Stojanovic L, Stojanovic N, Volz R. Migratingdata-intensive web sites into the semantic web[C]//Proceedings of the 2002 ACMsymposium on Applied computing. ACM, 2002: 1100-1107.
[4] Shinzato K, Torisawa K. Acquiring HyponymyRelations from Web Documents[C]//HLT-NAACL. 2004: 73-80.
[5] 维基百科中文版.https://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%87%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91
[6] 互动百科. http://www.baike.com/
[7] 百度百科. http://baike.baidu.com/
[8]Yin X, Shah S. Building taxonomy of web searchintents for name entity queries[C]//Proceedings of the 19th international conferenceon World wide web. ACM, 2010: 1001-1010.
[9]Pasca M. Turning Web Text and Search Queriesinto Factual Knowledge: Hierarchical Class Attribute Extraction[C]//AAAI. 2008:1225-1230.
[10] Novak J D, Ca?as A J. The theory underlyingconcept maps and how to construct and use them[J]. 2008.
[11] A.A Krizhanovsky and A.V. Smirnov. An approachto automated construction of a general-purpose lexical ontology based onWiktionary. Journal of Computer and Systems SciencesInternational,2013,52:215-225.
[12] HowNet.http://www.keenage.com/
[13] 梅家驹,高蕴奇.《同义词词林》.上海辞书出版社,1983.
[14] Auer S, Bizer C, Kobilarov G, et al. Dbpedia: Anucleus for a web of open data[M]. Springer Berlin Heidelberg, 2007.
[15] Fabian M S, Gjergji K, Gerhard W. YAGO: A coreof semantic knowledge unifying wordnet and wikipedia[C]//16th InternationalWorld Wide Web Conference, WWW. 2007: 697-706.
[16] Freebase. https://www.freebase.com/
[17] Niu X, Sun X, Wang H, et al. Zhishi. me-weavingchinese linking open data[M]//The Semantic Web–ISWC 2011. Springer BerlinHeidelberg, 2011: 205-220.
[18] Volz J, Bizer C, Gaedke M, et al. Discoveringand maintaining links on the web of data[M]. Springer Berlin Heidelberg, 2009.
http://blog.csdn.net/zhangqiang1104