自然语言理解与行业知识图谱:概念、方法与工程落地
上QQ阅读APP看书,第一时间看更新

2.2.2 语义类任务

语义分析(Semantic Parsing)任务是自然语言理解的经典任务,其本质是对文本进行结构化或标签化。经典语义分析针对不同层次的语言单位,任务各不相同。在词的层面上,语义分析的基本任务是词义消歧;在句子层面上,关注的问题是语义角色标注;在篇章层面上,基本任务主要包括指代消解和共指消解。随着知识图谱的发展需要,语义分析任务进一步增加了信息抽取、信息融合和关联推理任务。这一小节将这类任务进行详细介绍。

1.经典语义分析

自然语言处理的经典语义分析任务包括词义消歧(Word Sense Disambiguation)、语义角色标注(Semantic Role Labeling)和指代消解(Anaphora Resolution)等。

词义消歧任务指为多义词在当前语境下赋予准确词义,消除词义理解偏差设立的任务。现有的基本方法包括词典消歧、规则消歧以及基于大规模语料的机器学习消歧方法。机器学习消歧方法的基本思路是,由于一个词的不同语义伴随着不同的上下文而发生,因此结合词的上下文分布特征、词性特征以及词频特征等,同时结合分类模型来完成不同词义的划分,从而实现消歧。目前比较常用的方法包括贝叶斯分类器和最大熵模型。

语义角色标注是公认的解析句义结构的有效方法。通过分析句子中的谓词-论元结构,标注语义角色类型。在句子中,谓词所支配的论元作用各不相同,这些论元就是语义角色。常见的语义角色包括施事、受事、影响等,它们都属于由谓词支配的核心论元。语义角色标注的基本流程为:句法分析→候选论元剪除→论元辨识→论元标注→后处理。目前语义角色标注分析的实用算法较少,但可以利用的资源包括英语语义角色标注资源(比如FrameNet、ProBank和NomBank等)和中文语义角色标注资源(比如来自由核心论元和辅助论元表示的宾州树库等)。语义角色标注也面临一些问题,主要体现在两个方面:一是过于依赖句法分析的结果;二是角色标注方法领域适应性太差。这些问题是导致目前语义角色标注实用性不高的原因。

篇章层面,语义分析任务主要包括指代消解(Anaphora Resolution)和共指消解(Corefer-ence Resolution)。想要正确地理解篇章含义,需要首先识别起衔接作用的词汇成分,其中起衔接作用的词性比如代词和名词。比如“牛仔很忙,他天天熬夜”,他就是指代牛仔,通常表示指称义,需要进行指代消解。根据指向,指代可分为回指和预指,分别用于指代上文和下文的关系。因此指代消解任务则需要篇章内容做支撑。共指一般意义上可以脱离上下文存在,但为了更好地理解语义却不能脱离上下文,比如“能穿多少穿多少?”这句话,要结合上下文分析“多少”的具体指代对象。因此,共指消解任务包括:指出哪些词在做指代;指代的是上文哪个概念或实体;歧义句如何理解等。

如果想要获取语义分析更为详细的说明,可以参考相关书籍和文章介绍。

2.信息抽取

信息抽取(Information Extraction)在20世纪70年代后期出现在自然语言处理领域,是指自动地从文本中发现、抽取以及合并信息,从而将非结构化数据转化为结构化数据,这为知识图谱的构建奠定了基础。信息抽取主要包括概念抽取、实体(术语)抽取(Terminology/Glossary Extraction)、实体链接(Entity Disambiguation)、关系抽取(Relationship Extraction)、事件抽取(Event Extraction)及片段(对象)抽取等。其中,实体抽取面向特定行业,指发现多字组词的过程,一般与命名实体识别的检测和类型分类关系密切。前面介绍的命名实体识别的抽取,适用于实体或术语抽取任务,这里将不再赘述。实体链接是关系抽取、信息融合的基础,事件抽取和片段抽取属于更高一层的抽取任务。这一小节将对这部分内容进行详细论述。

(1)概念抽取

概念抽取是人工定义的概念类型体系,或从实体集中抽象出概念的结构化表示。以一个知识图谱表示KG=(C, E, P, L, T)为例进行说明。C和E分别代表概念与实体的集合;P={p|p∈Pd∪p∈R}是所有属性和关系构成的集合(其中,Pd和R分别表示属性集合和关系集合);L为属性值集合;最后是T={t|h∈H∪f∈F},其中H是基于概念间关系或概念与实体隶属关系形成的三元组;F代表各类事实三元组。图2-4给出了一个经济体的概念体系的简单示意图,其中概念为产品、行业这些一级类别,还包括手机、电脑、电子信息这些二级类别,以及相关实体、属性和属性值、关系等。这为后续介绍的资源描述框架(Resource Description Framework, RDF)、网络本体语言(Web Ontology Language, OWL)等概念表示、关联推理奠定基础。

图2-4 知识图谱结构的简单示意图

概念抽取任务是获取概念、概念属性以及概念之间的隶属关系,从而形成知识图谱所需要的概念本体。概念之间也有同义关系和上下位关系(也称为隶属关系)等,比如OWL中定义的数据型属性[2]。与实体之间的关联关系(即对象型属性),共同构成了广义的属性。概念本体通常以分类树的形式存在,因此确定层次关系的关键就是构建分类树,方法大致包括基于模式归纳或百科加工[3]。模式归纳属于从下至上获取概念体系的方法,而百科加工则属于从上而下获取概念体系的方法。进一步,还可以通过启发式规则来补充和完善概念本体。

(2)实体链接

实体链接又称为实体消歧,是后续关系抽取、问答、搜索等任务的前提。该任务是给定实体指称项及背景文档,通过模型计算,将实体指称项链接到已有知识库的对应实体上,如图2-5所示,将“乔丹”和“公牛”两个指称项分别链接到知识库中篮球队“公牛”和运动员“乔丹”上。模型计算过程要考虑到数据来自不同的知识库体系,实体名称、实体携带属性以及其结构化信息,都可以作为有用特征。同时,通过类型或规则限制,缩小匹配的实体范围。通过融合相关信息,筛选出候选实体。候选实体生成和候选实体排序技术,通常归结为文本匹配问题或是判断两个实体是否等同的文本二分类问题。基于同义词典、字符串相似度和实体热度等,在知识库中搜索出最符合的实体,并获取实体属性以及关联信息。

图2-5 实体链接任务基本过程和任务示例

现有的实体链接分为两大类:协同实体链接和非协同实体链接。协同实体链接是近些年实体链接的主流算法。非协同实体链接算法较为简单,由于忽略了实体指称项之间的耦合度,每一个实体指称项都独立处理,在指称项上下文语义不够丰富的情况下模型容易出错。实体链接中常见的算法大致包括了概率方法、基于图的方法、基于学习的方法和基于推理的方法等。

语言学中存在一词多义和多词一义的现象,歧义性和多样性是自然语言的固有属性,也是实体链接的根本难点。如何挖掘更多、更有效的消歧证据,设计出更高性能的消歧算法是实体链接系统的核心研究问题。

(3)关系抽取

关系抽取任务是从非结构化自由文本中抽取出实体及实体间的关系。如表2-3所示的样例,从一句话中抽取出实体以及预测两个实体之间的父子关系,比如文心雕龙和刘勰之间的关系类型是“作者”,而贵阳银行和商业银行间关系是“公司性质”,通过简化可以表示为< topic, relation, answer>三元组形式。

表2-3 关系抽取任务示例

关系抽取分为限定领域(Close Domain)和开放领域(Open IE)两类,也有人根据语用需求,将关系抽取变为槽填充(Slot Filling)问题,也就是将待抽取的关系设置为一个槽位,通过知识三元组予以匹配填充。20世纪80年代涌现出大量的国际性测评会议,如MUC、ACE等,其中MUC的组织和召开对关系抽取技术的发展起到了决定性作用。从2000年起NIST组织了ACE测评会议,旨在研究实现文本中实体、关系、事件等内容的自动抽取。与MUC相比,ACE旨在定义一种通用的信息抽取标准,不再限定领域和场景。特别在知识图谱加持下,面向实体的关系抽取得到了长足发展:

①利用已有的实体关系数据,如已有的知识图谱、网络中的链接数据,包括关联开放数据(Linked Open Data,LOD)、RDF等,有效缓解标注数据不足的问题,提升预测质量。

②知识图谱可以视为一个实体关系网络,利用网络内的实体关系推理和挖掘出新的关系,对图谱进行补全。

③知识图谱内可能存在重复的实体,如“手机”和“移动电话”,如何将这些重复的实体进行融合,也是提高图谱可用性的重要工作之一。

总体来说,实体关系的挖掘近些年来获得了大批的研究成果,但关系挖掘的准确性和覆盖面积仍有待提高。

(4)事件抽取

除了上述概念、实体、实体间关系抽取外,有时需要进一步在一定时空范围内抽取一个完整事件的摘要信息,这就是事件抽取。事件抽取任务是对自由文本(如新闻报道、微博、论坛帖子和公文等)中特定类型的事件属性进行自动抽取的过程。事件属性包含事件触发词、事件类型、事件成员和事件成员的角色。因此,事件抽取的结果包括事件发生时间、发生地点和相关实体等信息。图2-6给出了一个完整的事件抽取任务示例:攻击是一个触发词,所触发的事件类型为治安事件。该事件包含四个元素:“2009年”(事件发生时间)、“工厂”(事件发生地点)、“狗”(实体1,事件参与者)、“男子”(实体2,事件受害者),分别对应了事件的四个角色类型和实体名称。

图2-6 事件抽取任务示例

传统的事件抽取一般在封闭域内,事件类型和数目有限,有定义好的模板槽位。开放域的事件抽取,由于不受事件类型数量的限制,不受领域的限制,再加上事件离散化和稀疏性,抽取难度很大。事件抽取的主要流程包括事件触发词抽取和事件元素抽取两个子任务,有时会将两个子任务以串接级联方式来逐个解决。

1)事件触发词标注

主要包含事件触发词的识别。词汇层面的触发词和上下文词,可以从字典(包括触发词列表和同义词字典)中获取,也可以基于句法,从触发词在句法树中的深度,触发词到句法树节点路径、触发词的词组类型中获取。除了识别事件的触发词(一般是动词或者动名词),还需给出事件类型的分类。通常我们通过判断词汇是否是事件触发词,设计事件触发词分类器(Trigger Classifier),将标注任务转化为分类问题。

2)事件元素标注

主要包含事件元素的识别。事件元素包括事件类型、子类型和触发词,需要考虑的因素包括:

①实体类型和子类型、上下文和句法;

②扩展触发词父节点的词组结构;

③实体和触发词的相对位置,句法树中实体到触发词的最短长度(最短路径)等。

在判断各词组是不是事件元素的过程中,完成了事件元素分类和事件元素角色分类任务,从而实现了对元素角色类别的判断。此外,除了识别事件元素以及实现事件元素角色分类外,事件抽取还涉及事件描述词生成、事件属性标注、事件共指消解等任务。进一步可以通过文本生成模型实现事件摘要的抽取与生成。

(5)片段抽取

片段抽取是针对文本内容中各种对象细粒度语义的抽取任务,属于广义的角色标注任务,包括对象描述片段抽取、对象情感角色抽取、对象观点片段抽取等内容,可应用于舆情分析、广告推销、商业机会发现、用户画像和问答系统等市场方向。下面主要介绍两种片段抽取任务:

①对象观点抽取任务。

从评论对象的评论文本或观点文本中抽取出对象-评论观点词组成的二元组。从非结构化的文本中抽取出特定类型的评论对象以及与之相关的观点信息片段。对象可以为实体,也可为非实体目标。观点信息片段可以是对象的属性特征以及对应特征的评论观点等。相关任务可以是给定一个评论对象,则抽取出与之相关的观点片段;或者,在统一的框架下完成评论对象和观点词的联合抽取任务。如下面例子给出的观点抽取任务所示:

样例一:

前人对引文分析问题的研究不足,这个问题也是我们团队取得突破的方向。

抽取表示观点的片段“前人对引文分析问题的研究不足”,但无法获取具体描述的对象是谁,比如究竟是什么方面的不足?是谁的不足?这就需要对观点进行细粒度片段抽取,获得“引文分析”评论对象,以及“前人研究不足”的评论观点片段。

②情感角色抽取任务。

归为细粒度情感分析(Fine-grained Sentiment Analysis)任务,主要是在带有情感倾向的自然文本中找出给定对象的情感倾向或观点。比如情感分析中的情感倾向片段和情感极性等。对于文本中的某个对象,通过对其中的情感描述片段进行抽取并赋予评论观点标签。情感极性分类就是区分评论观点标签是好评还是差评,不同极性的标签展示可通过颜色或形式来区分。

传统的情感分类或角色抽取是比较粗糙的,比如:

样例二:

这款笔记本不方便携带,机器和充电器都太重了。

通过情感任务的分析,可以得到情感倾向是负面的,但获取不到具体的原因,比如为什么这款笔记本不好?细粒度情感分析可以进一步深入到文本中,针对其重要的目标对象给出相应的情感倾向或观点极性。在这个例子中,目标是文本中出现的“笔记本”,它被赋予了特定类型语义的文本片段“不方便携带”。进一步挖掘细粒度角色类型和片段,可以得到目标是命名实体产品,如机器、充电器,它们的对应角色片段是“太重了”。通过上述分析,不仅给出了整句话的情感极性,还对情感评论对象和评论角色片段进行细粒度抽取,从而获取了更丰富的信息。

从上述任务可以看出,片段抽取是一种多个子任务组合的任务,既有对象序列标注子任务,又有对象相关片段标注子任务,以及两者关系抽取或关系分类子任务。因此,没有通用的抽取流程或方法,但可以通过多任务学习来实现。

3.关联推理

图2-7 关联推理任务示例

关联推理也称为知识补全或关联预测。与关系抽取旨在从文本中获取实体之间已知的关系类别不同,关联推理任务主要是在已有的结构化知识内部进行推理,推理出未知的知识(如实体节点、节点关系等),预测语义关系,进而对知识图谱进行补全。此外,实体关联推理的结果还可以辅助实体关系抽取任务,提升实体关系抽取的准确性。

举个例子来说明,在图2-7的示例中,通过常见的实体关联运用图谱内的关系三元组,加上实体文本描述信息,将语义信息引入预测过程从而提高预测的准确性。通过关联推理任务,推理预测出“飞机”和“距离”两个实体类型的关系是“航程”。

此外,语义本身具有网络特性,引入网络结构信息对关联预测同样有帮助。推理可以粗略地分为基于描述的逻辑推理、基于规则的计算推理和基于统计的推理。相关内容可以参考前人的研究成果。

4.信息融合

知识融合(Knowledge Fusion)是指将多个数据源中抽取的知识进行合并、纠错、补全。现实世界中不同数据源的知识处于分散状态,信息源异质性的问题越来越突出。针对一个实体查询,不同的搜索引擎可能返回不同的知识卡片,即便同一个搜索引擎也可能返回多个知识卡片。而我们常常需要一个标准化的唯一结果,所以需要知识融合。此外,知识本身可能存在噪声,比如拼写错误,表达方式差异,或数据结构偏离。因此必须采取一定的融合策略来消除不同信息源的异质性[4]。知识融合技术一般可分为本体匹配(Schema Matching)、实例匹配(Instance Matching)和属性对齐等。在实际运用中,可以考虑本体和实例匹配,实例属性对齐等多种融合角度。

(1)本体匹配

本体匹配任务旨在发现异构数据源概念、实体、属性三个不同层面上的对应关系[5]。目前业界常利用像WordNet语言知识库或定义好的本体结构进行模式匹配,然后将结果根据加权平均的方法整合起来,再利用一些模式进行一致性检查,去除那些导致不一致的对应关系。该过程可循环,直到找不到新的对应关系为止[6]

目前,人们已经提出了各种各样的本体匹配方法,包括启发式方法、概率方法、基于图的方法、基于学习的方法和基于推理的方法。多种匹配方法之间可以进行结合。基于本体的结构,以分而治之的思想对其进行划分获得组块,再从匹配的组块中找出对应的概念和属性。根据这些概念的父、子概念等信息逐渐构建小片段,从中找出匹配的概念,再继续构建新的片段,不断重复该过程。所述匹配主要利用概念、术语、背景知识的相似度计算,结合用户定义的权重策略完成匹配。基于贝叶斯决策风险最小化,在计算相似度时动态结合几种计算方法,能够带来更好的匹配结果。

(2)实例匹配

最近几年随着Web 2.0和语义Web技术的不断发展,越来越多的语义数据具有实例丰富而模式薄弱的特点,促使本体匹配的研究工作慢慢地由模式层转移到实例层。实例匹配任务是评估多源异构知识源之间实例对的相似度,用来判断这些实例是否指向给定领域的相同实体,与实体链接任务相近。

如图2-8所示的例子中,根据“李小龙”这一实例进行相关属性信息的匹配。“姓名”与“中文名”匹配,“出生日期”与“出生年月”匹配,“祖籍”与“故乡”匹配。实例匹配方法通常都是基于实例的各种属性相似性定义,分别计算实例各属性的相似度。进一步根据实例的属性距离加权计算,判断实例匹配的程度,从而完成实例匹配任务[7]

图2-8 实例匹配任务示例

(3)属性对齐

属性对齐是指本体或实例中属性标签消歧、属性值校对合并等任务。通过相似度计算对属性标签聚类和规范化,获得标准的属性名称和属性值。如图2-9所示,通过相似分析发现,“出生日期”“出生”“生日”可以归类为“出生日期”标签,其他标签分别处理。

图2-9 属性对齐与数据类型判别之间的关系

属性对齐任务常常辅助本体匹配或实例匹配任务[8]。由于属性与概念、实体之间存在明显的差异,比如属性标签表达更为灵活,属性结构信息非常缺乏,而在真实数据中,良好的本体也很难获得,因此需要通过一些基础方法实现属性对齐。常用方法主要分为三类:

①基于属性的统一资源标识符(Uniform Resource Identifier,URI)、标签、描述等进行文本之间相似性计算;

②基于本体结构的方法,即计算两个属性在本体中层次结构、关系等方面的相似性;

③基于语义(Semantic)的方法,即利用本体中的语义结构进行模糊推理。

以上方法主要用于不同数据源之间的属性校对或对齐[9]。目前,属性对齐任务没有银弹式方法。