[0046] (2.2)表格文檔的邏輯結(jié)構(gòu)抽取;
[0047] 邏輯結(jié)構(gòu)抽取的輸入是一個(gè)不包含任何實(shí)際數(shù)據(jù)的非結(jié)構(gòu)化表格文檔,通過匹配 數(shù)據(jù)字典,抽取表格文檔的標(biāo)題區(qū),并建立邏輯關(guān)系,抽取的結(jié)果保存在邏輯結(jié)構(gòu)庫(kù)中;
[004引表格文檔的邏輯結(jié)構(gòu)可W定義為一個(gè)五元組TableSt;ru = <ID,TupleID,Title, Type,Parent>集合,其中,
[0049] 參10表示文檔的標(biāo)識(shí);
[(K)加]參化plelD表示元組的標(biāo)識(shí);
[0化1 ] 參Title表示標(biāo)題區(qū);Type = {Single, Multiple },表示標(biāo)題區(qū)的類型,Single表示 "單值區(qū)域",Multiple表示"多值區(qū)域";
[0化2] ?化rent表示該標(biāo)題的父標(biāo)題區(qū);
[0053] (2.3)表格文檔的單值區(qū)域數(shù)據(jù)抽取算法;
[0054] 輸入:非結(jié)構(gòu)化表格生成的數(shù)據(jù)流
[0055]輸出:結(jié)構(gòu)化兩元組集合 [0化6]算法步驟:
[0057]步驟3.3.1:?空格作為分隔符對(duì)數(shù)據(jù)流stream進(jìn)行切分,得到一個(gè)字符串列表 wordList。
[0化引步驟3.3.2:按順序?qū)ψ址斜韜or化ist進(jìn)行分析,將當(dāng)前字符串currentWord 與數(shù)據(jù)字典中的標(biāo)題區(qū)進(jìn)行匹配,得到本次匹配結(jié)果。
[0化9] 步驟3.3.3:利用正向最大匹配規(guī)則,將當(dāng)前字符串currentWord與上次的字符串 lastWord進(jìn)行拼接得到一個(gè)拼接字符串contactWord,與數(shù)據(jù)字典中的標(biāo)題區(qū)進(jìn)行匹配,得 到拼接字符串匹配結(jié)果。
[0060]步驟3.3.4:根據(jù)匹配結(jié)果執(zhí)行不同的操作:
[0061 ] (i)若拼接字符串匹配成功,則拼接字符串作為標(biāo)題區(qū);
[0062] (i i)若拼接字符串匹配失敗,上次匹配和本次匹配均成功,則上次標(biāo)題區(qū)所對(duì)應(yīng) 的數(shù)據(jù)區(qū)為空;
[0063] (iii)若拼接字符串匹配失敗,上次匹配成功,本次匹配失敗,則本次字符串作為 數(shù)據(jù)區(qū)內(nèi)容;
[0064] (iv)若拼接字符串匹配失敗,上次匹配失敗,本次匹配成功,則輸出一個(gè)包括標(biāo)題 區(qū)和數(shù)據(jù)區(qū)的結(jié)構(gòu)化兩元組;
[0065] (V)若拼接字符串匹配失敗,上次匹配和本次匹配均失敗,則拼接字符串作為數(shù)據(jù) 區(qū)內(nèi)容;
[0066] 步驟3.3.5:將本次匹配結(jié)果作為上次匹配結(jié)果,將本次字符串currentWord作為 上次字符串lastWord,并跳到步驟3.3.2;
[0067] (2.4)表格文檔的多值區(qū)域數(shù)據(jù)抽取算法;
[0068] 先將多值區(qū)域定義為一個(gè)(m+1) Xη的矩陣:
[0069]
[0070] ,其中m+1是多值區(qū)域的行數(shù),η為多值區(qū)域的列數(shù),au是多值區(qū)域中的字符串值, 當(dāng)1 = 1時(shí),ai康示標(biāo)題區(qū),當(dāng)i〉l時(shí),ai康示數(shù)據(jù)區(qū);
[0071] 基于上述定義,從數(shù)據(jù)流中抽取多值區(qū)域的數(shù)據(jù)區(qū)算法如下:
[0072] 輸入:非結(jié)構(gòu)化表格生成的數(shù)據(jù)流
[0073] 輸出:多值區(qū)域矩陣
[0074] 算法步驟:
[0075] 步驟4.2.1:將數(shù)據(jù)流stream轉(zhuǎn)換為一個(gè)字符串列表wor化ist,按順序?qū)⒆址?表wordList中的字符串與數(shù)據(jù)字典進(jìn)行匹配,得到多值區(qū)域的數(shù)據(jù)區(qū)域mutiArea和多值區(qū) 域矩陣dataArray的列數(shù)及其標(biāo)題名稱。
[0076] 步驟4.2.2: W空格和換行符作為分隔符對(duì)多值區(qū)域的數(shù)據(jù)區(qū)mutiArea進(jìn)行切分 得到字符串列表mutiList,按順序捜索字符串列表mutiList中的字符串是否含有空格,若 有,則空格的前后內(nèi)容分別是兩個(gè)數(shù)據(jù)區(qū)的內(nèi)容,并將它們填入多值區(qū)域矩陣da化Array對(duì) 應(yīng)位置,且對(duì)應(yīng)位置不再填入字符串;若沒有,則跳轉(zhuǎn)步驟4.2.3。
[0077] 步驟4.2.3:根據(jù)表格中的單元格內(nèi)容是否包含硬回車執(zhí)行不同的操作:
[0078] (i)若表格中的單元格內(nèi)容僅是單行字符串或由軟回車構(gòu)成的多行字符串,按順 序?qū)⒆址斜韒utiList中的字符串切分為若干個(gè)數(shù)據(jù)區(qū),并依次寫入多值區(qū)域矩陣的數(shù) 據(jù)區(qū)的相應(yīng)位置。
[0079 ] (i i)若表格中的單元格內(nèi)容包含具有硬回車的多行字符串,按順序?qū)⒆址斜?mutiList中的字符串切分為若干個(gè)數(shù)據(jù)區(qū),同時(shí)基于下述啟發(fā)式規(guī)則合并相應(yīng)數(shù)據(jù)區(qū),并 寫入多值區(qū)域矩陣的數(shù)據(jù)區(qū)的相應(yīng)位置。
[0080]常見的啟發(fā)式規(guī)則有:(a)成對(duì)的符合一般屬于同一數(shù)據(jù)區(qū),如《》、()、""、''等; (b)位于特殊符號(hào)兩邊的字符串一般也屬于同一數(shù)據(jù)區(qū),如-、/,;(c)含有年、月等語(yǔ)義含義 的也屬于同一數(shù)據(jù)區(qū)。
[0081 ] (3)將抽取結(jié)果組織為結(jié)構(gòu)化數(shù)據(jù)集;
[0082] 將抽取的結(jié)果保存在一種結(jié)構(gòu)化數(shù)據(jù)模型中,該數(shù)據(jù)模型可W定義為一個(gè)六元組 DataStru = (ID,TupleID,TitleArea,DataArea,Relation,F(xiàn)oreign),其中,
[0083] 參10表示文檔的唯一性標(biāo)識(shí);
[0084] 參化plelD表示元組的唯一'性標(biāo)識(shí);
[0085] 參TitleArea表示標(biāo)題區(qū)的值;
[0086] ?化taArea表示數(shù)據(jù)區(qū)的值,它既可W是標(biāo)題區(qū)字符串也可W是數(shù)據(jù)區(qū)字符串;
[0087] 參Relation = {1,0},當(dāng)值為1時(shí),表示DataArea是TitleArea的子標(biāo)題,當(dāng)值為0 時(shí),表示化taArea是TitleArea對(duì)應(yīng)的數(shù)據(jù)區(qū);
[0088] 參化reign表示該標(biāo)題區(qū)的父標(biāo)題區(qū);
[0089] 根據(jù)該定義,將抽取的結(jié)果進(jìn)行存儲(chǔ)為結(jié)構(gòu)化數(shù)據(jù)集;
[0090] (4)基于MapReduce對(duì)數(shù)據(jù)集進(jìn)行分析;
[0091] MapReduce是一種非常流行的分布式并行計(jì)算模型,被廣泛應(yīng)用于海量數(shù)據(jù)的分 析,可W利用MapReduce對(duì)上述得到的結(jié)構(gòu)化數(shù)據(jù)集進(jìn)行分析,在【具體實(shí)施方式】中將給出分 析實(shí)例。
[0092] 本發(fā)明的優(yōu)點(diǎn)是:
[0093] 本發(fā)明提出的非結(jié)構(gòu)化表格文檔數(shù)據(jù)抽取與組織方法適用于各類非結(jié)構(gòu)化表格 文檔,能夠?qū)ξ臋n中的數(shù)據(jù)進(jìn)行抽取,并組織為一種適合于MapReduce并行編程模型分析的 結(jié)構(gòu)化數(shù)據(jù)模型。方法的靈活性強(qiáng)和準(zhǔn)確率高,運(yùn)在分析海量非結(jié)構(gòu)化化表格中具有很強(qiáng) 的應(yīng)用價(jià)值。
【附圖說明】
[0094] 圖1非結(jié)構(gòu)化表格文檔數(shù)據(jù)抽取流程
[0095] 圖巧自結(jié)構(gòu)化表格文檔及其生成的數(shù)據(jù)流
【具體實(shí)施方式】
[0096] 結(jié)合圖2給出的一個(gè)實(shí)際非結(jié)構(gòu)化表格文檔對(duì)本發(fā)明提出的一種大數(shù)據(jù)環(huán)境下非 結(jié)構(gòu)化表格文檔數(shù)據(jù)抽取與組織方法的【具體實(shí)施方式】進(jìn)行說明,步驟如下:(1)定義表格文 檔的基本特征與抽取規(guī)則;
[0097] (1.1)定義表格文檔的結(jié)構(gòu)特征;
[0098] (1.1.1)如圖2所示,根據(jù)單值區(qū)域的一個(gè)標(biāo)題區(qū)對(duì)應(yīng)一個(gè)數(shù)據(jù)區(qū)規(guī)則,圖2(a)為 單值區(qū)域;根據(jù)多值區(qū)域的一個(gè)標(biāo)題區(qū)對(duì)應(yīng)一個(gè)或多個(gè)數(shù)據(jù)區(qū)規(guī)則,圖2(b)為多值區(qū)域;
[0099] (1.1.2)如圖2所示,圖2(a)中"姓名"為標(biāo)題區(qū),"陳某'為數(shù)據(jù)區(qū);圖2(b)中"起止 時(shí)阿'為標(biāo)題區(qū),"2009.12.14-12.16"為數(shù)據(jù)區(qū);
[0100] (1.2)定義表格文檔的數(shù)據(jù)流特征;
[0101] 根據(jù)圖2中表格文檔單元格字符串生成數(shù)據(jù)流的規(guī)律,有W下巧中情況:
[0102] 1)Γ 姓名",s,s,s,y)一Γ 姓名",S)
[0103] 2)("聘任職務(wù)",s,m,s,y)一Γ 聘任職務(wù)",se)
[0104] 3)Γ 必修課,60 學(xué)時(shí)",m,null,h,n)一Γ 必修課,60 學(xué)時(shí)",se)
[0105] 4)("2005年6月于某學(xué)院林",111,伽11,3,11)一("2005年6月于某學(xué)院林",6)
[0106] 5)Γ 畢業(yè)',111,111111,3,7)一(。畢業(yè)',36)
[0107] 6)( "數(shù)學(xué)',S,nu 11,S,y) 一( "數(shù)學(xué)',se)
[0108] (1.3)定義表格文檔的數(shù)據(jù)抽取規(guī)則。
[0109] (1.3.1)根據(jù)區(qū)域劃分規(guī)則,圖2(a)為單值區(qū)域,圖2(b)為多值區(qū)域;
[0110] (1.3.2)根據(jù)單值區(qū)域規(guī)則,圖2(a)中標(biāo)題區(qū)"姓名"和數(shù)據(jù)區(qū)"陳某'