張日培,姜占才
(青海師范大學(xué)計(jì)算機(jī)學(xué)院,青海西寧810008)
藏文是我國少數(shù)民族文字之一,藏族是應(yīng)用藏文的主體民族,藏文文語轉(zhuǎn)換系統(tǒng)的研究與建立對繁榮和發(fā)展藏族文化有著重大意義。
經(jīng)過眾多專家學(xué)者的多年努力,主流語種和部分少數(shù)民族語種文語轉(zhuǎn)換系統(tǒng)的研究取得了豐碩成果[1-7]。但現(xiàn)在仍然沒有一套完整實(shí)用的藏文文語轉(zhuǎn)換系統(tǒng)面世。通過對主流語言文語轉(zhuǎn)換系統(tǒng)成果的分析,發(fā)現(xiàn)構(gòu)建藏文的文語轉(zhuǎn)換系統(tǒng)必需要解決藏文詞語的分詞識別問題。關(guān)于這一問題的研究,文獻(xiàn)[8]提出通過提取特征的方法對藏文進(jìn)行分詞識別;此之后的研究者們在藏文的特征提取方法上提出有益的見解、取得了一定的成績[9-11]。通過對眾多成果的歸納,目前可用于藏文識別的藏文特征主要有:藏文字符投影特征,筆畫方向特征,筆畫結(jié)構(gòu)特征,小波能量分布特征[12-14]。
以上方法雖均可作為識別藏文字符的特征,但特征提取的計(jì)算過程相對繁瑣,對長篇幅藏文的識別效率低,不能達(dá)到文語轉(zhuǎn)換系統(tǒng)的效率要求。本文提出的藏文字符和音節(jié)的特征提取算法簡單易行,能夠達(dá)到讓計(jì)算機(jī)先識“偏旁”(即藏文字符)再認(rèn)“字”(即藏文音節(jié)),然后以“字”為基元識別整篇藏文的目的,為藏文文語轉(zhuǎn)換系統(tǒng)的開發(fā)奠定基礎(chǔ)。
在現(xiàn)代藏文文法里,除符合現(xiàn)代藏文文法規(guī)律的藏文音節(jié),還有少數(shù)特殊的藏文音節(jié)無法用現(xiàn)代藏文文法判斷藏文基字位置[16]。
本文主要目的是為藏文文語轉(zhuǎn)換系統(tǒng)提供藏文字符及音節(jié)識別,所以本文對所有藏文音節(jié)中基字位置統(tǒng)一做如下規(guī)律的基字位置判定。
1)單字音節(jié)基字位置判定:因?yàn)橐艄?jié)之中只有一個(gè)字符,所以基字位置就是當(dāng)前字符位。
2)雙字音節(jié)基字位置判定:首先判斷第一個(gè)字符是否為前加字藏文字符,若是則確定基字位置為第二個(gè)字符;若不是則基字位置在第一個(gè)字符位。
3)三字音節(jié)基字位置判定:首先判斷最后一個(gè)字符是否為又后加字如果不是則基字位置即為第二個(gè)字符位,如果是則基字位為第一個(gè)字符位。
4)四字音節(jié)基字位置判定:若為四字音節(jié),則基字位置必為第二個(gè)字符位。
1.1.1 文本規(guī)范化
根據(jù)藏文的文字特點(diǎn)對不同字體不同格式的藏文文本轉(zhuǎn)化為同一格式,方便之后對文本圖像中藏文音節(jié)的切分與識別,提高系統(tǒng)的計(jì)算效率。
規(guī)范化處理后的藏文具體格式為:班智達(dá)輸入法,字體為BZDHT四號字半緊縮粗體,操作系統(tǒng)為WIN7,文本原文件為左側(cè)對齊TXT文檔中光標(biāo)選中的全藍(lán)部分。
1.1.2 圖像二值化
為了提高之后的切分與識別的計(jì)算效率,需要將規(guī)范化后大小為m×n的文本圖像進(jìn)行二值化處理。其核心方法為對圖片像素灰度矩陣A進(jìn)行處理。使其大于某一閾值P的像素xij為黑色(0)或白色(255)。
根據(jù)不同的研究需要,確定二值化的閾值p的方法有多種,這里介紹3種方法:第一種為經(jīng)驗(yàn)法,即根據(jù)經(jīng)驗(yàn)設(shè)定一個(gè)閾值進(jìn)行二值化;第二種是像素平均值法,即求出整幅圖像的像素平均值并將其作為閾值;第3種是像素直方圖法,即選擇圖像像素分布直方圖的兩個(gè)最高峰,然后選兩個(gè)最高峰之間的峰谷最低處的像素值作為閾值。
由于首先對藏文文本圖像做過了歸一化處理,并且為了更明顯的突出圖像中的藏文文本結(jié)構(gòu),所以本文采用了經(jīng)驗(yàn)值法。即將由經(jīng)驗(yàn)得出的閾值P=200直接賦予算法中。
1.1.3 文本行處理
對文本圖像二值化之后,為方便之后的音節(jié)切分,將文本進(jìn)行行處理,方法是將多行文本轉(zhuǎn)化為單行文本。將文本圖像像素矩陣做水平投影計(jì)算,部分文本圖像與水平投影結(jié)果如圖1所示。
圖1 文本圖像與水平投影結(jié)果
由圖1得,每兩行中間都有一行0像素作為分割。規(guī)范化之后的文本圖像相鄰的兩行0像素分割線的高度為39,所以輸入的文本圖像高度為39的整數(shù)倍。對二值化之后的文本圖像像素矩陣以39個(gè)像素為一行文本圖像的高度由上至下依次剪切,然后首尾相接,即可實(shí)現(xiàn)圖像矩陣的行變換。
經(jīng)過此變換之后,像素矩陣A可以分為k個(gè)39×n的像素子矩陣Ak。因?yàn)樵赥XT文本中藏文文本左側(cè)對齊但是右側(cè)不一定對齊,所以會造成截圖時(shí)右側(cè)部分有無效的白色像素,為方便之后計(jì)算,在行變換的同時(shí)檢測是否有無效的白色像素,如果有則執(zhí)行刪除操作。
對Ai進(jìn)行列投影計(jì)算得到Si=[ ]s1s2…sn,從后向前依次檢查sn的值是否為0,直到為0的sn出現(xiàn)并且計(jì)算此時(shí)Si的長度t,然后以值為長度截取Ai,得到新的單行像素矩陣Bi,最后執(zhí)行首尾拼接操作。
令行拼接之后的像素矩陣為B則:
此時(shí)B矩陣即為預(yù)處理之后的文本圖像像素矩陣。
1.3.1 特征的選擇
在模式識別中特征選擇的評價(jià)標(biāo)準(zhǔn)大致可分為4種[17]:基于類內(nèi)間距離的可分性、基于概率分布的可分性、基于熵的可分性、統(tǒng)計(jì)檢驗(yàn)的可分性。在文本識別領(lǐng)域已經(jīng)提出的可以選取的特征有:藏文字符投影特征,筆畫方向特征,筆畫結(jié)構(gòu)特征,小波能量分布特征等。
分析以上方法可知選取藏文字符特征的標(biāo)準(zhǔn)可概括為:選取的特征可以準(zhǔn)確識別每個(gè)藏文字符;選取的特征維數(shù)盡量低;特征的計(jì)算方法簡單易行。
本文提出一種對圖像矩陣的單向投影進(jìn)行非線性變換提取特征參數(shù)的方法。
1.3.2 藏文字符特征參數(shù)提取
單個(gè)藏文字符文本圖像在經(jīng)過預(yù)處理后可得到一幅二值圖,其二值圖像素矩陣為0-1矩陣A,A矩陣尺寸為39行m列。計(jì)算矩陣A的列投影向量S,則S中的元素sj與A中元素xij計(jì)算關(guān)系如下:
然后對S中的元素sj做非線性變換,做此變換的目的在于區(qū)分字符在不同位置的列投影強(qiáng)度。即對S中的元素sj有如下非線性變換:
最后計(jì)算對像素矩陣列投影向量S變換后所提取的特征參數(shù)T’:
則根據(jù)式(3)(4)(5)可以得出選取的特征參數(shù)T’與藏文字符的文本圖像像素矩陣A中的元素xij的關(guān)系為:
由式(6)可知,經(jīng)過提取后的特征參數(shù),藏文字符的圖像矩陣可以變換為一個(gè)存在小數(shù)位的特征參數(shù)。若用字符特征參數(shù)直接進(jìn)行識別運(yùn)算會導(dǎo)致識別算法的復(fù)雜度上升和計(jì)算機(jī)存儲空間的浪費(fèi)。所以本文為方便計(jì)算機(jī)識別和存儲對提取出來的特征參數(shù)T’進(jìn)行如下變換:
即:T為特征參數(shù)T’得出的字符特征值。為了構(gòu)建音節(jié)的特征向量統(tǒng)一以四位數(shù)規(guī)范特征值。30個(gè)輔音字母對應(yīng)的特征值見表1。
表1 藏文字符與特征值對應(yīng)表
特征提取算法以字符為基本單位,所以具有上加字或者下加字或者上下加字的基字算作一個(gè)基本單位,在提取特征時(shí)進(jìn)行整體特征提取。由于篇幅關(guān)系,在表1中沒有給出帶有上加字或者下加字的基字對應(yīng)的特征值。由表1可知,藏文全部30個(gè)輔音字符的特征值都是唯一的,因此,此特征值可識別藏文字符。
1.5.1 音節(jié)內(nèi)字符與音節(jié)符的特征值計(jì)算
由前文可知已經(jīng)進(jìn)行預(yù)處理的文本圖像矩陣為B,對B矩陣進(jìn)行列投影計(jì)算后得到列投影向量B’。B’中的元素分為兩類,一類為0元素另一類為非0元素,在列投影計(jì)算過程中如果字符沒有任何部分在此列當(dāng)中,則該列投影的結(jié)果即為0。由此可知只要記錄所有前邊的元素不為0的0元素的位置,就可以確定文本中各個(gè)字符的列投影區(qū)間。列投影示意圖如圖2所示。
每一個(gè)投影相對集中的區(qū)域就是字符區(qū)域或者音節(jié)符區(qū)域,將各個(gè)區(qū)域劃分出后分別利用式(6)求各個(gè)字符特征參數(shù),再計(jì)算其特征值。
圖2 像素矩陣列投影示意圖
1.5.2 音節(jié)切分
由藏文文本的書寫規(guī)范可知,藏文文本中每一個(gè)藏文音節(jié)都有音節(jié)符作為標(biāo)記。只要識別出一篇文章音節(jié)符的位置,就可以根據(jù)音節(jié)符位置切分出整篇文章的各個(gè)音節(jié)。
藏文音節(jié)切分的具體步驟:將多行文本轉(zhuǎn)化為單行文本;對單行文本的圖像矩陣進(jìn)行列投影運(yùn)算;識別并且分割出字符或者音節(jié)符所在區(qū)域;對每一個(gè)有效區(qū)域進(jìn)行特征值計(jì)算;根據(jù)特征值識別出音節(jié)符所在位置;根據(jù)音節(jié)符所在位置切分音節(jié)。
根據(jù)前文所述藏文文法和藏文結(jié)構(gòu)特征,選擇一個(gè)四維向量e=[e1e2e3e4]作為一個(gè)藏文音節(jié)特征向量。ei為組成此音節(jié)的字符特征值。音節(jié)特征向量中的各個(gè)元素e1、e2、e3、e4分別對應(yīng)一個(gè)藏文音節(jié)的前加字、基字、后加字、又后加字的特征值。對于單字音節(jié)、二字音節(jié)、三字音節(jié)這些結(jié)構(gòu)不完全的音節(jié)缺少的位置對應(yīng)的特征值為‘0000’。
現(xiàn)代藏文文法中四字音節(jié)的又后加字是固定字符,所以為節(jié)省存儲空間可令又后加字的特征值為1,即e4=1;若無又后加字則令e4=0。再將得到的音節(jié)特征向量做字符串處理,即將特征向量e轉(zhuǎn)化成字符串E儲存在計(jì)算機(jī)中。最后得到的音節(jié)特征向量為1*13的字符串矩陣,即13維向量。
1.7.1 音節(jié)特征庫的建立
首先找出藏文拼寫無誤的訓(xùn)練文本,訓(xùn)練文本圖像經(jīng)過預(yù)處理之后切分音節(jié),分別計(jì)算各個(gè)音節(jié)的特征向量e再由特征向量計(jì)算音節(jié)特征字符串E,對得到的眾多音節(jié)特征字符串E進(jìn)行篩選,使得篩選過后的特征字符串無重復(fù),以此建立單列的藏文音節(jié)特征庫。
1.7.2 音節(jié)識別
音節(jié)的特征向量構(gòu)成了音節(jié)的模式,要識別一個(gè)音節(jié)是藏文全部5300余個(gè)音節(jié)中的哪一個(gè),即要識別該模式,必須依據(jù)一定的準(zhǔn)則。為使識別過程簡單、準(zhǔn)確,選擇均方誤差最小準(zhǔn)則,即歐氏距離最小準(zhǔn)則。
設(shè)x是待識別音節(jié)的模式,維數(shù)為k(k=13),y為特征向量庫中與x同維的模式,則定義它們之間的均方誤差為歐氏距離,即:
yn是全部y中的第n行,n是行號,n=1、2、3……;yni是特征庫中第n行第i個(gè)分量。只要求出x與全部y的找到則x就被識別成yn,而yn用其在特征向量庫中的地址n給出。此法即為查表識別法。
識別算法流程如圖3所示。
圖3 識別算法流程圖
音節(jié)識別仿真實(shí)驗(yàn)必須建立在音節(jié)特征向量庫的基礎(chǔ)上,為此要建立藏文音節(jié)特征向量庫。
第一部分,預(yù)處理仿真實(shí)驗(yàn),查看預(yù)處理效果;
第二部分,音節(jié)特征向量提取,建立音節(jié)特征向量庫。包含二值化、音節(jié)切分、特征提取、基字判斷;
第三部分,音節(jié)識別仿真實(shí)驗(yàn)。
實(shí)驗(yàn)用的藏文文本采用百度文庫中的藏文作文,字體為作文作者隨機(jī)選用字體。文本內(nèi)容為藏文常用語句,主要有敘事、抒情、人文景觀等。將藏文文本word形式下載到WIN7操作系統(tǒng)的電腦中,首先進(jìn)行文本規(guī)范化,即將其復(fù)制粘貼進(jìn)入TXT文檔,調(diào)整字體為BZDHT四號字體,分辨率為1920×1080。然后進(jìn)行截圖采樣。此種文本每一個(gè)音節(jié)都為有效音節(jié),不存在書寫錯(cuò)誤,文本結(jié)尾以句段符結(jié)束。選擇文本如圖4所示。
2.3.1 實(shí)驗(yàn)程序
根據(jù)文中提出的算法思想利用MATLAB語言對
算法進(jìn)行編程并將算法中預(yù)處理部分和識別部分分別以文件名PTT.m與RGT.m存盤。測試程序?qū)Σ匚奈谋緢D像二值化、計(jì)算藏文字符特征值、藏文音節(jié)切分、藏文音節(jié)特征值以及特征字符串的計(jì)算識別部分做了原始程序設(shè)計(jì),更有利于在其他語言環(huán)境里進(jìn)行測試和應(yīng)用。
圖4 藏文文本樣本
2.3.2 實(shí)驗(yàn)內(nèi)容
使用文中提出的算法實(shí)驗(yàn)內(nèi)容如下:對選定的藏文文本樣本進(jìn)行樣本規(guī)范化;對實(shí)驗(yàn)樣本進(jìn)行二值化處理;對實(shí)驗(yàn)樣本進(jìn)行行處理,使多行文本轉(zhuǎn)化為單行文本;切分藏文音節(jié);判斷基字位置并計(jì)算音節(jié)特征字符串;用訓(xùn)練文本樣本建立音節(jié)特征庫;查表識別;
2.4.1 預(yù)處理算法實(shí)驗(yàn)結(jié)果
對選定樣本進(jìn)行預(yù)處理算法測試;
文本圖像二值化、行變換和音節(jié)切分的實(shí)驗(yàn)結(jié)果分別如圖5、圖6、圖7所示。
圖5 藏文文本二值化圖像
圖6 藏文文本行變換處理部分結(jié)果圖像
由圖5可知對圖4所示的文本經(jīng)預(yù)處理和二值化處理得到預(yù)期的結(jié)果,即確定的字體字號和二值化結(jié)果。圖中白色為像素‘1’,黑色部分為像素‘0’,由于背景處灰度值為‘0’故背景和‘0’像素處都為黑色。
圖7 藏文文本音節(jié)切分結(jié)果圖像
由圖6可知,行變換后已將圖5所示文本圖像轉(zhuǎn)化為單行的二值化圖像,由圖7可知,切分程序?qū)D5中的文本實(shí)現(xiàn)了準(zhǔn)確的音節(jié)切分。
2.4.2 音節(jié)特征字符串提取算法實(shí)驗(yàn)結(jié)果
圖4的實(shí)驗(yàn)樣本共有72個(gè)藏文音節(jié),對每一音節(jié)逐一提取特征向量,其中包含音節(jié)內(nèi)字符特征提取、音節(jié)基字位置判斷、音節(jié)特征向量提取和字符串處理,得出了與各音節(jié)對應(yīng)的特征字符串。
2.4.3 音節(jié)識別算法實(shí)驗(yàn)結(jié)果
為方便對照,表2中給出音節(jié)特征庫部分?jǐn)?shù)據(jù):
表2 部分音節(jié)特征庫
由于篇幅關(guān)系,表3只給出了測試文本前10個(gè)藏文音節(jié)的查表識別結(jié)果:
表3 測試文本前十個(gè)藏文音節(jié)識別結(jié)果
由表3可知,依據(jù)均方誤差最小準(zhǔn)則(歐氏距離最小準(zhǔn)則)的查表識別的識別結(jié)果是非常準(zhǔn)確的,由此可以推斷,只要音節(jié)特征向量庫數(shù)據(jù)充分,即庫內(nèi)包含藏文全部5300余個(gè)音節(jié)的特征向量,就能實(shí)現(xiàn)藏文音節(jié)的準(zhǔn)確識別。
文中提出一種基于音節(jié)特征的藏文音節(jié)識別算法。該算法主要包含音節(jié)特征向量的構(gòu)建和對音節(jié)特征向量庫進(jìn)行查表識別兩部分。音節(jié)特征向量的選擇和提取建立在模式識別的理論基礎(chǔ)上,從理論上保證了對所有藏文音節(jié)的高度可分性,并且計(jì)算過程簡單易行。音節(jié)特征向量庫的建立表示,只要向量庫內(nèi)數(shù)據(jù)充分就可以實(shí)現(xiàn)藏文全部5300余個(gè)音節(jié)的準(zhǔn)確識別。經(jīng)仿真實(shí)驗(yàn)驗(yàn)證該算法在計(jì)算速度和識別精度等方面均能達(dá)到實(shí)際應(yīng)用的要求,為藏文文語轉(zhuǎn)換系統(tǒng)的研究與開發(fā)奠定了良好的基礎(chǔ)。