关系抽取: 从文本中抽取两个或者多个实体之间的语义关系。
1 基于模板的关系抽取方法
特点:早期,基于语言学知识,结合语料特点,由领域专家手工编写模板
示例:
1)模板1:[X]与妻子 [Y]
2)模板2:[X]老婆[Y]
利用上述模板在文本中进行匹配,可以获得新的具有“夫妻”关系的实体。 为了进一步提高模板匹配的准确率,还可以将句法分析的结果加入到模板中。
优点:构建简单;可以较快的在小规模数据集上实现关系抽取系统。
缺点:数据规模大时需要耗费领域专家大量的时间;可移植性较差;同时手工构建的模板数量有限,召回率普遍不高。
2 基于监督学习的关系抽取方法
2.1 简单介绍
基于监督学习的关系抽取方法是将关系抽取转化为分类问题,在大量标注数据的基础上,训练有监督学习模型进行关系抽取。
基本步骤:
1)预定义关系的类型
2)人工标注数据
3)设计关系识别所需的特征:一般根据实体所在句子的上下文计算获得
根据计算特征的复杂性,常用特征可以分为:
a. 轻量级:基于实体和词的特征,如实体前后的词、实体类型、实体之间的距离
b. 中量级:基于句子中语块序列的特征
c. 重量级:实体间的依存关系路径、实体间依存树结构的距离以及其他特定的结构特征
4)选择分类模型:如SVM,NN,NB等
5)基于标注数据训练模型
6)对训练的模型进行评估
发展:
传统的基于监督学习的关系抽取是一种依赖特征工程的方法(机器学习方法)。
深度学习的方法不需要人工构建各种特征,其输入一般只包括句子中的词及其位置的向量表示。
2.2 基于深度学习的关系抽取方法
基于DL的关系抽取方法主要有:流水线方法和联合抽取。
2.2.1 流水线方法
流水线方法是将识别实体和关系抽取作为两个分离的过程进行处理;因此关系抽取的结果也依赖于实体抽取的结果
示例:
1)CR-CNN模型
首先,给定输入的句子,CR-CNN模型首先将句子中的词映射到低维向量,每个词的向量包含了词向量和 位置向量 两部分。(这一步类似于词嵌入过程)
然后,模型对固定大小滑动窗口中的词的向量进行卷积操作,为每个窗口生成的新的长度的特征向量。(相当于每个卷积核是一个词的上下文的输入)
接着,对所有的窗口特征向量求最大值,模型得到 整个句子的向量表示 。
最后,进行关系分类:计算句子向量和每个关系类型向量的点积,得到实体具有每种预定义关系的分值。
2)Attention CNNs模型
将注意力机制引入到神经网络中,对反映实体关系更重要的词语赋予更大的权重。
特点:
在输入层,模型引入了词与实体相关的注意力;
在池化层和混合层,引入了针对目标关系类别的注意力。
3)Attention BLSTM模型
模型包含两个LSTM网络,从正向、反向处理输入的句子,从而得到每个词考虑左边和右边序列背景的状态向量;词的两个状态向量通过元素级求和产生词的向量表示。
接着,模型通过注意力层组合词的向量产生句向量, 进而基于句向量将关系分类。
2.2.2 联合抽取方法
联合抽取方法是将实体抽取和关系抽取相结合,在统一的模型中共同优化;可以避免流水线方法存在的错误积累问题,代价就是网络参数会变大。
模型示例:
由三个表示层组成:
嵌入层(词嵌入层)、序列层(基于单词序列的LSTM-RNN层)、依存关系层(基于依赖性子树的LSTM-RNN层)
2.3 基于监督学习的关系抽取方法优缺点
优点:
准确率高,标注数据越多越准确
缺点:
标注数据成本太高
不能扩展新的关系
3 基于弱监督学习的关系抽取方法
3.1 远程监督方法
通过将知识图谱与非结构化文本对齐的方式自动构建大量的训练数据,减少模型对人工标注数据的依赖,增强模型的跨领域适应能力。
基本假设:
如果两个实体在知识图谱中存在某种关系,则包含两个实体的句子均表达了这种关系。
基本步骤:
1)从知识图谱中抽取存在目标关系的实体对
2)从非结构化文本中抽取含有实体对的句子作为训练样例
3)训练监督学习模型进行关系抽取
优点:
可以利用丰富的知识库信息,减少一定的人工标注
缺点:
假设过于肯定,引入大量噪声,存在语义漂移现象
很难发现新的关系
3.2 Bootstrapping方法
优点:
构建成本低,适合大规模构建
可以发现新的关系(隐含的)
缺点:
对初始给定的种子集敏感:比如苹果这个实体有多个含义
存在语义漂移问题
结果准确率较低
缺乏对每一个结果的置信度的计算
4 学习视频
https://www.bilibili.com/video/av54122146/?p=3&t=1062