事件作为信息的一种表现形式,其定义为特定的人、物在特定时间和特定地点相互作用的客观事实。事件抽取是指从非结构化信息中抽取出用户感兴趣的事件,并以结构化呈现给用户。如下图所示: 目前NLP主流方法是通过深度学习来进行事件抽取。使用深度学习必须要有人工标注好的语料,即人工阅读每篇语料文章,如果文章中出现了事件,就对各个事件要素打上标签,如上图中有事件时间、人物、公司和职位等要素,需要一一进行标注,本文关注如何提升事件抽取标注语料的效率问题。通过以上的描述,可以发现对事件抽取语料人工标注时,有一个明显的问题:一篇语料在标注完成后才知道是否含有事件,而标注有事件的语料才有意义。同样是标注10000篇语料,若标注人员A的10000篇语料中都含有事件,那么A标注完成就得到了10000篇标注好的语料。而标注人员B的10000篇语料中只有一半含有事件,那么B标注完成后只能得到5000篇标注好的语料。标注一篇语料大约10分钟,那么B标注人员花了800多个小时进行标注,却没有得到相应的产出。由此可见,提升事件抽取的标注效率,要求标注时尽量标注含有事件的语料,不开空枪。
从百万级以上的语料中筛选出有事件的语料是一个巨大挑战,因为标注的本来目的就是为了训练模型来抽取事件,所以很自然考虑无监督学习的方法来实现筛选。比较容易想到的方法是通过关键词来对含有事件语料进行过滤:准备关键词词典,只对含有关键词的文本进行标注。但是由于自然语言表达灵活,导致实践效果不佳,可能会出现两个问题:1、不能整理出准确的词典;2、通过词典会匹配上其它内容。词的上一级是句子,因此可以考虑利用句子间的语义相似性来进行筛选工作,将未标注的文档拆分成句子和少量标注好含有事件要素的句子进行相似性计算,如果未标注的句子和某个标注好的句子语义上相似,就可以认为它也含有事件,从而认为含有该句的语料更具有标注价值。
要计算两个句子的相似性,可以考虑通过余弦距离公式来计算,公式如下:计算结果越大,说明两个句子语义上越相近。下一步是考虑如何将句子映射成向量,映射向量的质量关系计算的结果,作者在这里考虑BERT[1]模型对句子来映射成向量,BERT是谷歌开发的预训练语言模型,该模型能高效抽取文本信息,把输入的文本转化成特征向量,在11项不同NLP测试中取得最佳成绩。因为不同事件的主体一般是不一样的,张三可以去任职,李四也同样去可以任职,但是两个实体的向量表示是不同的,可能会影响整句向量的计算结果,这种干扰需要排除。整个计算流程如下所示:在上图的步骤中,句子转成向量的质量关系到整个提升效果,以下示例如何将一个句子转成向量:通过在标注工作实践中发现,对语料随机进行标注时,含有事件的语料与不含事件的语料的比例大约是1:10,即需要阅读10篇语料文本才能对1篇语料进行有效标注,经过如上步骤处理排序后,含有事件语料与不含事件语料的比例提升到1:3,不含事件的语料阅读量大大的减少了,从而有效的提升了标注效率。参考文献:[1]DevlinJ, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectionaltransformers for language understanding[J]. arXiv preprint arXiv:1810.04805,2018. / END / 点击图片,查看往期精彩