信息抽取 (Information Extraction: IE)是把文本里包含的信息进行结构化处理,变成计算机能够处理的结构,实体抽取、关系抽取、事件抽取等都属于信息抽取的范畴。在NLP领域,信息抽取的应用场景十分的广泛,是一个非常重要的基础任务。

作者&编辑 | 小Dream哥

1 传统的信息抽取 

信息抽取是将非结构化的信息转化为结构化信息的过程,可以分为三类:

命名实体识别(NER):从文本中抽取人物、机构、文件名等实体。

关系抽取(RE):得到实体后,抽取实体间的关系,一般抽取得到一个(实体,关系,实体)的三元组。

事件抽取:抽取多个实体和事件关系,一般得到一个trigger和多个arguments的多元组。

很多时候,信息抽取会包括上面的几种,例如上面的三元组抽取,会包括实体抽取和关系抽取。传统的做法包括pipline和joint方法:

pipline方法:先抽取实体再抽取关系,就像一个流水线一样。这种方法容易在关系抽取时引入实体抽取时的误差,从对整体效果造成不好的影响。

joint方法:即通过类似于端到端的方法,一次性抽取出实体和关系,避免误差的累积。

但是上述两种方法都无法处理一些复杂的问题,例如,“乔布斯在1977年至1983年担任了苹果公司的CEO,在1986年至1996年担任皮克斯动画工作室的CEO”。这里存在7个实体,相互间都有关系,非常复杂。传统的信息抽取方法难以处理。

今天我们介绍基于阅读理解的信息抽取,能够较好的处理一些复杂的问题,特别是在抽取一些比较长的信息时,效果比较明显。

2  基于阅读理解的信息抽取

先来回顾一下NLP中“机器阅读理解”这个任务。机器阅读理解是给定一段文本Paragraph和问题Question,得到答案Answer。通常假定Answer就包含在原文中,因此机器阅读理解任务的目标就是得到一个span(start, end),start表示Answer的开始字符在Paragraph中的位置,end表示Answer的结束字符在Paragraph中的位置。

在BERT出来之前,机器阅读理解主要用LSTM等特征抽取分别对Paragraph和Question进行表征,抽取特征。再将二者的特征进行一些运算,得到相应的输出表征。这里不做详细的介绍,我们介绍今天的重点,利用BERT来做基于阅读理解的信息抽取

3 基于BERT的方案

如上图所示,展示了如何用BERT来做信息抽取任务的结构图。注意一下几点即可:

1.将Question和Paragraph分别作为BERT的text1和text2输入。

2.start/end span在Paragraph对应的输出位置表示。

通常输出会通过2个dense网络,接到start输出和end输出序列。

假设Paragraph为“周杰伦出生于台湾”,Question为“周杰伦出生于哪里?”,则laebl为:start[0,0,0,0,0,1,0],end[0,0,0,0,0,0,1]。

将上述start输出和end输出序列接一个sigmod层,然后用binary_crossentropy函数即可进行训练。

如果想要输出一个Answer是否正确的概率,可用将[CLS]的输出表征利用起来,非常的简单。

总结

怎么样?用BERT来处理问题,通常非常的直接和简单,不需要接特别复杂的下游网络就能够取得不错的效果。这是BERT的优势,大巧不工。感兴趣的同学可以自己实践一下。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"

下期预告:暂无

知识星球推荐

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?

转载文章请后台联系

侵权必究

往期精选

GitHub 加速计划 / be / bert
37.61 K
9.55 K
下载
TensorFlow code and pre-trained models for BERT
最近提交(Master分支:2 个月前 )
eedf5716 Add links to 24 smaller BERT models. 4 年前
8028c045 - 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐