彭瀅,吳 杰,齊偉鋼
(衛士通信息產業股份有限公司,四川 成都 610041)
表格是一種常用的數據呈現和管理結構。如今,以電子文檔、網頁、數據庫等數字媒介為載體,電子表格在數字化數據處理中無處不在。面對規模龐大的電子表格數據,如何自動化地理解表格內容、挖掘數據價值,成為工業界和學術界共同關注的問題。出于不同的應用目的,表格在設計上具有很強的靈活性,其結構和樣式多變、語義內容復雜,這為表格的自動化理解帶來了諸多挑戰。針對這項難題,近年來表格單元格分類[1-4]、表格結構分類[5-7]、表格問答[8]等領域逐步發展,出現了一批極具啟發意義的工作。
表格單元格分類是計算機理解表格的關鍵一步[3],按照不同的分類粒度,主要有兩種分類體系:一種是粗粒度的分類,將單元格分為標題單元格和內容單元格[3];另一種是細粒度的分類,將單元格分為大標題單元格、表頭單元格、數據單元格、注釋單元格、統計信息單元格等[2,4]。本文研究粗粒度的分類,目的是判斷表格中的每個單元格是標題還是內容。其中,標題單元格是指那些用于指明它所屬行列的意義的單元格,例如圖1 中有色區域標識的“員工登記表”“姓名”“性別”等單元格,內容單元格則是呈現具體數據的單元格。為達到分類目的,本文在表格的結構、樣式、語義等多種維度上選取了多樣化的特征,并基于U-Net[9]結構的卷積神經網絡進行分類。

圖1 電子表格單元格分類
目前,電子表格自動化處理領域的相關工作主要面向以PDF 掃描件為代表的圖片形式表格[3,7]、以網頁為代表的半結構化表格[5,6,10-12],以及以Excel工作表為代表的電子數據表格[1,2]這3 種數據來源。在進行表格單元格分類之前,對于圖片形式表格,往往需要依靠機器視覺方法定位表格、識別表格的布局結構;對于網頁形式的表格,通常也需要根據超文本標記語言(Hyper Text Markup Language,HTML)的標識符號或視覺特征進行表格定位。通過這些預處理工作,不同數據源的表格能夠被重新組織成相對一致的形式,進而采用相似的數據特征和算法進行表格單元格分類。
從人類認知的角度來看,有多種因素影響人們判斷一個單元格是否為標題。以圖1 中的表格為例,單元格文本的語義、單元格是否被合并、其字體是否加粗等都會幫助人們決定一個單元格的分類。已有的表格單元格分類方法傾向采用復合的特征進行建模,例如Koci 等人[4]共列出了219 種能夠從表格中抽取到的特征,并根據計算信息增益等方法,選擇了43 種特征;Ghasemi Gol 等人[2]提取了46種特征,并且對每個單元格還根據其上、下、左、右單元格的特征進行了特征擴充;魯建明等人[3]僅采用了單元格文本特征和空間位置特征,依靠良好的特征向量化方法和網絡結構設計,也達到了較好的分類效果。本文使用6 種特征進行分類,在第3節的內容中,將通過實驗展示這些特征的有效性。
在單元格分類算法上,桂海霞[10]、張元鳴等人[13]提出了基于規則的分類方法,Koci 等人[4]實驗了隨機森林、支持向量機等傳統機器學習分類器,認為隨機森林分類器表現最佳。近年來更多的研究采用了基于深度學習的方法,比如魯建明等人[3]基于TextCNN[14]模型將文本特征轉為向量,并基于自注意力神經網絡構建特征向量的編碼器;Ghasemi Gol等人[2]提出一種包含兩個獨立的長短期記憶人工神經網絡(Long Short-Term Memory,LSTM)[15]的分類模型,它們分別以表格的行和列為輸入,它們的輸出共同決定單元格的類別;Du 等人[1]使用雙向門控循環單元(Gated Recurrent Unit,GRU)[16]學習表格的空間特征,并使用圖卷積網絡(Graph Convolutional Network,GCN)[17]學習單元格之間的關系特征,最后基于兩種特征對單元格進行細粒度的分類。
在上述工作中,魯建明等人[3]、桂海霞[10]、張元鳴等人[13]在中文數據集上驗證了所提方法的有效性。桂海霞[10]、張元鳴等人[13]提出的方法需要根據人工經驗設置規則,但由于人工經驗有限,所以規則往往難以全面覆蓋表格靈活多變的特征,因而這類方法具有局限性。魯建明等人[3]基于深度學習進行分類,數據來源于PDF 掃描件,在采用外部工具進行表格布局結構識別的預處理過程中,表格的樣式信息保留不完整,因而該研究并未探究更多樣化的特征對單元格分類的影響。總的來說,國內外關于表格單元格分類的研究還比較少,在特征選擇和分類網絡設計上都還有較大的探究空間。
如圖2 所示,本文提出了一種基于神經網絡和多樣化特征的表格單元格分類方法。該方法采用與結構、樣式、語義相關的6 種特征,基于TextCNN結構的神經網絡和全連接層將特征編碼為向量形式,然后使用特征拼接和卷積操作來融合多樣化的特征向量,最后通過一個U-Net 結構的神經網絡學習特征與單元格類別間的關系。

圖2 基于神經網絡和多樣化特征的表格單元格分類方法
本文使用的特征包括:合并單元格、文本長度2 種結構特征;單元格內文本的加粗、居中、高度3 種樣式特征;單元格內文本內容的語義特征。對于每個單元格,特征的解釋和表示如下文所述。
2.1.1 位置符號約定
本文使用行號row和列號col來確定一個單元格所在的位置loc,則有:

式中:row∈[0,rmax),rmax為表格的最大行數;cow∈[0,cmax),cmax為表格的最大列數。
2.1.2 合并單元格特征
在loc位置上,合并單元格特征mloc通過描述一個單元格與其相鄰的單元格是否連通,來說明該單元格是否在一個合并單元格內以及與哪些單元格連通。mloc的表達式為:

式中:mloc為合并單元格特征的四元組表示;cont,conb,conl,conr分別代表當前單元格與它上方、下方、左側、右側的鄰居單元格是否連通,連通則取值為1,否則為0,兩個單元格互相連通意味著它們同屬于一個合并單元格。以圖3 所示的表格為例,虛線區域是4 個單元格合并得到的,對于loc=(0,1)的單元格,它與上方、左側的單元格不連通,與下方、右側的單元格連通,則有m(0,1)=(0,1,0,1)。

圖3 合并單元格
本文將四元組編碼轉化成一個數字,其表達式為:

2.1.3 文本長度特征
在loc位置上,文本長度特征lloc代表單元格中字的個數,其中,認為1 個中文字、1 個英文字母、1 個標點符號、1 個數字等都是1 個字。以表示單元格文本的原始長度。lmax是一個超參數,表示預設的最大長度,lavg=lmax/2 為高度的均值。將lloc歸一化到區間[-1,1],得到:

2.1.4 加粗特征
在loc位置上,加粗特征bloc表示一個單元格內的文本是否全部加粗,其表達式為:

2.1.5 居中特征
在loc位置上,居中特征cloc表明單元格內文本是否水平居中,其表達式為:

2.1.6 高度特征
在loc位置上,高度特征hloc指明單元格內文本的最小高度,在Excel 電子表格中,字號的單位是“磅”,字的高度是字號的20 倍,即11 號字的高度為220 磅。取字的高度為特征,以表示單元格文本的原始高度。hmax是一個超參數,表示預設的最大高度,取havg=hmax/2 為高度的均值,將歸一化到區間[-1,1],得到:

2.1.7 文本內容特征
在loc位置上,文本內容特征tloc是單元格中的文本內容,設wi代表1 個字,則有:

2.1.8 表格特征
上述的特征都是對于一個位置上的單元格來說的,而對于整張表格,對于每個位置,將其他6 種特征分別組織為二維矩陣的形式,例如圖4 所示的加粗特征矩陣,也就是說,每種特征都隱含了編碼的位置信息。

圖4 加粗特征矩陣
表格的特征矩陣I∈表示為:

式中:M={mloc}為合并單元格特征矩陣;L={lloc}為文本長度特征矩陣;B={bloc}為加粗特征矩陣;C={cloc}為居中特征矩陣;H={hloc}為高度特征矩陣;T={tloc}為文本內容特征矩陣。
對于文本內容特征矩陣,本文采用TextCNN 結構的神經網絡將其編碼為特征向量;對于其他特征矩陣,本文基于全連接層將它們編碼為特征向量,然后基于拼接和卷積操作對特征向量進行融合。
2.2.1 文本內容特征向量化
TextCNN 將一段文本轉為向量,一般依靠詞向量層、卷積層和池化層來完成這種轉換。詞向量層將文本中的詞語轉為詞向量,卷積層采用一維卷積,使用不同大小的卷積核學習詞向量間的關系,然后池化層對卷積層輸出的特征進行全局最大池化。
相比于句子分類等傳統自然語言處理任務,本文處理的表格數據有兩個特點:一是單元格里的文本大多比較短,例如圖1 中的“群眾”“時間”等單元格,它們通常不構成完整的句子,且上下文少;二是表格中還存在大量證件號碼、數據統計信息等數值類的文本,它們的語義比較模糊。魯建明等人[3]使用詞向量與字向量相結合的方法來解決特征詞過少的問題。然而,本文認為對于極短的文本和語義模糊的文本,詞向量的作用有限,因此直接以字為單位,采用字向量作為TextCNN 卷積層的輸入。為更好地適應本文的任務,對TextCNN 網絡的寬度、卷積核的個數和大小做了調整。從文本內容矩陣T得到文本內容向量矩陣的形式化表示如下:

式中:tid表示根據預設的字典將T中的字轉為它在字典中的序號;emb表示將字的序號轉為字向量;Ew為字向量矩陣,Ew∈,dw和nw是兩個超參數,dw為字向量的維度,nw表示取每個單元格中的nw個字來計算文本內容特征向量,對長度超過nw的文本進行截斷,對于不足nw的,用字典序號0 補齊;V1∈和V2∈為兩個特征向量矩陣,dinner為一個超參數,代表中間層的維度;⊕為拼接操作;ET∈為文本特征向量;conv1和conv2為兩個一維卷積層,卷積核大小分別為1 和5;max 表示在nw維度進行全局最大池化操作。
值得說明的是,nw與文本長度特征中的lmax含義不同,例如對于某個字長為35 的單元格tloc=[w1,w2,…,w35],若取lmax=50,nw=20,那么根據2.1.3節,有=35,lavg=25,文本長度特征同時,取前20 個字[w1,w2,…,w20]來計算內容特征向量。也就是說,nw在計算文本內容特征向量時起作用,而lmax是為方便文本長度特征歸一化而設置的超參數。
2.2.2 其他特征向量化
根據2.1 節可知,除文本內容特征外,其他特征都由[-1,1]區間內的數值表示,本文使用全連接層分別對它們進行向量化。全連接層對輸入向量x進行線性變換得到向量y,一般表示為:

式中:W為可學習的權重;b為偏置。在本文的背景下,x可看作某一種特征矩陣,x∈{M,L,B,C,H,T};y是特征向量矩陣,y∈,其中是一個超參數,表示特征向量的輸出維度。基于此,使用5 個不同的全連接層,得到:

式中:lineari為全連接層;EM是合并單元格特征向量;EL是文本長度特征向量;EB是加粗特征向量;EC是居中特征向量;EH是高度特征向量。
2.2.3 特征融合
基于拼接和卷積操作對所有的特征向量進行融合,公式化為:

在構建分類網絡時,本文借鑒了機器視覺中語義分割任務的思想。語義分割任務需要對圖片每個像素點進行分類,比如在城市街景圖片中將行人、建筑、路面等按像素標識出來。如果將一張表格類比于一張圖片,表格中的每個單元格類比于圖片的一個像素點,那么表格單元格分類任務與語義分割任務就有了相似性。在語義分割任務中,U-Net 是一種最常用的編碼器-解碼器結構。編碼器部分由多個下采樣模塊構成,主要包括卷積層和池化層。解碼器部分由多個上采樣模塊構成,主要包括上采樣層、卷積層和池化層。編碼器和解碼器之間的特征拼接,使整個網絡呈U 形。
本文構建的網絡較原始的U-Net 寬度更小、層數更少,稱為U-Net-Mini,其網絡結構如圖5 所示。

圖5 U-Net-Mini 網絡結構
圖5 中,長方形塊代表特征,為展示特征在不同網絡層維度的變化。設輸入特征的rmax和cmax為40,為32,convs由兩個卷積核大小為3 的卷積層構成,conv代表一個卷積核大小為1 的卷積層,pool代表一個步長為2 的全局最大池化層,bilinear代表使用雙線性插值的上采樣層,copy代表復制。
由于目前暫沒有公開的中文表格單元格分類數據集,本文從互聯網收集并構建了一個包含500 張表格的數據集,數據主要來自WPS 中的Excel 模板數據和百度文庫中的公開Excel 文檔數據。取其中的450 張表格作為訓練集,其余作為測試集。
采用正確率(Accuracy)和F1 分數(F1-score)在測試集上評價模型,指標越高模型效果越好。
本文在NVIDA TITAN Xp 上進行實驗,設置超參數lmax=50,hmax=720,dw=250,nw=20,=dinner=256,=32,使用Adam[18]優化器,設置初始學習率5e-4,批度大小為4,共訓練90 輪,每20 輪學習率下降一次,下降比例為0.8。
表1 和表2 中的實驗結果均為5 次運行的平均值。表1 展示了使用不同特征得到的實驗結果,第一行是本文提出的模型,它使用6 種向量化的特征,同時隱含地編碼了每個單元格的位置信息,其余6個模型分別舍棄一種向量化特征,位置信息不變。總的來說,不論從F1 值還是正確率上看,本模型都得到了更好的得分。進一步分析F1 分數,發現對比模型6 得分最低,說明文本內容特征是所有特征中最重要的一項,也就是說,語義信息對于判斷一個單元格是不是標題具有顯著作用。同時,未使用加粗特征的對比模型4、未使用文本高度信息的對比模型5 與本文模型差距最小,說明單元格分類對這兩種特征相對不敏感。從各個模型的對比上看,本文所用的6 種向量化特征對判斷單元格類別的重要性排序為:文本內容特征>居中特征>文本長度特征>合并單元格特征>文本高度特征>文本加粗特征。

表1 特征有效性實驗結果

表2 模型設計合理性實驗結果
表2 展示了使用不同的特征融合方式和分類網絡在單元格分類任務上的精度指標以及參數量指標。第一行是本文的模型,對比模型7不使用卷積層,只采用特征拼接的方式進行特征融合,對比模型8將6 種特征向量相加進行融合,在分類網絡上都使用與本文一致的U-Net 結構。這3 個模型大小相似,從F1 分數和正確率得分來看,本文采用的特征融合方式效果最好。在分類網絡的結構上,對比模型9 采用一個單層單向的GRU 結構,與本文模型對比,其精度沒有優勢。對比模型10 采用原始U-Net論文提出的結構,與本文使用的U-Net-Mini 結構相比,在編碼器上多兩個下采樣模塊,解碼器上多兩個上采樣模塊。在不考慮特征的復制和拼接時,U-Net 特征的通道數最大為1 024,U-Net-Mini 為32,也就是說,在網絡深度和寬度上U-Net 都明顯高于U-Net-Mini,反映在模型大小上,本文模型參數量約0.7 兆,對比模型9 約是它的26 倍。然而,從模型的表現來看,對比模型9 在F1 值上僅有微弱的優勢,在正確率上沒有更好的表現。因此,對比這兩個模型,可知本文方法在更小的模型上取得了與較大模型相似的分類能力,這在實際應用中意味著占用資源更少、運行速度更快,具備更高的應用價值。
本文提出了一種電子表格單元格分類方法,采用線性層對表格樣式、結構、語義相關的多種特征進行編碼,然后將特征向量拼接,通過卷積操作進行特征融合,最后基于U-Net 結構的神經網絡模型學習單元格分類。通過對不同特征在單元格分類中的重要性進行的實驗驗證,發現語義信息影響最顯著。此外,本文對比了不同特征融合方式和分類網絡結構下模型的大小和分類效果,證明了本文方法的優越性。