首先來看資料。
一、資料概述:資料集,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 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種,因此後續處理中還去掉了一些關係。
自然語言處理
自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...
自然語言處理
前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...
自然語言處理
一 字串操作 去空格及特殊符號 s hello,world 預設把左右空格去掉 print s.strip print s.lstrip hello,print s.rstrip 查詢字元 0 為未找到 sstr1 strchr sstr2 tr 找到返回目標子串開始下標 npos sstr1.in...