《一種基於PDF的複雜版面的標引方法》是北大方正集團有限公司、北京方正阿帕比技術有限公司和北京大學於2007年12月20日申請的發明專利,該專利的申請號為2007101799384,公布號為CN101206639,公布日為2008年6月25日,發明人是徐劍波、董寧,該專利屬於信息技術領域。
《一種基於PDF的複雜版面的標引方法》所述的方法:通過分析和獲取PDF上文字信息以及位置、字型、字號等信息,根據相鄰、相似的原則進行自動化的文字成塊操作;進一步根據字型字號等信息確定文章標題與正文,根據位置信息,並結合少量的人工干預進行正文拼接、正文與標題關聯等成文操作,從而使得整個版面上的文章能較快重新構建,同時可以自動獲取到該文章所在的版面區域、文章和標題的字型和字號等標引信息,解決了文章重新構建費時費力或者效果不理想的問題。
2014年11月6日,《一種基於PDF的複雜版面的標引方法》獲得第十六屆中國專利優秀獎。
(概述圖為《一種基於PDF的複雜版面的標引方法》摘要附圖)
基本介紹
- 中文名:一種基於PDF的複雜版面的標引方法
- 公布號:CN101206639
- 公布日:2008年6月25日
- 申請號:2007101799384
- 申請日:2007年12月20日
- 申請人:北大方正集團有限公司、北京方正阿帕比技術有限公司、北京大學
- 地址:北京市海淀區成府路298號方正大廈
- 發明人:徐劍波、董寧
- 分類號:G06F17/21(2006.01)
- 代理機構:北京天悅專利代理事務所
- 類別:發明專利
- 代理人:田明、王瑛
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,權利要求,實施方式,榮譽表彰,
專利背景
在報業、出版社等行業中,使用排版軟體排版完成後,需要從已經生產的版面中提取文章以及相關的元數據信息,以便進一步利用,就是文章信息的重構和標引。為了更真實還原版面的內容,除了需要文章本身的內容信息(如標題、引題、副題、作者、正文等多項信息)以外,在標引時還提取需要文字塊的位置、字型字號等信息。
2007年12月前,從版面中提取文章信息的方法(也稱反解和標引)有以下幾種:
(1)通過排版軟體本身的能力導出xml檔案,一般都包含文章的內容信息,但不同排版軟體輸出的內容不同,如有些不提供標題信息,多數的排版軟體並不導出文字塊的位置信息,使得文章的信息不完整,往往需要通過手工的方式進行補充,效率非常低;另外,套用該方法還必須能夠獲得原始排版檔案,而一些需要反解和標引的場合下,是無法獲得原始排版檔案的;
(2)通過軟外掛程式技術對排版軟體進行擴充,允許進行一些半自動化的信息提取和人工標引。專利CN200610112710.9公布了“一種提取見報資料數據信息的方法”可以基於版面檔案結合人工干預來提取和表演文章。這種方法的優點是可以提取比較完備和準確的信息,其缺點是:a)不同的排版軟體需要開發不同的軟外掛程式,開發難度和工作量大;b)必須能夠提供原始的排版檔案,才能進行標引。c)隨著排版軟體本身的發展和升級,一些老的數據格式不再支持,因此大量的歷史數據無法進行標引和重新利用;
(3)對排版軟體輸出的結果檔案格式(PS格式)進行標引,其中的代表性的技術是“方正全真軟體”,用來反解和表演方正飛騰排版輸出的PS檔案。由於對PS的反解技術,主要是利用PS中的注釋進行的,不同排版軟體輸出的注釋不同,導致反解和標引軟體不同通用。隨著印刷技術的發展,基於PDF的RIP技術慢慢取代PS,因此有些排版軟體和流程中直接得到的就是PDF而不再是PS了。另外,大量的歷史數據是PDF格式的而不存在PS檔案,導致PS反解和標引無法套用;
(4)多數排版軟體可以生成PDF格式的檔案,大量的歷史數據是基於PDF的,因此基於PDF的反解和標引的套用面很廣。專利CN200510039015.x公布了“一種基於xml的PDF文檔信息抽取系統的方法”,主要是把PDF檔案的物理結構轉換為邏輯結構,但並沒有進行文字成塊和成文的處理。專利CN200510122890.4公布了“一種從PDF文檔到XML文檔轉換的方法”,通過第三方的工具把PDF轉為平級的xml文檔,再通過xslt結合規則提取xml中信息,其套用的前提是PDF版面本身較為簡單,結構較為一致,使用簡單的xpath的規則就可以提取xml信息,並不適用報刊這樣的複雜版面。專利CN200410091432.4公布的“一種對報紙版面進行標題與正文邏輯關聯的方法”以及專利專利200410091434.3公布的“一種對報紙版面進行文字閱讀順序恢復的方法”,均是後續的成文的方法,並沒有涉及文字塊的生成和合併規則和整個提取內容和位置等信息的流程。專利200610007221.7“一種在報紙版面上檢查標引稿件的方法及系統”和專利200610065665.6“一種報刊版面網路標引的方法及系統”均在組版軟體以及組版環境可用的情形下進行複雜版面的反解和標引,不能套用到PDF的反解和標引中。
可見,在2007年12月前已有技術中,對於缺少原始組版檔案、或缺少軟外掛程式可用的場合,尚沒有一種能對複雜版面數據源進行通用反解和標引的高效的方法。
發明內容
專利目的
《一種基於PDF的複雜版面的標引方法》的目的是提供一種省時、省力的統一的PDF複雜版面的標引方法,該方法只需要PDF數據、最大限度減少了對數據源的要求,具有廣泛的適應性,同時該方法可以自動化處理複雜版面的文字信息提取、原始文字塊合併以及文章內容和樣式信息的提取,結合少量的人工操作可以完成標引工作,並可以自動確定排版類型,極大地提高了反解和標引的效率。
技術方案
《一種基於PDF的複雜版面的標引方法》包括以下步驟:
(1)導入報刊版面的PDF檔案,對PDF進行分析,獲取版面上的全部的文字內容、文字的位置、字型、字號和序號信息,得到一個原始文字塊的列表L;
(2)按原始文字塊的信息,對原始文字塊進行聚類,得到多個集合{Si};
(3)對每個集合中的原始文字塊進行排序,併合並該集合的所有原始文字塊,得到合併文字塊;
(4)按合併文字塊的字號標定合併文字塊的屬性為標題或正文;
(5)對多個合併文字塊進行再合併,構建文章。
在如上所述的一種基於PDF的複雜版面的標引方法中,步驟(2)中,在對原始文字塊進行聚類時包括以下步驟:
(2.1)創建一個新的集合{S},並選取列表L中第一個原始文字塊Ti作為新集合{S}的第一個原始文字塊,並從列表L中去除該原始文字塊Ti;
(2.2)對列表L中的剩下的全部原始文字塊進行遍歷,對每個原始文字塊,需要檢查集合{S}中是否至少存在一個近鄰,如果存在近鄰,則把該原始文字塊加入集合{S}中,並從列表L中刪除該原始文字塊;
(2.3)遍歷完成後,如果列表L不為空,則重複上述步驟(1)和(2),生成一個新的集合。
進一步,步驟(2.2)中檢查兩個原始文字塊是否近鄰的方法是:設兩個待判定的原始文字塊分別為T1和T2,對應的字號為f1和f2,對應的位置左上角坐標分別為(x1,y1)和(x2,y2),右下角坐標分別為(x1’,y1’)和(x2’,y2’),包括以下步驟:
(2.2.1)計算字號差別係數,定義為c=2*(f1-f2)/(f1+f2);
(2.2.2)計算平均字元高度為h=(y1’-y1+y2’-y2)/2;
(2.2.3)計算在水平方向的距離係數dx:dx=(max(x1,x2)-min(x1’,x2’))/h,其中max(a,b)表示取兩者的較大值,min(a,b)表示取兩者的較小值;
(2.2.4)計算在垂直方向的距離係數dy:dy=(max(y1,y2)-min(y1’,y2’))/h;
(2.2.5)根據經驗,設定最大容忍字號差別係數cmax=0.1,最大容忍水平方向距離係數為dxmax=0.9,最大容忍垂直方向距離係數為dymax=0.9;
(2.2.6)則判定兩原始文字塊為近鄰的充分必要條件是:c<cmax且dx<dxmax且dy<dymax。
進一步,步驟(3)中,對每個集合中的原始文字塊進行排序時根據不同版面類型,確定不同的排序類型後,再根據原始文字塊的位置進行排序,具體來說:對於普通的橫排版面使用先從上到下、再從左到右的排序方法,對於豎排版面,使用先從右到左,再從上到下的排序方法。
更進一步,步驟(3)中,對每個集合中的原始文字塊進行排序時先根據原始文字塊的位置和序號,自動確定排序類型後,再進行排序操作,具體的步驟是:
(3.1)計算待處理的集合{S}中的原始文字塊的平均高度h;
(3.2)對集合中的原始文字塊按序號進行排序;
(3.3)順序遍歷集合中的全部原始文字塊,依次計算相鄰兩個原始文字塊的水平位置差異值dx[i]和垂直位置差異dy[i];
(3.4)設定和計算4個統計計數器如下:
a)等水平位置計數器Zx,用來記錄滿足abs(dx[i])<c1*h的出現次數,其中abs表示取絕對值;
b)等高度計數器Zy,用來記錄滿足abs(dy[i])<c1*h的出現次數;
c)橫排方向計數器Nx:對滿足abs(dy[i])<c1*h的差異值,檢查其對應的dx[i]值,如果dx[i]>0,則Nx加一,否則Nx減一;
d)豎排方向計數器Ny:如果dx[i]>c2*h,則Ny加一,如果dx[i]<-c2*h,則Ny減一;
上述四個統計計數器的初值全部設定為0,並設c1為容忍度係數,取值為0.2,c2為間距係數,取值為1.0;
(3.5)遍歷完成後,根據四個計數器的值,判定排版類型如下:
a)如果Zx>Zy,且Ny>0,則為從左到右的豎排;
b)如果Zx>Zy,且Ny<0,則為從右到左的豎排;
c)如果Zx>Zy,且Ny=0,則為豎排無方向;
d)如果Zx<=Zy,且Nx>=0,則為從左到右的橫排;
e)如果Zx<=Zy,且Nx<0,則為從右到左的橫排;
(3.6)根據排版類型對集合內的原始文字塊按位置進行排序。
進一步,步驟(3)中,對集合內原始文字塊排序後進行合併的步驟是:
(3.7)合併文字塊的內容為集合內所有原始文字塊按順序拼接;
(3.8)合併文字塊的區域為集合內所有原始文字塊矩形的最小包容矩形;
(3.9)合併文字塊的字號為集合內所有原始文字塊字號的平均值;
(3.10)合併文字塊的字型為集合內原始文字塊數量最多的字型。
進一步,步驟(5)中,對多個合併文字塊進行再合併採用人工干預的方法,或者根據文字塊的位置、排版類型、字型字號、語義和詞性信息進行智慧型分析和合併。
改善效果
採用《一種基於PDF的複雜版面的標引方法》所述的方法,數據源上只需要PDF檔案,減少套用場合的限制;能夠自動化處理複雜版面的文字信息提取、原始文字塊合併以及文章內容和樣式信息的提取,結合少量的人工操作可以完成標引工作,並可以自動確定排版類型,極大地提高了反解和標引的效率。
附圖說明
圖1是PDF複雜版面的文章重構流程圖;
圖2是原始文字塊提取後的效果圖,左側的中部為當前選中的原始文字塊的詳細信息;
圖3是原始文字塊合併後的效果圖,左側的中部為當前選中的合併文字塊的詳細信息;
圖4是合併文字塊進一步標引後的效果圖,左側的中部為當前選中的合併文字塊的詳細信息;
圖5是原始文字塊合併後的效果圖,左側的中部為當前選中的合併文字塊的詳細信息,其中包含了豎排的文字塊。
權利要求
1.《一種基於PDF的複雜版面的標引方法》包括以下步驟:
(1)導入報刊版面的PDF檔案,對PDF進行分析,獲取版面上的全部的文字內容、文字的位置、字型、字號和序號信息,得到一個原始文字塊的列表L;
(2)按原始文字塊的信息,對原始文字塊進行聚類,得到多個集合{Si};
(3)對每個集合中的原始文字塊進行排序,併合並該集合的所有原始文字塊,得到合併文字塊;
(4)按合併文字塊的字號標定合併文字塊的屬性為標題或正文;
(5)對多個合併文字塊進行再合併,構建文章。
2.如權利要求1所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(2)中,在對原始文字塊進行聚類時包括以下步驟:
(2.1)創建一個新的集合{S},並選取列表L中第一個原始文字塊Ti作為新集合{S}的第一個原始文字塊,並從列表L中去除該原始文字塊Ti;
(2.2)對列表L中的剩下的全部原始文字塊進行遍歷,對每個原始文字塊,需要檢查集合{S}中是否至少存在一個近鄰,如果存在近鄰,則把該原始文字塊加入集合{S}中,並從列表L中刪除該原始文字塊;
(2.3)遍歷完成後,如果列表L不為空,則重複上述步驟(2.1)和(2.2),生成一個新的集合。
3.如權利要求2所述的一種基於PDF的複雜版面的標引方法,其特徵是步驟(2.2)中檢查兩個原始文字塊是否近鄰的方法是:
設兩個待判定的原始文字塊分別為T1和T2,對應的字號為f1和f2,對應的位置左上角坐標分別為(x1,y1)和(x2,y2),右下角坐標分別為(x1’,y1’)和(x2’,y2’),包括以下步驟:
(2.2.1)計算字號差別係數,定義為c=2*(f1-f2)/(f1+f2);
(2.2.2)計算平均字元高度為h=(y1’-y1+y2’-y2)/2;
(2.2.3)計算在水平方向的距離系dx:dx=(max(x1,x2)-min(x1’,x2’))/h,其中max(a,b)表示取兩者的較大值,min(a,b)表示取兩者的較小值;
(2.2.4)計算在垂直方向的距離係數dy:dy=(max(y1,y2)-min(y1’,y2’))/h;
(2.2.5)設定最大容忍字號差別係數cmax=0.1,最大容忍水平方向距離係數為dxmax=0.9,最大容忍垂直方向距離係數為dymax=0.9;
(2.2.6)則判定兩原始文字塊為近鄰的充分必要條件是:c<cmax且dx<dxmax且dy<dymax。
4.如權利要求1所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(3)中,對每個集合中的原始文字塊進行排序時根據不同版面類型,確定不同的排序類型後,再根據原始文字塊的位置進行排序,具體來說:對於普通的橫排版面使用先從上到下、再從左到右的排序方法,對於豎排版面,使用先從右到左,再從上到下的排序方法。
5.如權利要求4所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(3)中,對每個集合中的原始文字塊進行排序時先根據原始文字塊的位置和序號,自動確定排序類型後,再進行排序操作,具體的步驟是:
(3.1)計算待處理的集合{S}中的原始文字塊的平均高度h;
(3.2)對集合中的原始文字塊按序號進行排序;
(3.3)順序遍歷集合中的全部原始文字塊,依次計算相鄰兩個原始文字塊的水平位置差異值dx[i]和垂直位置差異dy[i];
(3.4)設定和計算4個統計計數器如下:
a)等水平位置計數器Zx,用來記錄滿足abs(dx[i])<c1*h的出現次數,其中abs表示取絕對值;
b)等高度計數器Zy,用來記錄滿足abs(dy[i])<c1*h的出現次數;
c)橫排方向計數器Nx:對滿足abs(dy[i])<c1*h的差異值,檢查其對應的dx[i]值,如果dx[i]>0,則Nx加一,否則Nx減一;
d)豎排方向計數器Ny:如果dx[i]>c2*h,則Ny加一,如果dx[i]<-c2*h,則Ny減一;
上述四個統計計數器的初值全部設定為0,並設c1為容忍度係數,取值為0.2,c2為間距係數,取值為1.0;
(3.5)遍歷完成後,根據四個計數器的值,判定排版類型如下:
a)如果Zx>Zy,且Ny>0,則為從左到右的豎排;
b)如果Zx>Zy,且Ny<0,則為從右到左的豎排;
c)如果Zx>Zy,且Ny=0,則為豎排無方向;
d)如果Zx<=Zy,且Nx>=0,則為從左到右的橫排;
e)如果Zx<=Zy,且Nx<0,則為從右到左的橫排;
(3.6)根據排版類型對集合內的原始文字塊按位置進行排序。
6.如權利要求1至5之一所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(3)中,對集合內原始文字塊排序後進行合併的步驟是:
(3.7)合併文字塊的內容為集合內所有原始文字塊按順序拼接;
(3.8)合併文字塊的區域為集合內所有原始文字塊矩形的最小包容矩形;
(3.9)合併文字塊的字號為集合內所有原始文字塊字號的平均值;
(3.10)合併文字塊的字型為集合內原始文字塊數量最多的字型。
7.如權利要求1至5之一所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(5)中,對多個合併文字塊進行再合併採用人工干預的方法,或者根據文字塊的位置、排版類型、字型字號、語義和詞性信息進行智慧型分析和合併。
8.如權利要求6所述的一種基於PDF的複雜版面的標引方法,其特徵是:步驟(5)中,對多個合併文字塊進行再合併採用人工干預的方法,或者根據文字塊的位置、排版類型、字型字號、語義和詞性信息進行智慧型分析和合併。
實施方式
如圖1所示,《一種基於PDF的複雜版面的標引方法》包括以下步驟:
第一步:S11,導入報刊版面的PDF檔案,對PDF進行分析,獲取版面上的全部的文字內容、文字的位置、字型、字號、序號信息,得到一個原始文字塊的列表L;
該實施例中,提取的原始文字塊信息如圖2,包括文字內容、位置、字型字號、序號等信息。為直觀,直接顯示了PDF的版面圖,並把提取到的文字矩形區域以粉框顯示在版面圖上。可以看到,由於排版軟體的對文字進行了位置控制,因此從PDF中提取到的文字不是流式的一個整塊,而是很多個小的塊,基本上是每字元一個文字塊,如21所示的文字塊為當前選中的原始文字塊,左側的中部為當前選中的原始文字塊21的詳細信息。
第二步:S12,按原始文字塊的距離、字型、字號等信息,對原始文字塊進行聚類,得到多個集合{Si};
該實施例中,聚類使用的方法如下:
(1)創建一個新的集合{S},並選取列表L中第一個原始文字塊Ti作為新集合{S}的第一個原始文字塊,並從列表L中去除該原始文字塊Ti;
(2)對列表L中的剩下的全部原始文字塊進行遍歷,對每個原始文字塊,需要檢查集合{S}中是否至少存在一個近鄰,如果存在近鄰,則把該原始文字塊加入集合{S}中,並從列表L中刪除該原始文字塊。
(3)遍歷完成後,如果列表L不為空,則重複上述步驟(1)和(2),生成一個新的集合。
在判定兩個原始文字塊是否近鄰時,使用了下列的步驟和方法(設兩個待判定的原始文字塊分別為T1和T2,對應的字號為f1和f2,對應的位置左上角坐標分別為(x1,y1)和(x2,y2),右下角坐標分別為(x1’,y1’)和(x2’,y2’)):
(1)計算字號差別係數,定義為c=2*(f1-f2)/(f1+f2);
(2)計算平均字元高度為h=(y1’-y1+y2’-y2)/2;
(3)計算在水平方向的距離係數dx:dx=(max(x1,x2)-min(x1’,x2’))/h,其中max(a,b)表示取兩者的較大值,min(a,b)表示取兩者的較小值;
(4)計算在垂直方向的距離係數dy:dy=(max(y1,y2)-min(y1’,y2’))/h;
(5)根據經驗,設定最大容忍字號差別係數cmax=0.1,最大容忍水平方向距離係數為dxmax=0.9,最大容忍垂直方向距離係數為dymax=0.9;
(6)則判定兩原始文字塊為近鄰的充分必要條件是:c<cmax且dx<dxmax且dy<dymax;
上述的三個判斷標準可以根據實際的情況調整或去除,如忽略字號差異,可以把不同字號的近鄰文字進行聚類。其中的容忍度係數也可以根據實際的情況作調整,如西文版面,一般為橫排,最大容忍水平方向距離係數可以選擇得小一些,而最大容忍垂直方向距離係數適當再大一些。
第三步:S13,對每個集合中的原始文字塊進行排序,併合並該集合的所有原始文字塊,得到合併文字塊;
該實施例中,在合併前的排序中,根據原始文字塊的位置和序號自動可確定排序類型,具體的步驟是(設待處理的集合為{S}):
(1)計算集合{S}中的原始文字塊的平均高度h;
(2)對集合中的原始文字塊按序號進行排序;
(3)順序遍歷集合中的全部原始文字塊,依次計算相鄰兩個原始文字塊的水平位置差異值dx[i]和垂直位置差異dy[i];
(4)設定和計算4個統計計數器如下(初值全部置為0,並設c1為容忍度係數,根據經驗可取為0.2,c2為間距係數,根據經驗可取為1.0):
a)等水平位置計數器Zx,用來記錄滿足abs(dx[i])<c1*h的出現次數,其中abs表示取絕對值(下同);
b)等高度計數器Zy,用來記錄滿足abs(dy[i])<c1*h的出現次數,;
c)橫排方向計數器Nx:對滿足abs(dy[i])<c1*h的差異值,檢查其對應的dx[i]值,如果dx[i]>0,則Nx加一,否則Nx減一;
d)豎排方向計數器Ny:如果dx[i]>c2*h,則Ny加一,如果dx[i]<-c2*h,則Ny減一;
(5)遍歷完成後,根據四個計數器的值,判定排版類型如下:
a)如果Zx>Zy,且Ny>0,則為從左到右的豎排;
b)如果Zx>Zy,且Ny<0,則為從右到左的豎排;
c)如果Zx>Zy,且Ny=0,則為豎排無方向;
d)如果Zx<=Zy,且Nx>=0,則為從左到右的橫排;
e)如果Zx<=Zy,且Nx<0,則為從右到左的橫排;
排版類型的確定,也可以使用其他的方法,如對集合內的文字計算出相鄰字元的水平和垂直的平均間距,按間距確定文字的排版方向是橫排或豎排。
對於已知排版類型的版面,可以省略該步驟。
排版類型確定後,按排版類型的文字閱讀順序進行原始文字塊的排序,並對文字塊進行了合併,合併的步驟是:
(1)合併文字塊的內容為集合內所有原始文字塊按順序拼接;
(2)合併文字塊的區域為集合內所有原始文字塊矩形的最小包容矩形;
(3)合併文字塊的字號為集合內所有原始文字塊字號的平均值;
(4)合併文字塊的字型為集合內原始文字塊數量最多的字型;
圖3是原始文字塊合併後的效果圖,左側的中部31為當前選中的合併文字塊32的詳細信息。
圖3中,左側部分顯示了選中文字塊的信息,可以看到,文字塊已經合併。合併文字塊上顯示的<16∶1>10,其中第二個數字為排版類型,取值1表示橫排從左到右,取值3表示豎排從左到右,取值4表示豎排從右到左,取值5表示豎排無方向。可以看到各合併文字塊的排版類型已經正確獲取。
第四步:S14,按合併文字塊的字號標定合併文字塊的屬性為標題或正文;
該實施例中,使用字號大小作為判斷依據,閾值取為13pt。
對於閾值附屬檔案的合併文字塊,往往存在誤判的可能,因此還可以參考合併文本塊位置、以及周邊的合併文字塊的屬性情況而確定。
如圖4所示,圖4是合併文字塊進一步標引後的效果圖,圖4中,合併文字塊上顯示的<16∶1>10,其中第一個數字塊類型,如取值16表示正文塊,取值1表示標題塊。可以看到標題和正文已經區分,如41和42所示,41所指示的部分為標題,42所指示的部分為正文。
第五步:S15,對多個合併文字塊進行再合併,構建文章;
該實施例中,使用了人工操作合併的方法,選中需要再合併的多個文字塊,進行合併操作,軟體自動根據選中順序進行正文的合併。
也可以使用語義、詞性、字型、字號等信息利用軟體進行智慧型判定閱讀順序後再進行合併。
圖5顯示了再合併的後的結果,可以看到整個正文已經合併。左側51為當前選中的合併文字塊52的詳細信息。
榮譽表彰
2014年11月6日,《一種基於PDF的複雜版面的標引方法》獲得第十六屆中國專利優秀獎。