周生龍 張忠林
摘 要:古文獻(xiàn)版本比對研究是文獻(xiàn)研究的重要方向之一。為提高古文獻(xiàn)的研究效率,文章提出了在古文獻(xiàn)版本差異比對中的圖像文字自動比對方法,本方法的主要內(nèi)容包括信息采集與分類、文獻(xiàn)圖像預(yù)處理、文字切分與存儲、文字比對與文獻(xiàn)差異標(biāo)注等。作者采用本設(shè)計方法對現(xiàn)存文淵閣、文津閣、文溯閣《四庫全書》書前提要的圖像文字進(jìn)行了自動比對研究,驗(yàn)證了該方法的比對效果,以期為古文獻(xiàn)不同版本的比對研究提供借鑒。
中圖分類號:G250文獻(xiàn)標(biāo)識碼:A文章編號:1003-1588(2018)09-0072-03
關(guān)鍵詞:古文獻(xiàn);版本差異;圖像處理;文字比對
1 背景
我國傳世的古籍汗牛充棟,而同一部書因編輯、傳抄、刻板、排版或裝訂形式的不同而產(chǎn)生不同的本子,這就使文獻(xiàn)產(chǎn)生了各種版本[1]。從不同版本研究文獻(xiàn)的內(nèi)容及其存在的差異性上看,古文獻(xiàn)版本比對研究一直以來都是版本研究及文獻(xiàn)研究者們研究的重點(diǎn)之一,了解和研究書籍的版本差異和變化也是順利進(jìn)行文獻(xiàn)研究的重要條件之一。隨著信息化技術(shù)的發(fā)展,中文古文獻(xiàn)的數(shù)字化建設(shè)在我國和日本取得了較快的發(fā)展[2-3]。由于文獻(xiàn)種類和版本繁多,利用信息技術(shù)手段輔助研究人員提高文獻(xiàn)比對研究效率,已成為文獻(xiàn)研究領(lǐng)域亟待解決的問題。
筆者通過對相關(guān)資料的查閱發(fā)現(xiàn),目前國內(nèi)外對這方面的研究甚少,筆者之前曾對現(xiàn)存文淵閣、文津閣、文溯閣(以下簡稱“三閣”)三種《四庫全書》提要圖片進(jìn)行過相關(guān)研究,并設(shè)計出了《四庫全書》提要比對系統(tǒng)[4]。但因時間和經(jīng)費(fèi)等原因,當(dāng)時的研究成果只能對“三閣”《四庫全書》提要圖片進(jìn)行智能檢索,找到相關(guān)的提要圖片,而后要靠人力查找三種提要之間內(nèi)容的不同,進(jìn)而對其進(jìn)行提要比對研究。2016年6月,《四庫全書》提要比對系統(tǒng)曾在湖南大學(xué)主辦的“中國四庫學(xué)高層論壇”會議分組討論時進(jìn)行過演示,與會專家對該系統(tǒng)給予了一致肯定,同時也對該系統(tǒng)提出了寶貴的改進(jìn)意見:建議《四庫全書》比對系統(tǒng)要進(jìn)一步將提要圖片中的每個文字做到智能比對,并標(biāo)記出異同。
筆者基于上述意見,設(shè)計出了一種對若干古文獻(xiàn)圖片中的文字進(jìn)行自動比對的有效方法。
2 圖像文字自動比對的設(shè)計
筆者設(shè)計的圖像文字自動比對方法主要由四個部分組成,即信息采集與分類、文獻(xiàn)圖像預(yù)處理、文字切分與存儲、文字比對與文獻(xiàn)差異標(biāo)注等。
2.1 信息采集與分類
信息采集即采集古文獻(xiàn)不同版本的文字圖像信息。通俗地講就是對文獻(xiàn)的原版進(jìn)行掃描或拍照,獲得其圖像版,這樣可以讓研究者真實(shí)地看到古文獻(xiàn)的原貌,提高研究對象的準(zhǔn)確性,但在信息采集過程中必須盡量減少光線等其他因素的影響。當(dāng)信息采集完成后,再對圖像進(jìn)行分類存儲。存儲結(jié)構(gòu)應(yīng)按照書目結(jié)構(gòu)設(shè)計,確保準(zhǔn)確、有序、快捷地存放。筆者以《四庫全書》為例,其下可按“三閣”建立三個不同的文件夾,每個文件夾下再按照部、類、屬、書名的順序逐級設(shè)計子文件夾,此后在書名文件夾下存放本書按頁編號命名的各頁圖像。存儲結(jié)構(gòu)如圖1所示。
按照圖1存儲結(jié)構(gòu)存儲的主要目的有三個:①圖像查找的快速有序。②方便文件的管理。③為圖像切分后的文字存儲提供依據(jù)。
2.2 圖像預(yù)處理
圖像預(yù)處理是對已采集到的古文獻(xiàn)不同版本的文字圖像進(jìn)行處理,以消除噪點(diǎn)等對后續(xù)處理的影響因素。周進(jìn)和吳欽章認(rèn)為,圖像預(yù)處理的方法有多種[5],在本文中圖像預(yù)處理包括圖像灰度化、圖像二值化、圖像傾斜矯正、圖像噪點(diǎn)的去除等。其中,圖像的灰度化、圖像二值化、圖像傾斜矯正都是采用目前較為成熟的技術(shù)。但是,在圖像噪點(diǎn)的去除中橫豎格線的處理采用了“留全去不全”的方法。其主要內(nèi)容是對于橫豎格線,如果該格線是一條完整的即它在長度上滿足足夠的距離且起始和結(jié)束位置都在指定的范圍內(nèi),則保留該格線,否則去掉該格線。
2.3 文字切分及存儲
文字切分采用分步切分方法實(shí)現(xiàn)。整個切分包括兩個步驟——列切分和字切分。列切分是對豎版文字進(jìn)行列切分,字切分是對每一列文字進(jìn)行切分。字切分又分粗切分和細(xì)切分。其中,粗切分應(yīng)用于相離字(上下字之間有間隔)的切分;細(xì)切分應(yīng)用于重疊、粘連字的切分。細(xì)切分的方法包括二分投影法和始末筆畫特征切分法兩種。文字切分的流程如圖2所示。單字的存儲采用跟蹤分類結(jié)構(gòu)的方法,即在圖像的路徑下建立和圖像名稱相同的文件夾用以存儲該圖像的所有單字。
2.3.1 列切分。古文獻(xiàn)通常采用按列的書寫方式,列切分主要把一幅圖像按照書寫的規(guī)則分割成列。筆者設(shè)計的圖像文字自動比對方法是采用統(tǒng)計過濾的方法進(jìn)行列切分。其主要內(nèi)容:首先,利用計算機(jī)程序在X軸方向?qū)ξ淖謭D像進(jìn)行投影統(tǒng)計出每單位(像素)上的黑色像素的個數(shù)構(gòu)成直方圖并找到最大值。其次,程序再對直方圖進(jìn)行過濾,即所有小于閾值的位置的黑色像素個數(shù)設(shè)置為零,其余不變,其中閾值是動態(tài)變化的,閾值從零開始,最大為直方圖最大值的1/3。最后,計算機(jī)程序根據(jù)每一個閾值得到的過濾結(jié)果對圖像進(jìn)行列切分,選取得到的列的寬度相對集中的一種切分結(jié)果作為最終的切分結(jié)果。
2.3.2 字切分。字切分是整個文字切分的核心,它是在列切分的基礎(chǔ)上進(jìn)行的,旨在切分出列中所包含的所有文字,并以個體的形式出現(xiàn)。字切分包括粗切分和細(xì)切分。粗切分的主要目的是分割出每一列中的相離字。王江晴、曹衛(wèi)認(rèn)為,系統(tǒng)粗切分采用傳統(tǒng)的投影法[6],首先對每一列在Y軸上進(jìn)行投影構(gòu)成投影直方圖,然后在投影直方圖上找到黑色像素個數(shù)為零的Y軸位置作為切分點(diǎn),最后再把錯誤切分的字進(jìn)行合并,并統(tǒng)計出字的平均高度,如“呂”字會錯誤切分成兩個字,此時要對其進(jìn)行合并。細(xì)切分是在粗切分的基礎(chǔ)上對字與字之間存在重疊及粘連情況的字串進(jìn)行切分。筆者設(shè)計的圖像文字自動比對方法的細(xì)切分采用二分投影切分,并在此基礎(chǔ)上采用始末筆畫特征切分。①二分投影切分。二分投影切分的主要內(nèi)容是將存在重疊、粘連的字串在X軸方向分為兩部分,并分別對字段的前半部分和后半部分做Y軸方向上的投影并構(gòu)成投影數(shù)組。然后,在每一個投影數(shù)組中對每兩個字找到一個分割點(diǎn)或分割范圍,在查找分割點(diǎn)或分割范圍時采用從上到下的順序分析黑色像素的走勢,根據(jù)走勢在兩個投影數(shù)組內(nèi)找到黑色像素變化的轉(zhuǎn)折點(diǎn),從而定位字與字的分割點(diǎn),對重疊、粘連字進(jìn)行切分。②始末筆畫特征切分是對二分投影切分的一個補(bǔ)充,因二分投影中采用直線切分,會使有些筆畫的一部分被分割到與它相鄰的字的像素數(shù)組中。始末筆畫特征切分就是把錯誤分割的部分抓取出來并把它放在應(yīng)該放的位置上。始末筆畫特征的提取是根據(jù)漢字的開始筆畫和結(jié)束筆畫進(jìn)行的,其內(nèi)容是:①讀取頂部第一行和底部第一行即最后一行的像素并記錄黑色像素的位置。②對相連的黑色像素進(jìn)行合并,并記錄合并后的黑色像素點(diǎn)集的起始位置、結(jié)束位置和長度。③采用像素跟蹤法[7]跟蹤每一個黑色像素點(diǎn)集,得到每一個黑色像素點(diǎn)集對應(yīng)的筆畫。④對每一個得到的筆畫根據(jù)其走向及走向上的長度判斷出筆畫的類型(橫、豎、撇、捺、點(diǎn))。⑤根據(jù)漢字開始筆畫和結(jié)束筆畫的特點(diǎn),判斷是屬于該字還是該字的上一個字或是下一個字。此外,對于同一個目錄下的多頁掃描圖像,按圖像編號順序切分,而后對經(jīng)過切分后的單個文字圖像進(jìn)行統(tǒng)一編號命名,存儲到對應(yīng)的文件目錄中。
2.4 文字比對與文獻(xiàn)差異標(biāo)注
文字識別自身存在的錯誤較多,加上古文獻(xiàn)文字的自身特點(diǎn),本系統(tǒng)直接使用文字圖像相似性算法實(shí)現(xiàn)文字比對。因?yàn)榇饲扒蟹趾蟮谋葘ο笠呀?jīng)分別存儲在各自文件目錄之下,所以系統(tǒng)就可將每一個文字圖像作為比對對象[8]。在比對過程中,首先,相關(guān)工作人員要對文字圖像進(jìn)行歸一化處理,設(shè)置文字圖像相似度置信閾值。其次,相關(guān)工作人員采用雙重循環(huán)方法逐一對兩個文件目錄下的序列圖像進(jìn)行相似度計算,并對計算結(jié)果與相似度置信閾值進(jìn)行比較,并將滿足條件的位置信息記錄下來。最后,相關(guān)工作人員根據(jù)所記錄的位置信息,分別在兩幅原掃描圖像中進(jìn)行背景標(biāo)記,完成圖像版本差異比對結(jié)果的存儲和顯示。比對過程如圖3所示。
3 結(jié)語
筆者以古文獻(xiàn)版本比對研究為背景,提出了圖像文字自動比對的有效處理方法,包括圖像采集和分類、圖像預(yù)處理、文字切分及存儲、文字比對與差異標(biāo)注等。其中,文字切分是整個信息化處理的核心環(huán)節(jié)。筆者通過采用圖像文字自動比對方法對“三閣”《四庫全書》的書前提要文字圖像進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)本方法是可行且高效的。周生龍、吳相錦認(rèn)為,圖像文字自動比對方法是對《四庫全書》書前提要比對系統(tǒng)的重大改進(jìn)[9],可以完成不同版本的圖像文件的自動分割、圖元對比和差異標(biāo)注,對利用計算機(jī)更高效、快速地自動提取古文獻(xiàn)文字差異等具有很大的幫助,可為古文獻(xiàn)版本差異研究提供更加有效快捷的技術(shù)支持。
參考文獻(xiàn):
[1] 李慶文.同種文獻(xiàn)的版本與版次的區(qū)分[J].國家圖書館學(xué)刊,2012(1):48-51.
[2]曾偉忠.數(shù)字時代古籍目錄學(xué)的發(fā)展研究[J].圖書館學(xué)研究,2010(5):2-5.
[3] 毛建軍.日本中文古籍?dāng)?shù)字資源的建設(shè)[J].圖書館建設(shè),2009(3):33-35.
[4][9] 周生龍,吳相錦.《四庫全書》書前提要比對系統(tǒng)設(shè)計[J].圖書館工作與研究,2015(6):26-28.
[5] 周進(jìn),吳欽章.數(shù)字視頻判讀中圖像預(yù)處理技術(shù)研究[J].光電工程,2006(10):141-144.
[6] 王江晴,曹衛(wèi).基于極小閾值和曲線擬合的垂直投影漢字切分[J].中南民族大學(xué)學(xué)報(自然科學(xué)版),2011(4):82-85.
[7] 高彥宇,楊揚(yáng).無約束手寫體漢字切分方法綜述[J].計算機(jī)工程,2004(5):144-146.
[8] 吳相錦,張忠林.古文獻(xiàn)文字圖像差異性比對方法研究[J].蘭州交通大學(xué)學(xué)報,2015(6):101-105.
(編校:馬懷云)