【文本信息抽取与结构化】深入了解关系抽取你需要知道的东西

常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式。这一点在知识图谱、信息抽取、文本摘要这些任务中格外明显。不同的任务的差异在于目标的转化形式不一样,因而不同的任务难度、处理方式存在差异。

这个系列文章【文本信息抽取与结构化】,在自然语言处理中是非常有用和有难度的技术,是文本处理与知识提取不可或缺的技术。

本篇介绍如何从文本中抽取出两个或者多个实体之间的关系,即关系抽取。

作者&编辑 | 小Dream哥

关系抽取概述

在前面的文章中,我们介绍了将文本结构化的大致过程以及信息抽取的、涉及到的技术,却没有介绍具体的技术细节。接下来我们来全面而细致的介绍相应的技术,今天我们关注关系抽取。

所谓关系抽取,就是抽取文本中两个或者多个实体之间的关系。例如:

中国的首都是北京

关系抽取即是从上述文本中,抽取出如下的实体关系的任务:

<中国,首都,北京>

关系抽取的方法大概有以下几类:

1.基于模板的方法

基于规则

基于依存句法

2.监督学习

机器学习

深度学习(pipline vs joint model)

3.半监督/无监督学习

Bootstrapping

Distant supervision

Unsupervised learning from web

下面我们一一来介绍这些方法。

基于模板的方法

1)基于自定义规则

通常来说,在语义上,表达两种实体的关系都有一些特定的说法,例如刚才的例子,描述国家和首都通常都会有这样的模式:

<国家>的首都/首付是<首都>

因此,基于自定义规则的方法,可以总结某类关系常用的说法,然后基于这些说法提炼出规则/正则表达式来进行关系抽取。

2)基于NER标签

很多时候,特定的关系是在某些特定的实体之间,例如:

1.首都(国家,城市)

2.创作(歌手,歌曲)

3.写作(作家,小说)

结合NER标签与具体的规则,常常能够取得不错的关系抽取效果。

此外,基于句法关系等模板的方法,这里不再详述。基于规则的方法有如下的优缺点:

优点:

1.准确率高

2.可以为特定领域定制

3.启动快,可以在小规模数据集上实现

缺点:

1.召回率低

2.特定领域的规则通常需要专家构建

3.难以维护

4.可移植性差

2  监督学习方法

1)传统机器学习

传统机器学习进行关系提取通常基于一些分类模型,包括朴素贝叶斯,SVM等。为了提高效率,通常会训练两个分类器,第一个分类器是1/0分类,判断命名实体间是否有关系;第二个分类器是多分类器,第一个分类器判断有关系再输入到这个分类器,预测关系的类别。这样做能够先排除大多数的实体对,进而加快分类器的训练过程。

基于传统机器学习方法的标准流程是:

1.预先定义好想提取的关系集合

2.定义或选择相关的命名实体集合

3.寻找并标注数据

4.选择有代表性的语料库

5.命名实体标记

6.实体间的关系标注

7.分词训练、测试、验证集

8.涉及特征

9.选择并训练分类器

10.评估结果

目前,用于关系抽取最多也是最有效的监督学习是深度学习的方法,所以这里就不多介绍机器学习相关的算法,我们来着重介绍深度学习的算法。

2)深度学习的方法

基于深度学习的关系抽取目前主要有两种方法:Pipline Method和Joint Method。

Pipline Method,流水线方法:输入一个句子,首先进行命名实体识别,然后对识别出来的实体进行两两组合,再进行关系分类。

流水线的方法存在蛮大的缺点,例如:

1.错误传播,实体识别模块的错误会传播到后面的分类模块;

2.忽略了两个子任务之间存在的关系。例如前面“中国的首都是北京”的例子,如果存在“首都”关系,那么前一个实体必然是国家类别,后一个实体比如是城市类别。流水线的方法,忽略了这些信息;

3.产生了没必要的冗余信息,由于需要对识别出来的实体进行两两配对,然后再进行关系分类;那些没有关系的实体对就会产生多余的信息,提高错误率。

Joint Method,即联合抽取方法,则跟流水线的方法不同,基于流水线方法的诸多缺陷,Joint Method能够通过一个实体识别和关系分类的联合模型,直接得到有关系的实体三元组。

Joint Method主要分为两个流派,基于参数共享(Parameter Sharing)和基于标注策略(Tagging Policy)两类。

基于基于参数共享(Parameter Sharing)的联合抽取方法,可参考这一篇论文:

Suncong, Zheng, Yuexing, et al. Joint entity and relation extraction based on a hybrid neural network[J]. Neurocomputing, 2017.

如上图所示,是这种方法的网络结构框图。每个词都会被映射到一个实体标记(BILOS:Begin Inside Last Outside Single),它包含了改字在实体中的位置信息。NER模块没有用CRF,而是额外用了一层LSTM来解码双向LSTM编码出来的Hidden state,并建模它和实体标记之间的关系。该模块的损失函数如下:

关系分类模块采用CNN模型,处理BiLSTM的Hidden state并输出关系类别。该模块的损失函数如下:

基于标注策略(Tagging Policy)的联合抽取方法,可参考这一篇论文:

S. Zheng, F. Wang, H. Bao, Y. Hao, P. Zhou, B. Xu, Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme, Acl. (2017).

在这篇论文中,将实体识别和关系分类两个问题,转化为一个序列标注的问题,然后通过一个端对端的神经网络模型直接得到关系实体三元组。

他们提出的这种新的标注策略主要由下图中三部分组成:

1)实体中词的位置信息{B(实体开始),I(实体内部),E(实体结尾),S(单个实体)};

2)关系类型信息{根据预先定义的关系类型进行编码};

3)实体角色信息{1(实体1),2(实体2)}。注意,这里只要不是实体关系三元组内的词全部标签都为"O"。

如上图所示,“B-CP-1"表示这个词是一个实体的begin,同时这个实体属于关系CP的第一个实体。

与典型的用LSTM进行实体抽取的模型差异在于,这个模型对损失做了一定的修改,如下图所示:

当标签为"O"时,就是正常的目标函数,当标签不是"O"时,即涉及到了关系实体标签,则通过α来增大标签的影响。实验结果表明,这个带偏置的目标函数能够更准确的预测实体关系对。

关于关系抽取的基本方法,到这里就介绍的差不多,希望读者能有所收获,下篇我们继续介绍最新的关系抽取模型。

总结

文本信息抽取与结构化是目前NLP中最为实际且效益最大的任务,熟悉这个任务是一个NLP算法工程师必需要做的事情。

(0)

相关推荐

  • 手把手教你解决90%的NLP问题

    作者:Emmanuel Ameisen 编译:ronghuaiyang 导读 利用机器学习方法来理解和利用文本,从最简单的到state-of-the-art,由浅入深,循序渐进. 文本数据到处都是 无 ...

  • 金融知识图谱的构建与应用

    编辑整理:朱瑞杰 出品平台:DataFunTalk.AI启蒙者 导读:金融机构在过去积累了大量的数据,包括结构化数据和非结构化数据.如何利用这些数据来构建金融知识图谱,并将构造好的知识图谱应用到具体的 ...

  • NLP 事件抽取综述(中)—— 模型篇

    本系列文章主要分享近年来事件抽取方法总结,包括中文事件抽取.开放域事件抽取.事件数据生成.跨语言事件抽取.小样本事件抽取.零样本事件抽取等.主要包括以下几大部分: 定义(Define) 综述(Surv ...

  • 南京大学提出CPD:通过视频-文本对匹配的视频预训练模型

    作者:南京大学教授.博士生导师 王利民 本文介绍南京大学计算机系媒体计算组于2020年初公开到arxiv上的一篇文章: CPD (Learning Spatiotemporal Features vi ...

  • 浅析深度学习在实体识别和关系抽取中的应用

    选择"星标"公众号 重磅干货,第一时间送达! 命名实体识别 命名实体识别(Named Entity Recognition,NER)就是从一段自然语言文本中找出相关实体,并标注出其 ...

  • 统计学习方法三要素中模型和算法的区别

    统计学习方法三要素中模型和算法的区别 在读李航的<统计学习方法>,不太清楚其中统计方法三要素的模型和算法这两个的区别, 他们不是都在找一系列的分类模型,然后通过策略中的准则来求解最优的模型 ...

  • 陈丹琦新作:关系抽取新SOTA,用pipeline方式挫败joint模型

    本文转载自:机器之心  |   编辑:魔王.小舟 端到端关系抽取涉及两个子任务:命名实体识别和关系抽取.近期研究多采用 joint 方式建模两个子任务,而陈丹琦等人新研究提出一种简单高效的 pipel ...

  • 【文本信息抽取与结构化】详聊如何用BERT实现关系抽取

    常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式.这一点在知识图谱.信息抽取.文本摘要这些任务中格外明 ...

  • 【文本信息抽取与结构化】详聊文本的结构化【下】

    常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式.这一点在知识图谱.信息抽取.文本摘要这些任务中格外明 ...

  • 【文本信息抽取与结构化】详聊文本的结构化【上】

    常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式.这一点在知识图谱.信息抽取.文本摘要这些任务中格外明 ...

  • 【文本信息抽取与结构化】目前NLP领域最有应用价值的子任务之一

    常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式.这一点在知识图谱.信息抽取.文本摘要这些任务中格外明 ...

  • 【信息抽取】如何使用BERT进行关系抽取

    事物.概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中.为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开. 然而,随着互联 ...

  • 训练结构化思维图式:定主题、定结构、填信息,思维清晰表达清晰

    生活工作离不开说话,都知道要"少说多听",不过一是逆人性难以做到少说,二是需要说的时候也不得不说,为此训练说话表达是基本功. 看似人人都会说话,不过坦诚一点,会承认这个说话效果因人 ...

  • 结构化文本 (ST) 编程基础

    在本文中,我们将讨论利用结构化文本进行 PLC 编程的基础知识. 作为IEC-61131 PLC 编程语言之一,结构化文本或只是ST基于并类似于 Python 或 Java 等传统编程语言.与梯形逻辑 ...

  • 程序员必备的思维能力:结构化思维

    在日常工作中,我们时常会碰到这样的情况,有的人讲一件事情的时候逻辑非常混乱,说了很多事情的罗列,却说不到重点.有的人写代码,本身的业务逻辑并没有多复杂,但呈现出的代码却像一堆线团,混乱不堪,无法理解. ...

  • 结构化思维:如何进行高效沟通和思考?

    结构化思维是最值得我们学习的一种能力.它应用广泛,在沟通解决问题和知识学习中都需要用到:而且容易培养,属于沟通能力中占比较大的能力. 1 我们所处的互联网时代,对我们提出了碎片化学习的要求.结构化思维 ...