摘要:為了提高文本數(shù)字化系統(tǒng)的質(zhì)量,針對(duì)該系統(tǒng)的錯(cuò)誤特點(diǎn),采用頻率統(tǒng)計(jì)樹構(gòu)建查錯(cuò)模型,結(jié)合切分信息進(jìn)行標(biāo)點(diǎn)糾錯(cuò),通過(guò)表形碼和緩存集給出糾錯(cuò)建議,提出了規(guī)則與統(tǒng)計(jì)結(jié)合的自動(dòng)糾錯(cuò)方法。實(shí)驗(yàn)結(jié)果表明,該方法召回率為84.65%,準(zhǔn)確率為78.89%,誤判率為9.07%,能夠滿足數(shù)字化系統(tǒng)需求。
關(guān)鍵詞:自動(dòng)糾錯(cuò); 文本數(shù)字化; 頻率統(tǒng)計(jì)樹; 切分信息; 表形碼
中圖分類號(hào):TP391.1文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)05-1434-03
文本數(shù)字化系統(tǒng)包括圖像掃描、版式分析、行字切分、圖像分析、切分集成、OCR識(shí)別、文本糾錯(cuò)、質(zhì)量判別等幾個(gè)環(huán)節(jié)。其中文本糾錯(cuò)環(huán)節(jié)對(duì)于提高識(shí)別準(zhǔn)確率,降低最終成品的錯(cuò)誤率,達(dá)到客戶需求具有重要的意義。傳統(tǒng)的糾錯(cuò)方法主要是依賴人工校對(duì),費(fèi)時(shí)費(fèi)力。雖然也有產(chǎn)品化的校對(duì)軟件,但這些軟件的適應(yīng)性和糾錯(cuò)率均有較大的局限性。對(duì)于大規(guī)模的文本數(shù)字化項(xiàng)目而言,因其范圍廣、數(shù)量龐大,且素材個(gè)體差異較大,若能進(jìn)行計(jì)算機(jī)自動(dòng)糾錯(cuò),則可以滿足高效率與高質(zhì)量的要求,同時(shí)穩(wěn)定性和靈活性也有所保障。
國(guó)外對(duì)英文文本糾錯(cuò)技術(shù)的研究開始較早,目前主要有誤拼字典法、骨架鍵法[1]等;國(guó)內(nèi)對(duì)中文文本糾錯(cuò)技術(shù)的研究從20世紀(jì)90年代開始,多采用統(tǒng)計(jì)與規(guī)則相結(jié)合的方法。張仰森等人對(duì)文本分詞并尋找散串,使用字、詞、詞性的二元或三元模型查錯(cuò)[2],構(gòu)建拼音、五筆等外碼相近字的混淆詞典,采用最大熵方法進(jìn)行糾錯(cuò)排歧[3]。駱衛(wèi)華、龔小謹(jǐn)?shù)热私Y(jié)合模式匹配和分析句型成分的方法進(jìn)行語(yǔ)法錯(cuò)誤檢查[4],并綜合使用基于實(shí)例、基于統(tǒng)計(jì)和基于規(guī)則的搭配關(guān)系進(jìn)行語(yǔ)義查錯(cuò)[5]。張磊等人綜合使用鄰接詞、詞性的三元接續(xù)關(guān)系、上下文語(yǔ)義類、詞內(nèi)鄰接漢字四種特征模板,提出了基于特征的中文校對(duì)方法[6]。上面提到的方法均是非受限的糾錯(cuò)方法。中文自動(dòng)糾錯(cuò)技術(shù)由于漢字自身特點(diǎn)及漢語(yǔ)語(yǔ)法和語(yǔ)義計(jì)算機(jī)表示的不完善,還沒(méi)有令人滿意的通用方法。針對(duì)不同的糾錯(cuò)環(huán)境采用特定的方法,往往能夠大幅度提高糾錯(cuò)準(zhǔn)確率?;诖?,本文對(duì)文本數(shù)字化系統(tǒng)的錯(cuò)誤進(jìn)行分析,利用切分信息和表形碼,結(jié)合工程經(jīng)驗(yàn)和頻率統(tǒng)計(jì)樹,提出一種有針對(duì)性的自動(dòng)糾錯(cuò)方法。
1問(wèn)題分析
1.1錯(cuò)誤分析
文本數(shù)字化系統(tǒng)中的錯(cuò)誤有其獨(dú)有的特點(diǎn)。進(jìn)行數(shù)字化的源文本,往往是經(jīng)過(guò)多次校對(duì)的報(bào)刊、雜志等,其本身正確率較高。而數(shù)字化生成文件的質(zhì)量則受版式分析、字詞切分和OCR等各個(gè)環(huán)節(jié)的影響,且原文版面污染以及印刷質(zhì)量差也會(huì)降低其正確率。
對(duì)某項(xiàng)目中一份待校文本進(jìn)行錯(cuò)誤分析,該文本共含字?jǐn)?shù)8 424個(gè)。其中包含錯(cuò)誤435處,類型分析如下(表1):
a) 標(biāo)點(diǎn)錯(cuò)誤共238個(gè)。其中:“,”誤識(shí)為“’”多次出現(xiàn);另外還有“,”誤識(shí)為“于”或“夕”,“?!闭`識(shí)為“o”,“(”誤識(shí)為“《”等。
b) 形近字錯(cuò)誤共156個(gè),如“即”誤識(shí)為“郎”,“句”誤識(shí)為“旬”,“人”誤識(shí)為“入”。
c) 切分造成的錯(cuò)誤23個(gè),如“品”誤識(shí)為“口凹”。
d) 雜點(diǎn)造成的錯(cuò)誤13個(gè),如多出“.”或“?!钡葮?biāo)點(diǎn)。
e) 其他錯(cuò)誤5個(gè)。
1.2輸入/輸出
傳統(tǒng)的自動(dòng)糾錯(cuò)方法一般是輸入待校文本,輸出經(jīng)過(guò)糾錯(cuò)處理的成品文件。本文中的糾錯(cuò)方法將字切分模塊提供的idd信息作為附加輸入,用于進(jìn)行標(biāo)點(diǎn)糾錯(cuò)。Idd信息保存的是切分后單字的相關(guān)特征,如它所屬的行號(hào)、字號(hào)、字寬、字高、行高等。本方法輸出的成品文件根據(jù)不同的客戶需求,可以帶有一定的備選字。此外還輸出糾錯(cuò)記錄文件chg。
1.3性能評(píng)價(jià)
糾錯(cuò)方法的性能采用召回率(recall)、準(zhǔn)確率(precision)和誤判率(1)三個(gè)指標(biāo)來(lái)評(píng)價(jià);文本整體質(zhì)量采用錯(cuò)誤率(error)來(lái)評(píng)價(jià);文本質(zhì)量改進(jìn)率(improve)則用糾錯(cuò)前后錯(cuò)誤的比值來(lái)衡量。分別用eall、esuc、efail、e1、efixed表示待校文本錯(cuò)誤數(shù)、成功糾錯(cuò)數(shù)、失敗糾錯(cuò)數(shù)、誤判數(shù)、糾錯(cuò)總數(shù),則有efixed=esuc+efail+e1。
2.1必對(duì)詞集、必錯(cuò)詞集與經(jīng)驗(yàn)糾錯(cuò)
通過(guò)長(zhǎng)期糾錯(cuò)經(jīng)驗(yàn)積累,得到必錯(cuò)詞集和必對(duì)詞集兩個(gè)集合。必錯(cuò)詞集是錯(cuò)誤字組(以下稱必錯(cuò)詞)到對(duì)應(yīng)的正確詞(以下稱替換詞)的映射。它有以下特點(diǎn):
a)必錯(cuò)詞本身不能成詞,一般為三個(gè)字以上的詞組,只要在糾錯(cuò)文本出現(xiàn),可以直接利用替換詞糾錯(cuò)(非法例子:“人口”替換“入口”;合法例子:“深圳特區(qū)”替換“深玔特區(qū)”);
b)替換沒(méi)有歧義,不能出現(xiàn)同一個(gè)必錯(cuò)詞對(duì)應(yīng)多個(gè)替換詞的情況,反之則可以;
c)必錯(cuò)詞不能是對(duì)應(yīng)替換詞的子串。
必對(duì)詞集是正確詞的集合,主要為四個(gè)字及以上具有較強(qiáng)耦合性的固定搭配,主要包括國(guó)內(nèi)外地名、人名、成語(yǔ)、歇后語(yǔ)、流行新詞等。
在經(jīng)驗(yàn)糾錯(cuò)的過(guò)程中,采用逆向最大匹配法(reverse maximum matching,RMM)查找待校文本。對(duì)于出現(xiàn)的必錯(cuò)詞直接用對(duì)應(yīng)替換詞替換;對(duì)于出現(xiàn)的必對(duì)詞則進(jìn)行標(biāo)定,后續(xù)步驟不對(duì)其進(jìn)行查錯(cuò)。
2.2 Idd信息與標(biāo)點(diǎn)糾錯(cuò)
Idd保存了文本中字符OCR相關(guān)信息。其數(shù)據(jù)結(jié)構(gòu)定義如下:
typedef struct iddtype{
WORD line_ystart; //該漢字圖像行起始絕對(duì)坐標(biāo)值
WORD line_height; //該行高
WORD ch_flag; //標(biāo)志字節(jié)
WORD ch_y0; //單字在掃描圖像中的Y坐標(biāo)(絕對(duì)值)
WORD ch_x0; //單字在掃描圖像中的X坐標(biāo)(絕對(duì)值)
WORD ch_height; //單字高度
WORD ch_width; //單字寬度
LONG offset; //單字圖像在圖像文件中的地址指針
};
通過(guò)比較單個(gè)字符idd信息與其所在行所有字符的平均idd信息可以判斷該字符的形狀(扁橫、扁豎、小四方等)與位置(正中、偏上、偏下)。而對(duì)于每一種標(biāo)點(diǎn),均有其對(duì)應(yīng)混淆集,該標(biāo)點(diǎn)易被誤識(shí)為混淆集中的元素。這些元素可能為數(shù)字、漢字或英文字母等,如“?!睂?duì)應(yīng)“o”“0”“口”;“!”對(duì)應(yīng)“1”和“i”“I”等。通過(guò)當(dāng)前字符的形狀特征與其所在的標(biāo)點(diǎn)混淆集,可給出對(duì)應(yīng)的糾錯(cuò)建議。例如,對(duì)于待校文本中某行出現(xiàn)“夕”,檢查其idd信息,有
ch_height<1/6 ave_height(7)
ch_width<1/6 ave_height(8)
ch_y0<1/2 ave_y0(9)
其中:ave_height、ave_width分別為該行字的平均高度和寬度;ave_y0為該行的平均y坐標(biāo)。
由此知道該字符字型特征為小四方(明顯小于同行其他漢字),且處于偏下位置,符合“,”的idd特征;又因“夕”處于“,”混淆集中,故給出相應(yīng)糾錯(cuò)建議“夕”->“,”。
在標(biāo)點(diǎn)糾錯(cuò)過(guò)程中,利用棧來(lái)記錄成對(duì)標(biāo)點(diǎn)匹配情況。根據(jù)語(yǔ)法規(guī)則,不同標(biāo)點(diǎn)有不同的查找限界符。若出現(xiàn)不匹配,則在該限界符范圍內(nèi)查找符合缺失標(biāo)點(diǎn)idd特征,且處于對(duì)應(yīng)混淆集中的漢字,并給出糾錯(cuò)建議。例如:棧頂有“(”出現(xiàn),在對(duì)應(yīng)限界符內(nèi)出現(xiàn)不成對(duì)“》”,其符合前者的idd特征,且在其混淆集中,因此加入糾錯(cuò)建議“》”->“)”。
2.3頻率統(tǒng)計(jì)樹與散字定位
散字是指與上下文聯(lián)系緊密程度較弱的字。本文通過(guò)大規(guī)模語(yǔ)料得到的頻率統(tǒng)計(jì)樹計(jì)算當(dāng)前字在上下文環(huán)境下出現(xiàn)的條件概率。若其小于某個(gè)閾值,則可判斷其為散字。
對(duì)字典中的每個(gè)字X統(tǒng)計(jì)其向前和向后的連續(xù)兩個(gè)字,分別保存在XL.wdb(上統(tǒng)計(jì)樹)與XR.wdb(下統(tǒng)計(jì)樹)中。為了便于處理,在建樹過(guò)程中對(duì)一個(gè)或多個(gè)連續(xù)出現(xiàn)的數(shù)字統(tǒng)一用全角的“1”表示;對(duì)一個(gè)或多個(gè)連續(xù)出現(xiàn)的英文字母則統(tǒng)一用全角的“A”表示;對(duì)于各種句子分隔符統(tǒng)一用全角的“。”表示。例如:對(duì)于當(dāng)前字“現(xiàn)”,其實(shí)驗(yàn)樣本生成的右統(tǒng)計(jì)樹中部分結(jié)果為
代225已816
的41化21人9將13
由此不僅可以得到相鄰兩個(gè)字共現(xiàn)次數(shù),如“現(xiàn)代”225次,“現(xiàn)已”816次;還可以得到相鄰三個(gè)字共現(xiàn)次數(shù),如“現(xiàn)代的”41次,“現(xiàn)代化”21次,“現(xiàn)已將”13次。利用共現(xiàn)次數(shù)與單字統(tǒng)計(jì)次數(shù)可以求出條件概率與單字概率,從而有:
其中:p(wi)是該字在語(yǔ)料中出現(xiàn)的概率;p0=1/R(R是字典中的字?jǐn)?shù));∑3j=0λj=1,且各權(quán)值可以通過(guò)BaumWelch算法獲得。因?yàn)樯傻念l率統(tǒng)計(jì)樹規(guī)模較大,為減少頻繁的磁盤讀寫,本文采用面向字而非待校文本的查錯(cuò)方法。每次處理字典中的一個(gè)字,從磁盤讀進(jìn)對(duì)應(yīng)頻率統(tǒng)計(jì)樹,掃描整個(gè)文本,在該字所有出現(xiàn)位置計(jì)算條件概率,判斷該次出現(xiàn)是否為散字。若是則由2.4節(jié)的步驟給出建議,然后處理下一個(gè)字。
2.4糾錯(cuò)建議生成
對(duì)于2.3節(jié)中定位的散字,自動(dòng)產(chǎn)生糾錯(cuò)建議,其來(lái)源主要分為兩部分,即糾錯(cuò)緩存集和表形碼形近字。2.4.1糾錯(cuò)緩存集
由1.1節(jié)中的錯(cuò)誤分析可知,同一文本中相同錯(cuò)誤可能會(huì)反復(fù)出現(xiàn)。對(duì)于相同批次的待校文本,因其印刷版式和質(zhì)量以及版面污染的程度等因素均具有相似性,其錯(cuò)誤也同樣具有重復(fù)性。由此設(shè)置糾錯(cuò)緩存集,記錄最近的糾錯(cuò)記錄,即錯(cuò)誤字及其上下文環(huán)境到其替換字的映射。生成糾錯(cuò)建議時(shí),在緩存集中查找當(dāng)前字對(duì)應(yīng)的糾錯(cuò)記錄,并按優(yōu)先級(jí)高低依次加入完全匹配、上文或下文匹配的糾錯(cuò)模式。
2.4.2表形碼與形近字
漢字是一種象形文字,文本數(shù)字化產(chǎn)生的錯(cuò)誤中形近字錯(cuò)誤也占較大部分。計(jì)算機(jī)中用于表示漢字的內(nèi)碼,并不能直接反映其形狀特征,如GB2312中的一級(jí)字按拼音排序,而GBK和Unicode中,漢字排序更無(wú)簡(jiǎn)單規(guī)律可言。因此判斷漢字之間的形狀相似程度,不能簡(jiǎn)單地計(jì)算其內(nèi)碼距離。
本方法采用表形碼來(lái)判斷形近字。表形碼是形碼的一種,它將漢字系統(tǒng)拆分為369個(gè)部件,具有相似特性的部件對(duì)應(yīng)相同字母,每個(gè)漢字拆分得到的各部件對(duì)應(yīng)字母組合成表形碼,碼長(zhǎng)為3或4。相比將漢字拆分成字根,表形碼拆分后的部件更完整地保留了漢字的局部形狀特征,部件組合更清晰地反映了整體結(jié)構(gòu)特征,因而在形近字判別中能起到更好的效果。
設(shè)兩個(gè)字的編碼分別為A1A2…An和B1B2…Bn(3≤n≤4),則其編碼距離可以用如下公式表示:
提取Windows 98系統(tǒng)自帶的表形碼文件Winbx.mb,將其生成碼表文件。對(duì)2.3節(jié)定位散字,在碼表文件中查詢其對(duì)應(yīng)表形碼,在糾錯(cuò)建議集中依次加入具有相同編碼的字,以及僅有一位編碼不同,且編碼距離最小的前10個(gè)字。
2.5錯(cuò)誤校正
對(duì)2.4節(jié)給出的糾錯(cuò)建議,按式(12)計(jì)算得到的概率高低進(jìn)行排序。根據(jù)項(xiàng)目需求,可以選取概率最高的前三個(gè)糾錯(cuò)建議作為備選字一并寫入成品文件,并在chg文件中記錄,同時(shí)將該結(jié)果加入糾錯(cuò)緩存集。
3實(shí)驗(yàn)結(jié)果
為了檢驗(yàn)本文的自動(dòng)糾錯(cuò)方法,選取含有658處錯(cuò)誤,共17 170字的文本進(jìn)行測(cè)試。該方法共給出706處糾錯(cuò)建議。其中557處前三項(xiàng)糾錯(cuò)建議正確,356處第一項(xiàng)建議正確,出現(xiàn)誤判64次,準(zhǔn)確率為78.89%,召回率為84.65%,誤判率為9.07%,最終成品正確率為99.04%,達(dá)到項(xiàng)目要求。具體分析如表3所示。
分析可知經(jīng)驗(yàn)糾錯(cuò)和idd糾錯(cuò)占糾錯(cuò)總數(shù)的較大部分,而必對(duì)/必錯(cuò)詞集以及標(biāo)點(diǎn)混淆集均較多地依賴項(xiàng)目經(jīng)驗(yàn)積累,對(duì)這些集合需不斷補(bǔ)充完善。另外,對(duì)于切分錯(cuò)誤、版面雜點(diǎn)造成的多字錯(cuò)誤,糾正率需進(jìn)一步提高。
4結(jié)束語(yǔ)
本文提出的針對(duì)文本數(shù)字化系統(tǒng)效果自動(dòng)糾錯(cuò)方法,經(jīng)初步實(shí)驗(yàn),召回率和準(zhǔn)確率較高,糾錯(cuò)效果較好,滿足工程需求。今后的工作將對(duì)中英數(shù)混排切分錯(cuò)誤以及雜點(diǎn)多字錯(cuò)誤的糾錯(cuò)進(jìn)行進(jìn)一步研究。
參考文獻(xiàn):
[1]POLLOCK J J A Z. Automatic spelling correction in scientific and scholarly text [J].Communication of ACM, 1984, 27(4):358-368.
[2]張仰森,曹元大,俞士汶. 基于規(guī)則與統(tǒng)計(jì)相結(jié)合的中文文本自動(dòng)查錯(cuò)模型與算法[J].中文信息學(xué)報(bào),2006,20(4):1-7.
[3]張仰森,曹元大,徐波. 基于統(tǒng)計(jì)的糾錯(cuò)建議給出算法及其實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(11):106-109.
[4]龔小謹(jǐn),羅振聲,駱衛(wèi)華. 中文文本自動(dòng)校對(duì)中的語(yǔ)法錯(cuò)誤檢查[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(8):98-100.
[5]駱衛(wèi)華,羅振聲,龔小謹(jǐn). 中文文本自動(dòng)校對(duì)的語(yǔ)義級(jí)查錯(cuò)研究[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(12):115-118.
[6]張磊,周明,黃昌寧,等. 中文文本自動(dòng)校對(duì)[J].語(yǔ)言文字應(yīng)用,2001,15(1):19-26.
[7]張仰森,俞士汶. 文本自動(dòng)校對(duì)技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2006,23(6):8-12.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”