NLP&NLU

通俗讲解关系抽取的常见方法

2020-03-25  本文已影响0人  top_小酱油

信息抽取是NLP中非常重要的内容,而关系的抽取在知识图谱等领域应用广泛,也是非常基础的NLP任务,今天给大家介绍一下。

关系提取是指从文本中提取语义关系,这种语义关系通常发生在两个或多个实体之间。这些关系可以是不同类型的。" Paris is in France "表示巴黎与法国之间的" is in "关系。这可以用三元组(Paris, is in, France)来表示。

信息抽取(Information Extraction, IE)是从自然语言文本中抽取结构化信息的领域。该领域用于各种NLP任务,如创建知识图、问答系统、文本摘要等。关系抽取本身就是IE的一个子域。

关系提取有五种不同的方法:

  1. 基于规则的关系提取
  2. 弱监督关系提取
  3. 监督关系提取
  4. 模糊监督关系提取
  5. 无监督的关系提取

我们将在一个较高的层次上讨论所有这些问题,并讨论每个问题的优缺点。

基于规则的关系提取

许多实体的关系可以通过手工模式的方式来提取,寻找三元组(X,α,Y),X是实体,α是实体之间的单词。比如,“Paris is in France”的例子中,α=“is”。这可以用正则表达式来提取。

句子中的命名实体 句子中的词性标记

仅查看关键字匹配也会检索出许多假阳性。我们可以通过对命名实体进行过滤,只检索(CITY、is in、COUNTRY)来缓解这种情况。我们还可以考虑词性(POS)标记来删除额外的假阳性。

这些是使用word sequence patterns的例子,因为规则指定了一个遵循文本顺序的模式。不幸的是,这些类型的规则对于较长范围的模式和具有更大多样性的序列来说是不适用的。例如:“Fred and Mary got married”就不能用单词序列模式来成功地处理。

句子中的依赖路径

相反,我们可以利用句子中的从属路径,知道哪个词在语法上依赖于另一个词。这可以极大地增加规则的覆盖率,而不需要额外的努力。

我们也可以在应用规则之前对句子进行转换。例如:“The cake was baked by Harry”或者“The cake which Harry baked”可以转化成“Harry bake The cake”。然后我们改变顺序来使用我们的“线性规则”,同时去掉中间多余的修饰词。

优点

缺点

弱监督的关系提取

这里的思想是从一组手工编写的规则开始,通过迭代的方式从未标记的文本数据中自动找到新的规则。或者,你可以从一个种子元组开始,用特定的关系描述实体。例如,seed={(ORG:IBM, LOC:Armonk), (ORG:Microsoft, LOC:Redmond)}表示具有“based in”关系的实体。

Snowball是一个相当古老的算法示例,它可以实现以下功能:

  1. 从一组种子元组开始(或使用一些手工规则从未标记的文本中提取一组种子)。
  2. 从未标记的文本中提取和元组匹配的共现词,并用NER(命名实体识别器)标记它们。
  3. 为这些事件创建模式,例如“ORG is based in LOC”。
  4. 从文本中生成新的元组,例如(ORG:Intel, LOC: Santa Clara),并添加到种子集中。
  5. 执行步骤2或终止并使用创建的模式进行进一步提取

优点

缺点

有监督的关系提取

进行监督关系提取的一种常见方法是训练一个层叠的二分类器(或常规的二分类器)来确定两个实体之间是否存在特定的关系。这些分类器将文本的相关特征作为输入,从而要求文本首先由其他NLP模型进行标注。典型的特征有:上下文单词、词性标注、实体间的依赖路径、NER标注、tokens、单词间的接近距离等。

我们可以通过下面的方式训练和提取:

  1. 根据句子是否与特定关系类型相关或不相关来手动标注文本数据。例如“CEO”关系:“Apple CEO Steve Jobs said to Bill Gates.” 是相关的,“Bob, Pie Enthusiast, said to Bill Gates.”是不相关的。
  2. 如果相关句子表达了这种关系,就对正样本/负样本进行手工的标注。“Apple CEO Steve Jobs said to Bill Gates.”:(Steve Jobs, CEO, Apple) 是正样本,(Bill Gates, CEO, Apple)是负样本。
  3. 学习一个二分类器来确定句子是否与关系类型相关
  4. 在相关的句子上学习一个二分类器,判断句子是否表达了关系
  5. 使用分类器检测新文本数据中的关系。

有些人选择不训练“相关分类器”,而是让一个单一的二分类器一次性确定这两件事。

优点

缺点

模糊监督的关系提取

我们可以将使用种子数据(比如弱监督的RE)和训练分类器(比如有监督的RE)的思想结合起来。但是,我们可以从现有的知识库(KB),比如Wikipedia、DBpedia、Wikidata、Freebase、Yago中得到种子,而不是自己提供一组种子元组。

模糊监督的关系抽取方法:

  1. 对于知识库中我们感兴趣的每个关系类型进行循环
  2. 对于知识库中该关系的每个元组进行循环
  3. 从我们的未标记文本数据中选择可以匹配到这些元组的句子(元组的两个单词在句子中是共现的),并假设这些句子是这种关系类型的正样本
  4. 从这些句子中提取特征(如词性、上下文词等)
  5. 训练一个有监督的分类器

优点

缺点

无监督的关系提取

在这里,我们从文本中提取关系,而不需要标注任何训练数据、提供一组种子元组或编写规则来捕获文本中不同类型的关系。相反,我们依赖于一组非常普遍的约束和启发。这算不算是无监督的,是有点争议的,因为我们使用的“规则”是在一个更普遍的层面上。此外,在某些情况下,甚至可以利用小的标注文本数据集来设计和调整系统。然而,这些系统一般需要较少的监督。开放信息提取(Open Information Extraction, Open IE)通常指的是这种范式。

TextRunner是属于这类关系提取方案的一种算法。其算法可以描述为:

1. 在一个小语料库上训练一个自监督分类器

2. 遍历整个语料库并提取可能的关系

3. 基于文本冗余度的关系排序评估

OpenIE 5.0和Stanford OpenIE是这样做的两个开源系统。它们比TextRunner更现代(这里只是用它来演示范例)。我们可以期望从这样的系统输出许多不同的关系类型(因为我们没有指定我们感兴趣的关系类型)。

优点

缺点

英文原文:https://medium.com/@andreasherman/different-ways-of-doing-relation-extraction-from-text-7362b4c3169e

上一篇下一篇

猜你喜欢

热点阅读