IE

Information Extraction(2)

关系抽取(一)

Posted by biggan on May 2, 2019

关系抽取(一)

1.什么是关系抽取

 从文本中识别实体并抽取实体之间的语义关系,即给定关系集合$R$,从文本中抽取出满足关系集合R中某一关系的三元组(triples)。

 三元组:由一个实体对$<e1, e2>$和实体之间关系$r$组成,可表示为$r(e1,e2)$或者$(e1, r, e2)$,其中的关系$r$属于给定关系集合$R$。

例如:从下面这段文本中抽取出如下三元组:

International Business Machines Corporation (IBM or the company) was incorporated in the State of New York on June 16, 1911.

  • Founding-year (IBM, 1911)
  • Founding-location (IBM, New York)
2.关系抽取的应用
  • 创建新的结构化知识库(knowledge base)并且增强现有知识库
  • 构建垂直领域知识图谱:医疗,化工,农业,教育等
  • 支持上层应用:问答,搜索,推理等。
3.关系抽取的方法
(1)基于规则方法

1.完全基于规则

 编写句型和关系的对应规则,即满足特定形式的句型即可抽取出相应的关系。

Rule:A located in B $\longrightarrow\longrightarrow$ located in (A, B)

Text:Alibaba located in Hanzhou

triples:located in (Alibaba, Hanzhou)

2.规则+命名实体识别

 基于关系一般发生在特定实体之间的思想,对规则加上实体类别的限定。

Rule:A (Organization) located in B (Loaction) $\longrightarrow\longrightarrow$ located in (A, B)

Text:Alibaba located in Hanzhou

triples:located in (Alibaba, Hanzhou)

3.基于规则方法的优缺点

 人工规则精度高;但是人工成本高、召回率低。

(2)有监督的学习方法

 将关系抽取任务当作分类问题,根据训练数据设计有效的特征,从而学习各种分类模型,然后使用训练好的分类器预测关系。

1.流水线的方法(Pipelined Method)

  • 思想

 输入一个句子,首先进行命名实体识别,然后对识别出来的实体进行两两组合,再进行关系分类,最后把存在实体关系的三元组作为输入。

  • 缺点

 1)错误传播,实体识别模块的错误会影响到下面的关系分类性能;

 2)忽视了两个子任务之间存在的关系;

 3)产生了没必要的冗余信息,有关系的实体会带来多余信息,提升错误率。

2.实体识别和关系抽取联合学习(Joint Learning)

  • 思想

 输入一个句子,通过实体识别和关系抽取联合模型,直接得到有关系的实体三元组。

  • 基于序列标注策略

    2017年ACL论文《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》

    对句子中每一个单词按如下方式进行标注:

     1)实体中词的位置信息{B(实体开始),I(实体内部),E(实体结尾),S(单个实体)};

     2)关系类型信息{根据预先定义的关系类型进行编码};

     3)实体角色信息{1(实体1),2(实体2)}。

    img

     根据标签序列,将同样关系类型的实体合并成一个三元组作为最后的结果,如果一个句子包含一个以上同一类型的关系,那么就采用就近原则来进行配对。

    目标函数

    img

    问题:

    一个关系,对应有多个主体,多个实体,主体和实体怎么配对?

3.有监督方法的评估

 计算precision,recall以及F1。

4.有监督方法的问题

 该方法的问题在于需要大量的人工标注训练语料,而语料标注工作通常非常耗时耗力。

(3)半监督的学习方法

 主要采用Bootstrapping进行关系抽取。对于要抽取的关系,该方法首先手工设定若干种子实例,然后迭代地从数据中抽取关系对应的关系模板和更多的实例。

 具体步骤:

  • 收集一些关系为R的种子对(seed pair)

  • 迭代

    • 找到包含这些单词对的句子
  • 找到这些单词对的上下文,泛化成模式(pattern)

    • 找到新的单词对
(4)无监督的学习方法

 基于假设:拥有相同语义关系的实体对拥有相似的上下文信息。

 利用每个实体对所对应的上下文信息来代表该实体对的语义关系,并对所有实体对的语义关系进行聚类。

 具体步骤:

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

参考链接

https://blog.csdn.net/qq_27009517/article/details/80065789

https://blog.csdn.net/sinat_36972314/article/details/80266698