完么扎西,尼瑪扎西
(1. 青海師范大學 民族師范學院,青海 西寧 810008;2. 西藏大學 信息科學技術學院,西藏 拉薩 850000)
文本自動校對技術作為自然語言處理領域的重要應用技術之一,在圖書、報紙、網絡媒體、語音輸入、文字識別、文本編輯、輔助教學等領域具有廣泛的應用價值。
漢語和英文等語言的文本自動校對技術的研究起步早,發(fā)展速度快,自動校對理論和技術也比較成熟。英文文本自動校對的研究早在20世紀60年代就已經展開[1],自動校對技術已經十分成熟,目前已出現了一批實用的商品化系統(tǒng),比如嵌入Word字處理軟件的Spelling Checker等。英文的詞與詞之間有明顯的分隔符,所以英文自動校對主要以詞為單位從非詞錯誤檢測(Nonword Error Detection)、隔離詞錯誤糾正(Isolated-Word Error Correction)和上下文相關詞校對(Context-Dependent Word Correction)等三個方面進行了研究[2]。其中,非詞錯誤的查錯技術主要采用N-gram分析技術和詞典查找技術;隔離詞糾錯技術主要采用最小編輯距離技術(Minimum Edit Distance Techniques)、相似性關鍵技術(Similarity Key Techniques)、基于 N-gram 的技術(N-gram-Based Techniques)、基于規(guī)則的技術(Rule-Based Techniques)、概率統(tǒng)計技術(Probabilistic Techniques)和神經網絡技術(Neural Net Techniques)等;上下文相關詞的錯誤也叫作真詞錯誤(Real-word Error),其校對方法主要有基于規(guī)則和基于統(tǒng)計這兩種。其中,基于規(guī)則的方法可分為基于接受的方法、基于松弛的方法和基于期望的方法;基于統(tǒng)計的方法采用了詞的二、三元模型和詞性的二元模型[3]。
漢語文本自動校對技術的研究始于20世紀90年代初期,比起英文相對較晚,但發(fā)展速度快,也已有一些商品化的文本自動校對軟件,如黑馬、方正金山、啄木鳥、人工智能校對通、三歐和文捷等[4]。由于漢英語言的差異性,漢語自動校對主要以字、詞和句子為單位從詞法、語法和語義等三個層面上對真詞錯誤的校對技術進行研究,主要采用基于上下文的局部語言特征、基于語言學知識、基于概率統(tǒng)計和基于深度學習等方法[5-7]。
藏文文本自動校對的研究起步與漢語幾乎同步[8],但發(fā)展速度較慢,該領域的研究文獻還不多見,就目前現有的藏文文本自動校對相關的文獻來看,校對技術的研究主要集中在藏文字的自動查錯上。由于藏文既不同于英文等其他西方拼音文字,又不同于漢語等表意文字,所以藏文文本自動校對主要以(音節(jié))字、梵音轉寫藏文字、虛詞和實詞等為單位,從拼寫文法、詞法和語法等三個層面進行研究,采用文法規(guī)則、查字典和N-gram模型等方法[9-14]。這些方法總結起來主要集中在四個方面: ①建立藏文電子辭典,將待檢查文本進行分字或分詞,并與電子詞典進行匹配,進而完成藏文字、詞自動查錯任務; ②分析研究藏文字的拼寫規(guī)則及藏語虛詞的接續(xù)規(guī)則,建立相應的規(guī)則庫及模型,從而進行藏文拼寫檢查及虛詞語法檢測; ③在藏文字拼寫規(guī)則的基礎上,建立一種輔助字庫,包括梵音轉寫藏文、音譯和借音等不符合現代藏文拼寫規(guī)則的字,按規(guī)則和字庫匹配相結合的方式進行藏文自動查錯。其中,方法①的弊端非常明顯,這種方法只能對藏文電子辭典中已收錄的藏文字或詞進行自動查錯,無法檢查電子辭典中未收錄藏文字或詞。例如,其他文種人名、地名以及外來名詞等。同時,這種方法的效率不高。方法②的基本思路是對的,但由于技術、方法不夠完善,使得相應模型的適應面不廣,不能夠識別特殊結構的藏文字,效率不高。方法③雖然借鑒上述兩種方法的優(yōu)點,但仍然存在兩種方法的弊端,效率低。
針對目前藏文文本自動查錯方法的不足,本文提出一種基于規(guī)則和統(tǒng)計相結合的自動查錯方法。首先以藏文拼寫文法為基礎,結合形式語言與自動機理論,構造37種確定型有限自動機識別現代藏文字;然后利用查找字典的方法識別梵音藏文字;最后利用互信息和t-測試差等統(tǒng)計方法查找藏文詞語搭配錯誤和語法錯誤等真字詞錯誤,實現藏文文本的自動查錯。
藏文文本中的錯誤來源與漢英文本中的錯誤來源基本相似,歸納起來主要有輸入過程中造成的錯誤和原稿造成的錯誤兩種。目前,常見的文字錄入技術有鍵盤錄入、語音輸入、OCR識別和手寫識別等[5]。但對于藏文信息處理而言,語音輸入、OCR識別和手寫識別等技術尚未成熟,還沒有出現實用的商品化系統(tǒng)。因此,現在常見的文字錄入方式主要還是鍵盤錄入。在文字錄入過程中,易造成替換錯誤、易位錯誤、丟失錯誤和插入錯誤等[15]。如下面的輸入錯誤(1)括號內的是正確的。:
2.1.1現代藏文字的自動查錯方法
由于字數限制,本文只介紹現代藏文字的基本拼寫結構16對應的拼寫形式文法。有關現代藏文字的拼寫結構對應的拼寫形式文法可參閱文獻[16-17],這里不再一一介紹。該拼寫結構包括六或七個構件,其形式文法為:
藏文拼寫形式文法G16:藏文前加字、上加字、基字、下加字、元音符號、后加字及再后加字拼寫構成的藏文字的文法G16是一個四元組(VT,VN,S16,P),其中:
(1) 終結符
VT=VB∪Vo;其中:
(2) 非終結符集合
VN={S16,A,B,C,D,E,F,G,H,I};
(3)S16為VN中的非終結符,且為起始符號。
(4) 文法G16的產生式集合為:P={
圖1 藏文字的分析樹
從形式文法和分析樹中不難看出,上述文法G16是一種右線性正則文法。同理,藏文37種拼寫形式文法都為右線性正則文法。因此,根據形式語言與自動機理論,可以構造相應的37種確定型有限自動機DFAMi(i= 1, 2, 3,…,37)識別文法Gi生成的語言L(Gi),即文法Gi定義的藏文字。因此,接受語言L(G16)的確定型有限自動機狀態(tài)轉移圖如圖2所示。
傳統(tǒng)藏文文法中藏文字被定義為藏文書面語中以分字符(“·” tesk)為界點的語法單位。但是,實際使用的藏文真實文本中藏文字一般以藏文字符編碼“u0F40-u0FBC”之外的任意字符(包括非藏文字符)為結束標志。有了藏文字的結束標志,可以將待檢查的藏文文本以藏文字為單位進行自動拼寫檢查,因而本文設計的現代藏文字的查錯方法由如下步驟得以實現。
圖2 識別L(G16)的DFA M16狀態(tài)轉移圖
首先,將文法Gi(i=1,2,3,…,37)轉換成非確定型有限自動機(NFA)Mi(i= 1,2, 3,…,37),因為文法Gi(i=1,2,3,…,37)對應的自動機并不都是DFA[17];
其次,將NFAMi(i= 1,2,3,…,37)轉換成DFAMi(i= 1,2,3,…,37);
再次,為了進一步提高效率,將集合的首字母替換DFAMi(i= 1,2, 3,…,37)分割后的狀態(tài)集,并生成MinDFAMi(i= 1,2,3,…,37);
最后,用MinDFAMi(i= 1,2,3,…,37)識別藏文字。
該方法不涉及藏文語料庫覆蓋性的問題,效率高,且能有效識別所有符合拼寫文法的藏文字,包括特殊結構的藏文字和部分梵音轉寫藏文字。
2.1.2 梵音轉寫藏文字的自動查錯方法
梵音轉寫藏文字是指梵文的音轉寫成藏文的字,也叫梵音藏文。梵音藏文形式多樣、結構復雜,不像現代藏文字那樣有統(tǒng)一的拼寫規(guī)則,無法用規(guī)則的方法完成自動查錯任務。因此,本文采用了文獻[12]的字典查找方法。
藏文文本中存在大量的單字詞,單字詞的錯誤會造成多字詞的錯誤,并對自動分詞造成嚴重干擾。因此,本文借鑒文獻[20-22]的研究方法,并利用藏語言自身的結構特征,以藏文字為研究單位,擬采用基于互信息的字字接續(xù)關系和t-測試差等方法進行查錯。
2.2.1 基于互信息的字字接續(xù)判斷模型
設有句子S=C1C2…CiCi+1…Cm,其中,CiCi+1為兩個相鄰的藏文字。根據信息論的理論,互信息反映兩個變量之間的關聯程度[23]。因此,字容量為N的藏語語料庫中,兩個相鄰的藏文字Ci和Ci+1之間的互信息由式(1)進行計算:
(1)
其中,p(Ci,Ci+1)為Ci,Ci+1的鄰接同現概率;p(Ci)和p(Ci+1)分別為藏文字Ci和Ci+1的獨立概率。根據最大似然估計,對鄰接同現概率和獨立概率可用式(2)~式(4)進行估計,即
其中,count(Ci,Ci+1)為Ci,Ci+1在語料中鄰接同現的總次數;count(Ci)為Ci在語料中出現的總次數;count(Ci+1)為Ci+1在語料中出現的總次數。
表1 相鄰兩個字的互信息
2.2.2 基于t-測試差的字字接續(xù)判斷模型
假設Ci-1CiCi+1為藏文字串,則Ci相對于Ci-1和Ci+1的t-測試可定義為如下形式[24]:
(5)
其中,p(Ci+1|Ci) 和p(Ci|Ci-1) 分別是Ci+1關于Ci,Ci關于Ci-1的條件概率,?2(p(Ci+1|Ci)) 和?2(p(Ci|Ci-1)為各自的方差,其值可用最大似然估計進行估計,即
t-測試是一種相對度量,反映三個字之間的結合程度,但這是直接掛靠在字上的,不像互信息那樣掛靠在兩個字之間。為此,特引入t-測試差[25]將兩者的掛靠對象統(tǒng)一起來。對藏文字串Ci-1CiCi+1Ci+2而言,Ci和Ci+1之間的t-測試差可用式(8)定義:
Δt(Ci,Ci+1)=tCi-1,Ci+1(Ci)-tCi,Ci+2(Ci+1)
(8)
表2 相鄰兩個字的t-測試差
本文實驗的訓練語料是覆蓋新聞類、文學類、醫(yī)學類和期刊類等2 000萬字的藏語單語語料。該語料經人工校對,不存在非字錯誤和真字詞錯誤,并且用詞規(guī)范,語句標準,完全符合本文實驗要求。從三大藏文新聞網(新華網、中國藏語廣播網和青海新聞網)中隨機抽取100篇文章作為測試集。該測試集中共有49處錯誤,其中有21處非字錯誤,14處詞語搭配錯誤,11處虛詞接續(xù)錯誤,3處動詞形態(tài)錯誤。
在藏文文本自動查錯過程中,主要依據如下性能指標: 查錯召回率R、查錯準確率P、查錯F值和誤判率E,定義如式(9)~式(12)所示。
(9)
(10)
(11)
(12)
根據上述評價指標的計算方法,得到的實驗結果的評價指標值如表3所示。
表3 評價指標結果
由于目前缺少藏文文本自動校對方面的實驗數據,本文實驗結果無法進行比較。表3的實驗結果表明,本文方法對提高藏文文本自動查錯系統(tǒng)的召回率和查錯準確率確實有效,但缺點是訓練語料的覆蓋面小,未考慮藏語詞法、句法和語義層面的知識等,導致如下三種錯誤:
本文以藏文字為研究單位,重點研究了藏文非字錯誤和真字詞錯誤的查錯方法,提出了基于自動機的現代藏文非字錯誤識別方法,并采用了基于互信息和t-測試差的真字詞錯誤檢測技術,通過實驗驗證了本文方法的可行性和有效性。但藏文文本自動校對技術的研究除了藏文字層面的內容以外,還涉及藏語詞法、句法和語義等三個層面的內容,是藏語自然語言處理的重要研究部分。查錯后的糾錯處理是文本自動校對系統(tǒng)的重要組成部分,對藏文文本自動校對而言,目前尚未發(fā)現這方面的研究。因此,下一步將通過研究藏語詞法、句法和語義等內容,構建一種綜合型的語言知識庫,并根據藏文文本的特點, 研究面向藏文文本自動校對的計算語言模型,為計算機校對藏文文本提供自動化的處理技術。