赞
踩
关系抽取通常会基于以下几种方式去做:
下面分别举例去说明方法的实现方式。
目的:找出尽可能多的拥有"is - a"关系的实体对(实体1,is - a,实体2)
比如我们有一些文章:
拿到上述文章时,我们要先设计一些规则,例如:
然后通过这些规则我们可以对上述文章进行关系抽取,建立以下关系:
实体1 | 实体2 |
---|---|
apple | fruit |
banala | fruit |
… | … |
在使用监督学习的方法时,需要做以下准备:
下面拿一个经典的例子用以说明:
例子:American Airlines, a unit of AMR, immediately matched the move, spokesman Tim Wagner said.
首先我们需要运用命名实体识别(NER)工具来分析这句话,可以找到:
然后我们需要提取特征,将(特征(American Airlines),特征(Tim Wagner))放入分类算法。
特征提取部分可以有以下方式:
以上都是词相关的特征,还可以抽取一些位置特征:例如“两个单词间有多少单词”,“单词是否在句子的第一位”,“句子在文不能中的位置”等。
在特征提取完后,可以将训练数据放入LR,SVM或者神经网络模型中进行训练。
Bootstrap的大致思路如下:
它有以下缺点:
所以在传统的Bootstrap的框架下,我们引申出了snowball
。
一般在半监督学习的方法中,我们会有一个少量标注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:
X | Y |
---|---|
X founded Y , X founder of Y | Founder |
X attended Y | CollegeAttended |
Y was founded by X | Founder |
以上都是postive training data
,我们可以找一些不存在与Freebase中的关系的实体,标记label为NO_RELATION
,作为nagtive training data,然后将训练数据放入机器学习模型中建立模型。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。