赞
踩
关系抽取通常的做法:
目标:找出尽可能多的拥有"is-a"关系的实体对(entity,is-a,entity)
比如文本:
实体1 | 实体2 |
---|---|
apple | fruit |
banala | fruit |
... | ... |
·Advantages:
\quad
·比较准确
\quad
·不需要训练数据
·Drawbacks:
\quad
·low recall rate
\quad
·高人力成本,规则难以设计
准备数据:
\quad
·定义实体类型
\quad
·定义关系类型
\quad
·准备训练数据:进行实体标注和关系标注
**例子:**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.句法分析
8.以上都是词相关的特征,还可以抽取一些位置特征:例如两个单词间有多少单词,单词是否在句子的第一位,句子在文不能中的位置等。
在特征提取完后,可以将训练数据放入LR,SVM或者神经网络模型中进行训练。
bootstrap
工作原理:根据已知的seed库建立规则库,然后根据规则遍历文本,将符合规则的实体生成tuple放入seed库。最大的缺点就是error accumulate,错误的规则生成会发生传递并且不会消失,导致准确率越来越低。
snowball
基于扼制bootstrap的错误传递机制,在生成新规则和生成新tuple时进行去冗余和过滤操作。核心方法就是<left,Entity,Mid,Entity,Right>五元组向量的相似度计算
算法步骤:
①、生成规则的方法
对给定文本按照:<L,
T
1
T_1
T1,M,
T
2
T_2
T2,R>的五元组模板生成规则
P
1
P_1
P1
将L,M,R均一化处理,计算余弦相似度时用内积即可表示
c
o
s
<
X
,
Y
>
=
X
⋅
Y
∥
X
∥
∥
Y
∥
=
X
⋅
Y
cos<X,Y>=\frac{X·Y}{\Vert X \Vert \Vert Y \Vert} = X·Y
cos<X,Y>=∥X∥∥Y∥X⋅Y=X⋅Y
模板的去冗余:模板的相似度高时,后期利用k-means,谱聚类,层次聚类进行聚类,将模板的平均值作为代表模板。
②、生成tuple的方法
给定文本与规则库的每个规则计算相似度,相似度大于阈值的入tuple库
③、评估规则方法
用某条规则提取文本生成tuple库,对比seed库,得分大于阈值的保留,小于阈值则delete
④、过滤的方法
可以用规则库得分对tuple进行过滤
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。