其他分享
首页 > 其他分享> > 斯坦福Introduction to NLP:第十讲关系抽取

斯坦福Introduction to NLP:第十讲关系抽取

作者:互联网

最近需要调研NLP中的关系抽取任务
找了一篇RE的综述,关于早期研究的介绍较为笼统,因此找到斯坦福的自然语言处理入门课程学习。
课程是2012年的,比较早,正好学习一下早期的RE模型。
看视频的过程中参考了这篇博客:斯坦福大学-自然语言处理入门 笔记 第十课 关系抽取(relation extraction)
相关资源:


1. 简介

关系抽取一般是指抽取关系三元组(Resource Description Framework (RDF) triples)而不是抽取复杂关系。
在这里插入图片描述
为什么进行关系抽取?

下面是一个QA的例子

The granddaughter of which actor starred in the movie “E.T.”?
(acted-in ?x “E.T.”)(is-a ?y actor)(granddaughter-of ?x ?y)

要回答“哪个演员的孙女参演了E.T?”这个问题,需要提取以下三个三元组:

下面是关系抽取任务中一些常见的关系:
17 relations from 2008 “Relation Extraction Task”
那么如何进行关系抽取呢?
在使用神经网络之前,主要有

  1. 人工定义模式(Hand-written patterns)
  2. 监督机器学习(Supervised machine learning)
  3. 半监督机器学习(Semi-supervised and unsupervised)
    • Bootstrapping (using seeds)
    • 远程监督(Distant supervision)
    • Unsupervised learning from the web

2. 利用模式(pattern)进行关系抽取

2.1 抽取IS-A relations的规则

举个例子,"A, such as B"中"such as"这个短语就表名了A与B之间存在这个类与实例的包含关系。
在这里插入图片描述
(Hearst, 1992): Automatic Acquisition of Hyponyms
在这里插入图片描述

2.2 利用规则抽取更丰富的关系

主要思想:特定关系会发生在特定实体之间,如:

所以使用命名实体标签(named entity tag)来帮助我们进行关系抽取。
2个特定实体间的关系是可列举的
比如“药物”实体与“疾病”实体之间的关系可能是“治愈”,“预防”,“导致”等等
在这里插入图片描述
但人和组织这两个实体之间的关系,就不太可能是“治愈”。

比如说谁在什么组织担任什么职务?手动列举出所有可能的句式
在这里插入图片描述

2.3 总结

3. 使用监督学习的方法

3.1 训练流程

为什么训练了两个分类器?

3.2 构建用于关系抽取的词特征

以下面这句话为例,来提取特征。
在这里插入图片描述

缩写含义
NPnoun phrase
PPprepositional phrase
VPverb phrase

在这里插入图片描述

最终提取出了如下特征:
在这里插入图片描述
在这里插入图片描述

3.3 有监督方法的分类器与评估

可以使用任何分类器:
最大熵、朴素贝叶斯、SVM
在训练集(training set)上训练,在发展集(dev set)上调试,在测试集(test set)上测试

通过计算precision,recall以及F1评估分类结果
在这里插入图片描述

3.4 总结

4. 使用半监督和非监督关系抽取

4.1 Relation Bootstrapping (Hearst 1992)

收集一组具有关系R的种子对(seed pair)
迭代:

下面是一个实例
在这里插入图片描述
下面是另一篇文章中的实例
在这里插入图片描述
Bootstrapping 算法的输入少量实体关系数据作为种子,找到更多有某种关系的相关数据。
存在的问题是利用少量的种子数据在大规模数据中搜寻出来的结果,是否是我们真正想要的,会不会存在歧义的数据,这是 Bootstraping 算法的语义漂移问题。

4.2 Snowball

参考文献:E. Agichtein and L. Gravano 2000. Snowball: Extracting Relations from Large Plain-Text Collections. ICDL
在这里插入图片描述
使用类似的迭代算法
也和上面一样利用例子(instance)抽取特征,构建具有相似前缀、中间、后缀和的提取模式

4.3 远程监督(Distant Supervision)

参考文献:
[1] Snow, Jurafsky, Ng. 2005. Learning syntactic patterns for automatic hypernym discovery. NIPS 17
[2] Fei Wu and Daniel S. Weld. 2007. Autonomously Semantifying Wikipeida. CIKM 2007
[3] Mintz, Bills, Snow, Jurafsky. 2009. Distant supervision for relation extraction without labeled data. ACL09

远程监督的思想:
如果两个实体在已知知识库中存在,并且两者有相对应的某种关系(Freebase中罗列的关系之一),那么当这两个实体在其他非结构化文本中存在的时候也能够表达这种关系。认为同时包含这两个实体的所有句子也在表达这种关系,可以将这些句子作为这种关系的训练正例。

基于这种强有力的假设,远程监督算法可以利用已有的知识库,给外部非结构化文本中的句子标注某种关系标签,相当于自动语料标注,能够获取大量的标注数据供模型训练。

远程监督的两种范式

有监督的做法
在这里插入图片描述

  1. 对每个关系(relation)中的每一对元组,在语料库中找到同时包含这两个实体的句子
  2. 抽取高频的特征(语法分析、单词等)
  3. 用几千个模式来训练有监督分类模型

4.4 无监督关系抽取

参考文献
M. Banko, M. Cararella, S. Soderland, M. Broadhead, and O. Etzioni. 2007. Open information extraction from the web. IJCAI

在这里插入图片描述
开放信息抽取:
在没有训练数据和关系列表的情况下,从网页中抽取关系

  1. 利用语法数据(parsed data)训练一个“值得信任的元组”的分类器
  2. 抽取所有名词短语之间的关系,并且如果分类器认为值得信任的话,就将之保留
  3. 基于这种关系出现的频率来对该关系排序
    (这一块儿完全没看懂)

4.5 半监督和无监督RE模型的评估

因为抽取的都是来自互联网语料的新关系,因此我们无法计算准确率(不知道哪些是正确的,即不知道真正例有多少)和召回率(不知道那些是错过的,即不知道假反例有多少)
我们只能大致计算一个准确率。计算的方法是,从结果中随机抽取一些关系,人工来判断这些关系是否是正确的。
在这里插入图片描述
我们也可以基于不同水平的recall来计算precision(Can also compute precision at different levels of recall.)

标签:关系,NLP,抽取,训练,Introduction,实体,斯坦福,分类器,监督
来源: https://blog.csdn.net/qq_39610915/article/details/118281771