自然语言处理关系抽取:数据处理第一阶段


首先来看数据。
一、数据概述:数据集,NYT+Freebase数据:
(1)一共53种所要预测的关系,其中包括一种‘NA’,即没有关系。
(2)训练集中一共522611个句子, 281270个实体关系对,共63696个实体, 以及18252个含有关系的句子(即不是NA)。
(3)测试集中一共172448个句子,96678个实体关系对,共16706个实体,以及1950个含有关系的句子
(4) 测试集中一共由5817个实体不在训练集中
二、数据处理第一阶段:
1、来自New York Times(2005到2007),其中2005到2006为训练数据,2007为测试数据。数据已经用远程监督的方法与Knowledge Base对齐。然后存储到train.txt与test.txt中。其中数据格式如下:

m.0124lx        m.07hjs9        lewis   john_gross      NA      beloved wife of the late dr. frederick e. lane , and mother of joseph , ila lane gross , lewis , and edward ; mother-in-law of bobbi , john_gross , nancy , and judy . ###END###

其中:
(1)m.0124lx, m.07hjs9 :两个实体在FreeBase中的id
(2)ewis, john_gross:为两个实体
(3)NA:代表两个实体的关系
(4)后面为包含两个实体的句子,以###END###结尾

2、利用清华大学编写的C程序extract.cpp进行数据预处理
–输入:
(1)train.txt、test.txt: 为1中所提到数据
(2)relation2id.txt: 存有53种所要预测的关系以及id。格式如下:

NA 0
/location/neighborhood/neighborhood_of 1
/location/fr_region/capital 2
......

(3)vec.bin:存放有114042个单词以及他们的50维向量,向量由skip gram训练得到

–输出:
(1):vector.txt:存放有1(BLANK)+114042个单词以及他们的50维向量,114042为vec.bin中得到,BLANK初始化为0。数据格式如下:

BLANK   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1 </s>  0.198994,0.219711,-0.190422,-0.162968,0.0679395,0.150194,0.0467748,0.0105065,-0.179149,0.110292,-0.216578,0.0621211,-0.0
......

(2):bags_train.txt, test_train.txt:将数据组织成了包的形式;句子表示成了在词库(114043个单词)中的id;存储了映射后的相对实体的位置(详细见PCNN论文中Position embedding)。实验中位置limite设置为50,因此实体在pf中位置映射为了50;存储了mask值(用于pcnn,来自与清华大学的pcnn实现方法)数据格式如下:


m.010039    m.01vwm8g   NA  99161,292483

justin,natalie,40,42,0,48
29,2085,366,6,4,282,0,0,2778,2,1258,358,6,570,2,4613,8,619,65111,2,14368,8,2499,49105,43,2173,1122,6,25534,0,2,1349,1913,6,4185
90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,4
92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,5
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3
	
justin,natalie,9,11,0,17
1349,2015,6,4185,2,8932,2,4414,2,9228,2,12461,2,12168,8,10844,3
59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43
61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45
1,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3

–第一行代表包中的两个实体(m.010039,m.01vwm8g)在Freebase中的id号, NA表示包的关系, 99161,292483表示两个句子在整个句子库中的id号。

–然后是每个句子的数据。首先justin,natalie,40,42,0,48。juatin, natalie为实体, 40, 42为实体在句子中的位置,0表示包的关系,48为句子长度

–然后下面三行,分别为句子的id表示,映射后的相对位置pf1, pf2,用与pcnn的mask

三、总结
得到了bags_train.txt, bags_train.txt就完成了数据预处理的第一阶段。这一阶段主要还是用人家的代码。这个阶段主要的成果有
(1):得到了词库,一共1+114042个单词以及他们的embedding向量。
(2):得到了句子的词库id表示
(3):得到了相对位置的id表示
(4):得到了用于pcnn的mask向量表示
(5):将所有的数据组织为了包的形式,并得到了包的关系。

注意:在bags_train.txt中的关系其实一共是有58种的(包括NA),不过分类任务只有53种,因此后续处理中还去掉了一些关系。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值