【NLP】如何利用BERT来做基于阅读理解的信息抽取
信息抽取 (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进入一个全新发展高度。你怎么不深入的了解?
转载文章请后台联系
侵权必究
往期精选
更多推荐
所有评论(0)