什么是知识抽取
知识抽取是指把蕴含于信息源中的知识经过识别、理解、筛选、归纳等过程抽取出来,存储形成知识元库。目前研究较多的是自然语言文本,已经出现了一些工具或系统,知识抽取已经成为自然语言处理领域一个重要的研究分支。
知识抽取的难点
知识抽取的难点在于对知识源中的数据进行处理,因为知识并不是以某种现成的形式存在于知识源中的,只有对知识源中的数据经过分析、识别、理解、关联等一系列处理之后,才能发现其中有用的知识。而这种数据处理往往又因为知识源中数据形式的不同而呈现不同的难度。对一些蕴含于数据库或文本数据中的知识,尽管具有显式的数据表达形式,但目前的机器学习技术还不足以实现自动获取。
目前的知识抽取还是以手工或由机器辅助的手工获取为主。例如,在获取领域专家的经验时,就要求知识工程师与专家进行直接交流,深入讨论,甚至参与到领域专家现场解决问题的过程当中,这种交流讨论可能需要很长时间,直到知识工程师认为他领会了专家的经验,然后再由他对这些经验进行数学分析,建立数学模型,以适当的知识表示形式表示出来,送入计算机。
除从领域专家处获取知识外,一个成功的专家系统,还应该具备从实践中学习、总结知识的能力。即,还可通过专家系统本身的运行实践,从已有知识或实例中演绎、归纳出新知识,进而实现对知识库的自我更新和完善。当然,这要求专家系统自身具有一定的“学习”能力,也就是说,必须要对机器学习的相关理论和技术进行更加深入的研究。
知识抽取的特征
知识抽取可以为知识建模提供素材。这些素材不全是“未加工”的,使用抽取技术后的结果通常是得到一种结构化的数据,例如,标记、图表、术语表、公式和非正式的规则等。意识到脱离了抽取技巧,一个人就无法得到真正且正式的描述是很重要的。在抽取上强加正式的表示将会在抽取过程中导致偏见,甚至经常会得到错误的数据。抽取应该要集中化和结构化,但是也要尽可能地开放。将抽取的原材料转化成问题解决过程中更正式的描述是知识建模的一个任务。
执行知识抽取和知识分析的知识工程师(或者叫知识分析员)实质上不需要掌握很深的应用领域知识。举一个最简单的例子,知识工程师能够从各种各样的非人力资源中获得信息,这些资源包括书本、技术手册、案例学习等等。然而,在大多数情况下,他(她)实际上需要请教资深专家。这也许是因为当时没有可用的文档,或者他们意识到在从事的领域中真正的专家来自于实践,而不是死读书本。只有很少的知识模型在建立过程中没有请教专家。那些没有被真正的专家理解和实验的模型通常是缺乏说服力的。以下两个问题在知识抽取过程中相当突出。
1)我们怎样让专家们告诉我们或者给我们演示他们做什么?
2)我们怎样决定他们解决问题的能力是由什么形成的?
这个任务是非常艰巨的,特别是在大的应用语境中显得尤为突出。有很多情况会使问题变得更加难以处理。许多技术知识是从多年积累的经验中获得的,并日.是以直观推断的形式表示的。直观推断是一种经验规则或者是一种已证明了的方法,这些规则和方法可以用来获得特定信息的结果。通常,专业技术变得如此墨守成规,以至于专家们都无法知道他们做什么或者为什么做。
出于商业目的,显然,我们应该尽力使知识抽取过程变得高效一些。我们应该使用一些技术去尽量减少花费在收集、转录和分析专家知识上的精力。我们应尽力减少花费在昂贵且稀有的领域专家们身上的时问。当然,我们也应当尽力增大可用知识的收益。
对于为什么要使知识抽取成为一个系统化的过程,也存在一些合理的工程上的理由。首先,我们希望知识抽取过程能够被普遍使用,并且要符合条理化的标准。这样可以保证结果是健壮的,并且这些结果可以被任何有能力的知识工程师应用到范围广泛的专业领域内。同时,我们希望我们的技术是可行的。这将意味着这些技术可以被不同的知识工程师以相同的实用工具使用。然而,我们要想使抽取过程系统化,必须从专家分析开始。
知识抽取的方法
方法简介
(1)词典标引法
该方法的基本思想是:首先构造一个机内词典(主题词典、关键词典等),然后设计相应算法与词典匹配,若匹配成功则将其抽出作为文献的标引词。词典标引法在目前汉语自动标引中占主要地位,早期的自动标引试验基本上都是采取该方法,其标引算法基本相同,但具体细节上有所不同:有的采取最大匹配法,有的采取最小匹配法,有的采取切分抽词和综合加权来确定标引词。词典标引法是一种传统的自动标引方法,目前国内采用该方法的具有代表性。
自动标引系统的有以下几种:北京大学的汉语科技文献自动标引系统;中国科技情报所的语词结构类比自动标引系统;陈培久的汉语科技文献标题自动标引系统;北京文献服务处的汉语自动切词标引系统等。
(2)切分标记标引法
该方法的基本思想就是:将能够断开句子或表示汉字之间联系的汉字集合组合成切分标记词典输入计算机。切分标记词典有:词首字、词尾字和不构成词的单字。也有人用“表外字”、“表内字”、“非用字”、“条件用字”等来组成切分词典。当原文本被切分词典分割成词组或短语后,再按照一定分解模式将其分成单词或专用词。中国计算机软件与技术服务公司的吴蔚天设计的非用词后缀表法自动标引系统就是这方面的代表。
(3)单汉字标引法
该方法的基本思想就是:在标引时将概念词拆分成单个汉字,以单个汉字作为标引词,采取后组方式,将检索词串分解成单个汉字,以逻辑乘关系进行组配,利用汉字索引文件实现自动标引和逻辑检索。
(4)统计标引法
词频统计标引法的理论基础是著名的Zipf定律,它建立在较成熟的语言学统计研究成果基础之上,具有一定的客观性和合理性,加之这种方法简单易行,因而在自动标引中占有较重要地位。国内外很多学者都曾使用这种方法进行了标引试验,结果证明此法行之有效。词频统计方法要进一步发挥其功能,就必须融合其他因素,因此这种方法目前更多是融合到其他标引方法中使用。在加权统计标引法中,从文献频率加权标引到词区分值,加权标引主要依赖于词的频率特征(标引词在某一特定文献中的出现频率或词的文献频率)和词的区分能力。这两种方法的主要缺陷是与用户的相关性无关。而词相关性加权标引和价值测度加权标引模型不仅考虑了词在某一特定文献或整个文献集合中的频率特征,而且考虑了标引词在相关文献集合和无关文献集合中的频率特征,以及检索结果的效益值。理论和实践都证明这两种方法比前两种方法更为有效。但这两种方法在实际应用中具有一定的局限性,权值函数中的R等值在标引之前是未知的,只能近似估计。
(5)句法分析标引法
基于深层结构的标引法将文献标题可能反映的主题内容归纳为有限的几种元素基本范畴,并使用简洁的句法规则,减少了句法分析的复杂性。数字化指示符和处理码标识的运用更方便了计算机的识别处理。但是这种方法在主题名称的范畴分析及主题标目的选择等方面需要较多的人工干预,影响了其自动标引效率。另外,这种方法仅以文献标题为标引对象,虽然主题内容容易突出,但标题句法形式的规范性一般较差,增加了句法分析的难度,同时过窄的分析范围容易漏标一些相关主题。句法分析标引法所获得的一些有效结果通常是来自于一些特殊的小量样本,而在大量样本上的试验往往令人失望,最突出的问题是标引词词义的模糊性,而这一问题又是句法分析标引法本身难以解决的。因此,著名的自动标引研究专家Sahon指出,所有的句法分析必须辅之以语义分析,才能保证自动标引的准确性。
(6)语义分析标引法
潜在语义分析标引法通过单值分解将词、文献和提问,依语义相关程度组织在同一空间结构中,在这一空间中,分散在不同文献和提问中的同义词相近放置,具有不同的词但主题语义接近的文献和提问相邻组织。因此,在文献和提问检索词不匹配的情况下,这种方法仍可以给出合理的检索结果,这一点显然是基于关键词的检索系统所无法达到的。因为每个词在潜在语义空间中只有一个位置,所以这种标引法目前对多义词还难以应付。在简化的SVD(singular value decomposition)描述中,文献集合中一个含义模糊的词将被置于多个独特含义的矩心,这无疑会对检索产生负面影响。尽管这种方法还存在缺陷,但是许多学者对其进行试验后认为,潜在语义分析标引法是一种很有希望的方法。
语义矢量空间模型在现有的矢量空间模型基础上,融人格式语义结构通过标引词的语义矢量构造描述文献的语义矩阵,使文献的标引得以在语言的深层结构——语义层上实现。相比于句法分析标引法,语义分析标引法无论在使用范围还是实际的使用效果都要明显优于前者。语义分析标引与人工智能标引的融合将是今后自动标引技术的研究方向。
(7)人工智能标引法
人工智能应用在标引中的具体技术是专家系统,专家系统的知识表示方法主要有产生式表示法、语义网络表示法和框架表示法。基于产生式表示法的JAKS系统,其规则具有统一的条件一行为表示形式,各自具有自己的功能,这使知识容易定义,也容易理解。而且规则具有高度模块化性质,系统对规则的定义、修改、扩充等操作可各自独立进行而不互相干扰。但由于规则之间不存在明显的相互作用,所以难以对规则库整体把握,给规则库的一致性维护带来困难。另外基于规则的推理缺乏必要的灵活性,难以应付复杂内容标引的变动推理方式的需求。
尽管采用人工智能法进行自动标引比在相同专业领域中运用其他方法要复杂,但人工智能法是真正从标引员思维的角度模拟标引员的标引过程,这显然比以被标引文献为出发点的其他自动标引方法更有希望获得理想的标引效果。
各种方法的特点
词典切分标引法和切分标记法都是先组式标引法,处理速度较快,但构建分词词典较困难,词典维护量大。
切分标记标引法对切分后的词组或短语需要再分解,但分解模式和分词知识库很难适应汉语灵活的构词变化,较易产生标引错误。
统计标引法是建立在词典切分法和切分标记法的基础上,既有两者的优点也有两者的缺点。相比于其他自动标引方法,统计标引法较为简单实用,因而使用较普遍,也取得一定的实际标引效果,它同时也是其他一些类型自动标引方法中重要的组成部分。但是语言是有意义的符号序列,这类方法要克服单纯统计的形式化缺陷,取得更高的标引质量,就必须结合语法语义分析。
单汉字标引法避开了分词障碍,易于实现,也不存在词典构造问题,但很难用它来处理文本中隐含的主题概念,而且会产生虚假组配现象。句法语义分析标引法和人工智能标引法是汉语自动标引技术发展的必然趋势,标引质量较高,但现在这方面的技术还不很成熟,都还处于试验阶段。
综上所述,由于子系统是一个原型系统,涉及的文档数量相对较少,所以采用了统计标引法。
知识抽取的分类
知识抽取的来源主要有结构化文本、半结构化文本、非结构化文本。结构化文本包括词典、主题词表、本体、大百科全书等;半结构化文本主要是指标记文本,包括HTML标记文本与XMI。标记文本;非结构化文本主要指图书、论文等传统文献。这些文本按前期的标注程度不同又可分为原始文本、粗标注文本和全标注文本。知识抽取的理论模型支撑有粗糙集、遗传算法、神经网络、潜在语义标引等。知识抽取的过程或多或少地都用到NLP处理技术,这些技术从处理的层面来讲包括形态分析、语法分析、语义分析、语用分析,从文本分析的处理单位来讲,包括词法分析、句法分析、段落分析、篇章分析,用于支撑这些分析的资源包括词典、规则库、常识知识库、领域知识库。知识抽取的结果有多种表示方式,有直接用自然语言表示的,也有转换成知识表示方式的,包括逻辑表示法、框架表示法、脚本表示法、产生式规则表示法、面向对象表示法、语义网表示法等,以及由面向对象表示法演化而来的本体表示法。针对不同的知识所选用的知识表示方式与知识抽取模式都不相同,如实验过程适合脚本表示法、概念关系适合语义网表示法、研究结论适合逻辑表示法等。知识抽取按不同的处理过程划分如图所示。
总之,与国外研究相比,国内的研究还相当薄弱、差距很大,亟待展开相应研究,以推进知识抽取的研究与应用。
在分析国内外知识抽取模式与方法的基础上,笔者设计了一套自然语言处理(NLP)的知识抽取系统研究方案,并作为一个项目进行研究。该项目以NLP为基础,尝试运用分词、词性标注、句法分析、语义分析等技术从科学文献的语段中抽取知识,然后把用自然语言描述的句子通过知识表示转换成计算机可理解的形式,并存入知识库中。研究目标是建立起基于NLP的知识抽取的系统架构,并对其中的关键技术进行研究与实现,最终建立起相应的平台和应用系统,并在科学文献领域进行实证性应用。通过这项研究,有望为信息泛滥与知识贫乏问题提供解决方案和技术路径。
从学术文献中抽取知识是一项复杂而艰巨的工程,它涉及语言学、情报学、人工智能、文献学、管理学等多门学科,工程开发难度较大,需要的资源较多,因此需要循序渐进地进行。
基于NLP的知识抽取系统架构
一篇文献的处理单元上,由小到大渐进式研究,从关键词到标题,进而分析摘要,在此基础上开始深入到正文的分析。目前的研究已实现对标题的分析,并开发出了相应的算法和模型,对摘要的分析处理也正在进行,对学位论文的致谢进行分析抽取的实验也已开展,已经开发了相应的技术和程序,这项工作也即将结束。这些为本课题的深入开展打好了良好的基础。从自然语言处理的层面上看,由浅入深,是从词法分析到句法分析再到语义分析,最终实现对文献的内容理解并抽取知识。本研究严格按照语言处理的层面和语言构成的单位,由浅入深,以小见大,不回避每一个处理步骤,每一个处理步骤选取最优化的算法,大多数步骤都会进行适当的消歧。基于自然语言处理的知识抽取系统构架如图所示。
知识抽取从理论上、技术上以及资源支撑方面都具备了成熟的条件。理论上,本体论在信息领域的成功引入为本项研究提供了认知理论基础;成熟的语法模型证明了语言具有可计算性;元数据的不断扩充,RDF及XMI。的广泛应用,本体库的逐步构建,加上自然语言处理的研究新热与人工智能的飞速发展,为从科学文献中抽取知识提供了理论支持。技术上,系统设计采用MVC,面向对象程序设计采用Java进行系统实现;面向对象数据库采用ObjectStore,关系数据库采用Oracle;自动分词采用最大向量匹配算法,词性标注采用最大概率算法,语法分析采用Tomita算法,语义分析采用谓词逻辑;系统接口采用XML,这些成熟的技术为系统的实现提供了保障。万方数据期刊全文数据库有数以千万计的关键词词库(可以转成面向领域的概率词库),中国科学技术信息研究所的《汉语主题词表》,北京大学计算语言研究所的《现代汉语语法信息词典》、《人民日报》切分标注语料,哈尔滨工业大学的十万级句子库等,这些丰富的资源为系统的实现提供了资源支撑。实验采取小规模实验、经过分析获取资源,然后追加到资源库,改进分析算法,进而进行大规模实验。总体上采取边分析(文本)、边抽取(知识)、边改进(算法)、边建设(资源)的技术路线。
知识抽取中的自然语言处理基础
(1)切分句子与自动分词
利用标点符号与段落标记把文章的正文切分成句子,然后到句子库进行匹配分析,滤掉学术抄袭与科学引用的句子,得到可能含有新知识的句子。利用闭锁词把句子粗分成若干个待分析串,根据文献分类号确定文献所属领域,利用本领域的关键词词库使用嵌套的逆向最大向量进行切分。对于有切分歧义的切分结果使用概率词典用最大概率法进行消歧,选出最优的切分结果。
(2)词性标注
使用隐马尔科夫模型和规则相结合的方法进行词性标注。写作学术论文时,实词主要由名词和动词构成,形容词和副词使用甚少,尤其是修饰性的形容词与副词,而且在文中的作用很小。连词、否定词、程度词在文中的作用较大,在进行语义分析时,其作用甚至超过名词与动词。利用规则可以进行适度地消歧,而分析结果得到的规则可以添加到词性标注规则库,以提高后续准确率。
(3)词汇语义标注
词汇语义标注采用互信息与义类词典相结合的方法。学术论文的书写有着一定的规律可循,语言的搭配也存在着某种模式,因此可以采用互信息进行词义标注。由于学术论文都有着明确的文献主题与分类,即使是跨学科的研究一般也不会超过三四个分类号,因此使用义类词典法进行语义标注的消歧是个不错的选择。
(4)句法分析
句法分析采用GLR(Generalized Left to Right)分析。以乔姆斯基的转换生成理论为基础,用LFG(词汇功能语法,Lexical Functional Grammar)作为语法模型范例,从成分结构与功能结构两个层面进行分析。两种结构分别以树图与框图形式呈现,在线性表达与图形表达之间建立映射关系。在转向语义分析时,使用HPSG(中心语驱动的短语结构语法,Head-driven Phrase Structure Grammar)判断主题概念时更明确。LFG的功能结构向逻辑语义转换更容易,因为在功能结构里已存在类似于谓词逻辑的表示方式。两种语法之间根据需要互相转换。
支撑知识抽取的自然语言处理要经过一系列的复杂过程,这一系列的过程虽然是承接关系,不进行分词就没法进行词性标记,不进行词性标记就不可能进行句法分析。但反过来亦有影响,进行词性标记时可能对分词结果进行回溯分析,句法分析时也可能对词性标注进行回溯消歧。因此,这是一系列的技术,只有充分运用这些语言处理的关键技术,才有可能理解自然语言文本,从而进行知识抽取。
基于NLP的知识抽取
知识库按使用对象分为人用知识库与机用知识库。人用知识库是指用自然语言来描述的可直接阅读的知识,一条一条的知识,像结构化的百科词典。机用知识库指用计算机可理解的形式进行存储、供计算机系统(主要包括专家系统)分析推论所用、以解决实际问题的知识库。不同的知识类型应该采用不同的知识表示方式,对于静态概念及概念之间关系用面向对象形式来表示,对命题型问题用一阶逻辑来表示,对于系统流程和实验流程等过程性知识用脚本表示法。
(1)科学文献内容解析与模式判别
科学文献有综述型、实验型、过程型等类型,不同的类型有着不同的写作结构(篇章结构),不同类型的文章有着不同的写作手法(句型与语用),每个问题都有着几种常用的句型,如定义的探讨、应用展望等。从研究的角度来看,论文包括研究目的、研究背景、研究主题、研究方法、研究意义、研究应用、理论基础、研究难点与重点、研究尚未解决的问题等。从具体内容来看,论文包括历史评述、国内外进展(会议、组织、论文、专著、项目)、概念、概念的诠释、特点、分类、关系、方法、技术、功能、系统、结论、待解决问题、举例、应用、实验、数据选取、指标的制定、实验结果、结果的说明。从结构来看,分为二级标题、三级标题、图名表名、图形图像、表格、公式、标注,当然最重要的还是段落正文。目前的元数据只是描述文献辅助信息,如作者、篇名、分类号等,并没有深入到内容进行描述。本研究旨在对学术论文的写作结构、写作手法、句型结构等进行规律性的总结,建立定义、分类、发展历史、关键技术、应用前景、发展趋势等内容元数据。
(2)针对知识抽取的语段分析与语用分析
语段分析分析段内句子间的关系,主要根据关联词和主题概念确定段内句子间的关系。“但是、例如、而且”等关联词都在分析句间关系中有着重要作用。另外,根据实词也能确定句间关系,如果不同句子的中心语概念之间存在上下位关系,那么这两个句子之间很有可能是递进的关系,从研究的角度来讲就是细化、深入。然后进行语用分析,确定句型与句子的功能关系、指示词与句子的功能关系,在此基础上实现对论文类型分析和篇章结构分析。对文本进行分析,分析的程度越深,使用描述的框架越复杂,它所含的信息量就越大。分析是由简单到复杂的过程,而最终的抽取是要由复杂到简单。这一过程类似于机器翻译对源语言的分析与目标语言的生成过程,是不同结构之间进行转换与映射。
(3)选择知识抽取模式
根据不同类型的论文内容元数据,选择不同的知识抽取模式。如对定义的抽取只是从句子的线性表达中抽取,对分类的抽取要借助于主题词表、概念体系结构等,强调分析句子之间的关系,分清概念之间的上下位关系等。抽取了知识既可以按主题进行分类存储,亦可按知识的结构及表现形式分类存储。
知识抽取需要从以自然语言表达的泛化文本中抽出关于事物本质的描述——事物的具体描述包括事物的属性及方法——包括事物的属性、构成、行为以及有关事物的规律,分析出句子描述的对象,对象的名称、特征、功能、父子对象(上下位概念)及其关系,并把这些内容封装到数据库里;用形容词来刻画属性、名词来定义构成、动词来描述方法。这样就可以从属性、构成、方法三个方面来完整地描述一个概念。面向对象知识库可以公式地定义对象为:O=(U,A,C,M),其中U为非空的有限集论域,A为非空的属性有限集,C为构成对象的部件成分集,M为对象的方法集(包括行为、功能)。
利用知识库中的逻辑命题对句子的F-结构(F-Structure)进行深层次挖掘,得到更多的信息,例如通过分析“文本文献”得出“文本是文献的一种存在形式”,而得出的结论也可以追加到以逻辑命题为特征的专家知识库中。
逻辑命题知识库的构建可以按逻辑的对象分类建库,也可以按命题的类型分类建库。逻辑命题知识库存储的是从大规模文本中抽取出的关于人们认识自然界规律的描述,是一些带有真假值的论断。通过自然语言处理,从要分析的文本中抽取出逻辑命题的特征词,到逻辑命题库进行匹配,找到相应的逻辑类型。这其实也是一个专家系统中模型的选择过程。
(4)知识映射与抽取
知识抽取是从语段中抽取知识,这种知识存到数据库里供人来用。然后把用自然语言描述的句子通过知识表示转换成计算机可理解的形式,如面向对象知识库、产生式规则知识库、过程式知识库,不同的知识采取不同的知识表示方式。基本概念采取面向对象知识库,概念之间的关系采用语义网表示,论点、结论等采用命题逻辑表示方式,处理流程、实验过程等采用产生式表示方式。有了这些知识,就可以运用知识推理进行知识创新了,这种创新包括关联规则挖掘、模糊逻辑推理等方法。