当前位置:   article > 正文

关系抽取常用方法_关系抽取方法

关系抽取方法

关系抽取通常会基于以下几种方式去做:

  • 基于规则
  • 监督学习
  • 半监督 & 无监督学习
    • Bootstrap
    • Distant Supervision
    • 无监督学习

下面分别举例去说明方法的实现方式。

1.基于规则的方法,表示 “is - a”

目的:找出尽可能多的拥有"is - a"关系的实体对(实体1,is - a,实体2)
比如我们有一些文章:

  1. " … apple is a fruit … "
  2. " … fruit such as apple … "
  3. " … fruit including apple , banala … "

拿到上述文章时,我们要先设计一些规则,例如:

  • X is a Y
  • Y such as X
  • Y including X

然后通过这些规则我们可以对上述文章进行关系抽取,建立以下关系:

实体1实体2
applefruit
banalafruit
  • 方法优点
    • 比较准确
    • 对于垂直场景,比较适合(具有针对性)
  • 方法缺点
    • 信息缺乏覆盖率(low recall rate)
    • 人力成本较高
    • 很难设计(规则冲突、重叠)
2.监督学习

在使用监督学习的方法时,需要做以下准备:

  • 定义关系类型
  • 定义好实体类型
  • 准备训练数据
    • 实体标注
    • 实体之间的关系标注

下面拿一个经典的例子用以说明:
例子:American Airlines, a unit of AMR, immediately matched the move, spokesman Tim Wagner said.

首先我们需要运用命名实体识别(NER)工具来分析这句话,可以找到:

  • ORG : American Airlines
  • PER:Tim Wagner

然后我们需要提取特征,将(特征(American Airlines),特征(Tim Wagner))放入分类算法。
特征提取部分可以有以下方式:

  1. Bag-of-words
    例如我们可以用unigram提取出(American Airlines,Tim Wagner),或者使用Bi-gram提取出(American Airlines a,Tim Wagner said)
  2. pos-tagging
    提取出American Airlines和Tim Wagner的词性
  3. Bag-of-words feature
    a ,unit, of, AMR, immediately, matched, the, move, spokesman
  4. between words pos-tagging
    抽取(a ,unit, of, AMR, immediately, matched, the, move, spokesman)的词性
  5. head feature
    (Airlines,Wagner)
  6. 实体类别
    (ORG,PER)
  7. 句法分析

以上都是词相关的特征,还可以抽取一些位置特征:例如“两个单词间有多少单词”,“单词是否在句子的第一位”,“句子在文不能中的位置”等。

在特征提取完后,可以将训练数据放入LR,SVM或者神经网络模型中进行训练。

3.Bootstrap方法

Bootstrap的大致思路如下:

  • 目标关系:burial place
  • Seed tuple: [Mark Twain, Elmira]
  • 寻找包含Mark Twain, Elmira的句子
    • " Mark Twain is burind in Elmira, NY."
      -> X is burind in Y
    • " The grave of Mark Twain is in Elmira"
      -> TH grave of X is in Y
    • " Elmira is Mark Twain’s final resting place"
      -> Y is X’s final resting place
  • 利用这些pattern去搜索更多的Tuple

它有以下缺点:

  • 对于每一种关系都需要sed tuples
    • 对seed tuples比较敏感
  • 循环会导致错误的叠加
  • 精确率不高
  • 没有概率的解释如confidence score

所以在传统的Bootstrap的框架下,我们引申出了snowball

  • step1 : 生成模板(Pattern)
    比如我们有一个 [LOC] based [ORG]模板,如果文本中出现了 xxx base xxx ,此时在Bootstrap中是匹配不到的。snowball在此时做了优化,将模板部分进行向量化,然后将匹配的文本的实体间的内容,做相似度的对比。具体细节就不在这里多展开了,感兴趣的同学可以阅读原论文.
  • step2: 生成Tuples
    遍历文本数据,将相似度超过设定阈值的tuple保存下来
  • step3:评估Patterns和Tuples
    使用已有的Tuples去评估Patterns的准确率
    使用已有的Patterns评估Tuples的准确率
    Confidence(Tuple) = 1 - (1-Conf(pi))* … *(1-Conf(pk)) # 多个靠谱的Patterns的乘积
4.半监督学习

一般在半监督学习的方法中,我们会有一个少量标注label的数据Freebase以及大量未进行任何标注的Corpus text(Unlabel Text)
在这里插入图片描述
比如,在上述例子中,我们知道了Bill Gates 和 Micrrosoft是Founder的关系。所以通过第一条text,我们可以给Founder建立一个X founded Y 的Feature。
在这里插入图片描述
然后继续往下,同理我们也可以给Founder建立一个X, founded of Y 的Feature。
这样当Feature足够多的时候,我们的traning data就会有一定的容错率。
在这里插入图片描述
继续往下,到第三句时,我们可以给CollegeAttended建立一个X attended Y 的Feature。
在这里插入图片描述
然后到第四句,我们可以新建一个sample,给Founder建立一个Y was founded by X 的Feature。
此时我们就可以开始建立如下的Training data:

XY
X founded Y , X founder of YFounder
X attended YCollegeAttended
Y was founded by XFounder

以上都是postive training data,我们可以找一些不存在与Freebase中的关系的实体,标记label为NO_RELATION,作为nagtive training data,然后将训练数据放入机器学习模型中建立模型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/712420
推荐阅读
相关标签
  

闽ICP备14008679号