賈鈺峰,章蓬偉,邵小青,張玉茜
(1 新疆科技學(xué)院 工商管理系, 新疆 庫爾勒841000; 2 中國石油天然氣運(yùn)輸集團(tuán), 新疆 庫爾勒841300)
印刷體文字識(shí)別主要是針對印刷文字進(jìn)行識(shí)別。 文字識(shí)別系統(tǒng)由預(yù)處理,特征提取,模式匹配和后處理四大模塊組成[1]。 后處理的主要任務(wù)是提高系統(tǒng)的識(shí)別率。 本文中印刷體維吾爾文識(shí)別后處理是采用統(tǒng)計(jì)方法實(shí)現(xiàn)的[2],即將識(shí)別結(jié)果與存儲(chǔ)這類字符文本所有詞的數(shù)據(jù)庫中的信息作比較或分析字符串出現(xiàn)的頻率。
本文的維吾爾文印刷識(shí)別后處理,是通過對識(shí)別錯(cuò)誤建立誤差模型,用模型中的錯(cuò)誤分類與統(tǒng)計(jì),得出錯(cuò)誤字母與正確字母之間的概率,從而得出隱馬爾科夫模型參數(shù)(A、B、π) 中的B 矩陣(觀察矩陣),其流程如圖1 所示。 最終使用HMM 模型進(jìn)行校正維文印刷體識(shí)別后處理,通過對結(jié)果進(jìn)行觀察,判斷該方法是否可行。
圖1 實(shí)驗(yàn)流程圖Fig.1 Experimental flow chart
本文后處理實(shí)驗(yàn)前,通過對54 個(gè)維吾爾文的圖像進(jìn)行識(shí)別,預(yù)先準(zhǔn)備了錯(cuò)誤語料信息。 如圖2 所示。
誤差模型是通過文本比對程序比對后,發(fā)現(xiàn)識(shí)別后錯(cuò)誤的類型主要是切分的錯(cuò)誤,空格的錯(cuò)誤,近似字母和首字母的錯(cuò)誤。 對錯(cuò)誤類型人工調(diào)整的更加合理后,再對錯(cuò)誤語料進(jìn)行處理得到的模型。
圖2 識(shí)別效果圖Fig.2 Recognition effect picture
20 世紀(jì)初俄羅斯數(shù)學(xué)家Markov 首次提出了一種隨機(jī)過程。 該隨機(jī)過程是一種用參數(shù)表示的,用于描述隨機(jī)過程統(tǒng)計(jì)特性的概率模型,是一個(gè)雙重隨機(jī)過程,由兩個(gè)部分組成:馬爾可夫鏈和一般隨機(jī)過程。 其中,馬爾可夫鏈用來描述狀態(tài)的轉(zhuǎn)移,用轉(zhuǎn)移概率矩陣描述。 一般隨機(jī)過程用來描述狀態(tài)與觀察值的關(guān)系,用觀察值概率矩陣描述。 對于HMM模型,其狀態(tài)轉(zhuǎn)換過程是隱含的,因此稱之為“隱”馬爾可夫模型。
HMM 中相關(guān)概念的定義如下[3]:
(1)隱含狀態(tài): S ={s1,s2,…,sn},是可能出現(xiàn)的隱狀態(tài)集合。 其中N 是狀態(tài)的總數(shù);
(2)不同的觀察符號總數(shù)M。 觀察序列被模型化后的輸出,各個(gè)符號表示為:V ={v1,v2,…,v};
(3)狀態(tài)轉(zhuǎn)換概率A ={aij}X.其中:
實(shí)際應(yīng)用中,根據(jù)具體情形添加相應(yīng)的限制。模型的定義中,假設(shè)一個(gè)狀態(tài)能達(dá)到任何狀態(tài)(也包括本身狀態(tài));
(4)在某一個(gè)狀態(tài)J 中觀察符號概率分布B ={ bj(k)},其中:
(5)初始狀態(tài)分布:模型中的各個(gè)狀態(tài)初始觀察符號概率。
HMM 包含3 個(gè)問題:
問題1對給予的觀察序列O =o1o2…oT和一個(gè)模型HMM (π,A,B), 如何有效地計(jì)算該觀察序列的出現(xiàn)概率,也就是根據(jù)已給予的模型和觀察序列如何計(jì)算此觀察序列被此模型產(chǎn)生的概率。 此問題可用前向算法或后向算法解決。
問題2對給予的觀察序列O =o1o2…oT和一個(gè)模型HMM (π,A,B), 如何選擇一個(gè)理想的隱狀態(tài)序列(隱狀態(tài)序列最可能地產(chǎn)生所給出的觀察序列),此問題可用維特比(Viterbi) 算法用來解決。
問題3觀察序列的出現(xiàn)概率盡量增大的情況下,如何優(yōu)化模型的各種參數(shù),使該模型最好地描述觀察序列的產(chǎn)生,此問題可用前向-后向算法(BW算法)來解決。
通過統(tǒng)計(jì)分析錯(cuò)誤語料中的錯(cuò)誤,得到誤差模型,誤差模型主要工作:一個(gè)是查找錯(cuò)誤單詞隊(duì)列,另一個(gè)是查找詳細(xì)錯(cuò)誤類型[3]。
首先,對錯(cuò)誤文本E 和正確文本R 進(jìn)行逐個(gè)字符的對照,當(dāng)發(fā)現(xiàn)字符r 與字符e 不一致時(shí),分別找出R 中與字符r 對應(yīng)的單詞Ri,E 中與字符e 相對應(yīng)的 單 詞 Ej。 找 出 R 中 Ri后 的 所 有 單 詞Ri+1Ri+2Ri+2…Ri+n,E 中 Ej后 的 所 有 單 詞Ej+1Ej+2Ej+3…Ej+m, 逐 個(gè) 單 詞 的 比 較,當(dāng) 發(fā) 現(xiàn) 單 詞Ri+x與 單 詞 Ej+y相 等 時(shí), 則 單 詞RiRi+1Ri+2Ri+3…Ri+x-1為 正 確 序 列, 否 則 單 詞EjEj+1Ej+2Ej+3…Ej+y-1為錯(cuò)誤序列,示意圖如圖3 所示。
圖3 查找錯(cuò)誤單詞隊(duì)列示意圖Fig.3 Diagram of finding wrong word queue
錯(cuò) 誤 類 型 分 析 模 塊 將 單 詞RiRi+1Ri+2Ri+2Ri+3…Ri+x-1視 作 P, 將 字 符 串EjEj+1Ej+2Ej+3…Ej+y-1視作Q。 對P 與Q 進(jìn)行逐個(gè)字符的比較,當(dāng)發(fā)現(xiàn)字符Pi與字符Qj不等且字符Pi+x與字符Qj+y相等時(shí),則PiPi+1Pi+2Pi+3…Pi+x-1為正確字符,QjQj+1Qj+2Qj+3…Qj+y-1為錯(cuò)誤字符。 通過分析比較正確字符與錯(cuò)誤字符得出錯(cuò)誤類型,錯(cuò)誤類型分析模塊流程示意圖如圖4 所示。
圖4 查找詳細(xì)錯(cuò)誤類型示意圖Fig.4 Schematic diagram of finding detailed error types
對于HMM 模型而言,該模型的適用對象為雙隨機(jī)事件,比如語音識(shí)別,文字識(shí)別。 對于識(shí)別后處理與文本校正,一般都認(rèn)為是單隨機(jī)事件,所以并不適用于HMM 模型。 但文本識(shí)別并不是完全意義上的單隨機(jī)事件,它也有雙隨機(jī)特性,也可以適用于HMM 模型。
首先,對HMM 模型三元組(π,A,B) 進(jìn)行分析。 A 矩陣為轉(zhuǎn)移矩陣,即從一種隱藏狀態(tài)轉(zhuǎn)移到另一種隱藏狀態(tài)的概率集合。 B 矩陣為觀察矩陣,即從一種觀察值到一種隱藏狀態(tài)的概率集合。 π 序列為初始概率序列,即一種隱藏狀態(tài)的初始概率集合[4-5]。
對于拼寫文字,A 矩陣就是從一個(gè)字母轉(zhuǎn)移到另一個(gè)字母的概率,即aij為aiaj這種組合在訓(xùn)練集中的概率,其中ai為一個(gè)字母,aj為另一個(gè)字母。 π序列就是一個(gè)字母為單詞首字母的概率。 可以得出字母為隱藏狀態(tài),觀察序列就是待校正的錯(cuò)誤單詞,由此得出觀察值為校正的錯(cuò)誤單詞的字母。 那么字母即為隱藏狀態(tài)又為觀察值,也不會(huì)產(chǎn)生沖突,因?yàn)殡[藏狀態(tài)對應(yīng)于正確單詞的字母,而觀察值對應(yīng)于錯(cuò)誤單詞的字母(包括正確字母與錯(cuò)誤字母),雖然二者為同一個(gè)集合, 但二者的意義不同。 例子:單詞the 被識(shí)別成tbe,單詞list 被識(shí)別成bist,單詞bad被識(shí)別成bab,即字母h、l、d,都有可能被識(shí)別成b,當(dāng)?shù)玫揭粋€(gè)包含字母b 的觀察序列(待校正單詞),字母b 為觀察序列中的一個(gè)觀察值,從b 可以得出那些隱藏狀態(tài)。 字母b 可以由其本身識(shí)別得出,所以可得出隱藏狀態(tài)字母b,除了其本身外,字母b 還可以由字母h、l、d 錯(cuò)誤的識(shí)別得出,因此還可以得出隱藏狀態(tài)字母h、l、d,通過觀察值字母b,可得出隱藏狀態(tài)字母b、h、l、d。 由此,可以對誤差模型中的錯(cuò)誤分類進(jìn)行分析,得出觀察值與隱藏狀態(tài)對應(yīng)的B矩陣(觀察矩陣)。 維吾爾文字也屬于拼寫文字,也可以用該方法生成B 矩陣(觀察矩陣)。
生成A 矩陣(轉(zhuǎn)移矩陣)的流程圖如圖5 所示。
圖5 生成A 矩陣流程圖Fig.5 Flow chart of generating a matrix
生成B 矩陣(隱藏矩陣)的流程圖如圖6 所示:
圖6 生成B 矩陣的流程圖Fig.6 Flow chart of generating B matrix
生成π 序列(初始概率序列)的流程圖如圖7所示。
圖7 生成π 序列的流程圖Fig.7 Flow chart of generating π sequence
對于誤差模型,編寫了兩個(gè)算法:(1)查找錯(cuò)誤單詞隊(duì)列算法;(2)查找詳細(xì)錯(cuò)誤類型算法。 將錯(cuò)誤類型分為5 種,分別為:刪除錯(cuò)誤(單與多)、替換錯(cuò)誤(單與多)、插入錯(cuò)誤(單與多)、空格錯(cuò)誤、其它情況錯(cuò)誤。
將查找錯(cuò)誤單詞隊(duì)列算法執(zhí)行部分結(jié)果,見表1。
表1 錯(cuò)誤詞與正確詞對照表Tab.1 Comparison of wrong words and correct words
將查找詳細(xì)錯(cuò)誤類型算法執(zhí)行部分結(jié)果,見表2。 錯(cuò)誤分類統(tǒng)計(jì)結(jié)果,見表3。
本實(shí)驗(yàn)主要的有三個(gè)算法:(1)HMM 模型初始化算法;(2)前向-后向算法(BW 算法);(3)維特比算法。
在誤差模型的基礎(chǔ)上建立了HMM 模型,該算法的核心功能代碼與建立誤差模型算法的核心功能代碼極其相似,區(qū)別在于建立誤差模型算法的功能代碼只對錯(cuò)誤類型進(jìn)行分析,統(tǒng)計(jì)后輸出,HMM 模型初始化算法的核心功能代碼將錯(cuò)誤類型分析統(tǒng)計(jì)后,求出所需的各種概率。 下面將給出四種后處理算法的測試結(jié)果。
表2 正確和錯(cuò)誤詞的錯(cuò)誤類型對照表Tab.2 Comparison of error types of correct and wrong words
表3 錯(cuò)誤分類統(tǒng)計(jì)結(jié)果Tab.3 Statistical results of error classification
用維文印刷體識(shí)別系統(tǒng)識(shí)別實(shí)驗(yàn)中給出的測試集識(shí)別正確率為85.393%,從文本庫中隨機(jī)抽取了五個(gè)文本,識(shí)別系統(tǒng)的識(shí)別率為79.705%;經(jīng)過未進(jìn)行BW 學(xué)習(xí)的HMM 模型的后處理校正后,再進(jìn)行測試,正確率提高至80.272%;經(jīng)過只統(tǒng)計(jì)錯(cuò)誤詞的未進(jìn)行BW 學(xué)習(xí)的HMM 模型的后處理校正后,平均正確率也為80.272%。 原始識(shí)別文本與經(jīng)過后處理后識(shí)別的準(zhǔn)確率情況見表4。
表4 準(zhǔn)確率統(tǒng)計(jì)結(jié)果Tab.4 Statistical results of accuracy
算法對于每個(gè)文本的詳細(xì)統(tǒng)計(jì)結(jié)果見表5。
表5 正確率詳細(xì)統(tǒng)計(jì)結(jié)果Tab.5 Detailed statistical results of accuracy %
從而看出對于每一個(gè)測試文本,基于未進(jìn)行BW 學(xué)習(xí)的HMM 模型的后處理結(jié)果與只統(tǒng)計(jì)錯(cuò)誤詞的基于未進(jìn)行BW 學(xué)習(xí)的HMM 模型的后處理結(jié)果一樣,基于進(jìn)行BW 學(xué)習(xí)的HMM 模型的后處理結(jié)果與只統(tǒng)計(jì)錯(cuò)誤詞的基于進(jìn)行BW 學(xué)習(xí)的HMM模型的后處理結(jié)果一樣。
本文嘗試用基于HMM 模型算法對維文印刷體識(shí)別系統(tǒng)中的維文印刷體識(shí)別后的文本進(jìn)行了后處理,使測試文本的平均正確率提高了0.567 個(gè)百分點(diǎn)。 后續(xù)還將通過完善算法,擴(kuò)展語料庫,在建立HMM 模型時(shí),盡可能多地使用誤差模型中其他錯(cuò)誤類型,來進(jìn)一步提高識(shí)別正確率。