烏格德勒李娟
摘要:本文首先介紹了蒙古文文本錯(cuò)誤產(chǎn)生的原因和類型以及蒙古文正字法規(guī)則,重點(diǎn)介紹了3種蒙古文文本自動(dòng)校對(duì)方法:包括基于詞典與規(guī)則校對(duì)方法、基于有限狀態(tài)自動(dòng)機(jī)的校對(duì)方法、基于統(tǒng)計(jì)模型的校對(duì)方法等,最后探討了蒙古文文本校對(duì)需要解決的問(wèn)題和未來(lái)的發(fā)展方向。
關(guān)鍵詞:蒙古文;自動(dòng)校對(duì);有限狀態(tài)自動(dòng)機(jī);統(tǒng)計(jì)模型
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)35-0227-03
Survey of Mongolian Text Automatic Proofreading
BAO Wugedele1,2, LI Juan2
(1. Minzu University of China, Beijing 100081, China; 2. Hohhot Minzu College, Hohhot 010051, China)
Abstract: The causes and types of Mongolian text errors, and Mongolian orthography are first presented. Then, three kinds of Mongolian text automatic proofreading methods adopted are focused, including based on dictionary and rules, based on finite state automaton, and based on statistical model method. Finally, the problems need to be solved and the future developing directions of Mongolian text automatic proofreading are discussed.
Key words: Mongolian; automatic proofreading; finite state automaton(FSA); statistical model
隨著蒙古文信息處理和互聯(lián)網(wǎng)技術(shù)的發(fā)展,蒙古文語(yǔ)料庫(kù)的規(guī)模也不斷壯大。在對(duì)蒙古文進(jìn)行詞法分析、句法分析、語(yǔ)義分析時(shí)都需要高質(zhì)量的標(biāo)注語(yǔ)料庫(kù)。由于蒙古文自身的語(yǔ)法特點(diǎn),存在著大量的形同音不同的詞和音同形不同的詞,這就要求錄入人員具有較高的蒙古語(yǔ)語(yǔ)法知識(shí)才能準(zhǔn)確地錄入蒙古文文本。但是,目前很多人還不能完全掌握這些語(yǔ)法知識(shí),錄入的蒙古文文本中存在大量的錯(cuò)誤,需要經(jīng)過(guò)校對(duì)以后才能作為進(jìn)一步研究的原始語(yǔ)料。
自動(dòng)校對(duì)指的是程序按照一定的算法自動(dòng)檢查文本中的錯(cuò)誤并對(duì)錯(cuò)誤進(jìn)行糾錯(cuò)或提供糾錯(cuò)建議[1]。
1 蒙古文文本錯(cuò)誤產(chǎn)生的原因和類型
1.1 編碼轉(zhuǎn)換產(chǎn)生的錯(cuò)誤
由于蒙古文標(biāo)準(zhǔn)化工作的滯后,在蒙古文Unicode國(guó)際標(biāo)準(zhǔn)編碼發(fā)布以前已經(jīng)在市場(chǎng)上出現(xiàn)了多種蒙古文編碼,這些編碼統(tǒng)稱為非國(guó)際標(biāo)準(zhǔn)編碼,其中常用的編碼包括:蒙科立編碼、賽音編碼、明安圖編碼、方正編碼等。蒙科立、明安圖和方正編碼屬于音形編碼,賽音編碼屬于完全的形碼,而Unicode國(guó)際標(biāo)準(zhǔn)編碼則屬于完全的音碼。還有一個(gè)常用的蒙古文編碼是拉丁編碼,是由拉丁字母轉(zhuǎn)寫的編碼,屬于音碼,它基本上能與Unicode國(guó)際標(biāo)準(zhǔn)編碼一一對(duì)應(yīng),所以現(xiàn)在常用的蒙古文語(yǔ)料庫(kù)都采用拉丁編碼表示。
非國(guó)際標(biāo)準(zhǔn)編碼存儲(chǔ)的蒙古文轉(zhuǎn)換為Unicode國(guó)際標(biāo)準(zhǔn)編碼時(shí),就會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤,因?yàn)檫@些編碼并不是與Unicode國(guó)際標(biāo)準(zhǔn)編碼一一對(duì)應(yīng),做不到完全正確的編碼轉(zhuǎn)換,所以轉(zhuǎn)換成Unicode國(guó)際標(biāo)準(zhǔn)編碼以后還需要校對(duì)。
1.2 鍵盤錄入產(chǎn)生的錯(cuò)誤
目前,常見(jiàn)的文字錄入技術(shù)和方法主要有鍵盤錄入、語(yǔ)音識(shí)別、文字識(shí)別和手寫識(shí)別[2]。對(duì)于英文和中文以上四種方式錄入的文本的正確率都很高,已達(dá)到應(yīng)用要求,而對(duì)于蒙古文后三種識(shí)別技術(shù)還不能達(dá)到應(yīng)用要求,所以鍵盤錄入還是蒙古文的主要錄入方式。蒙古文的原始語(yǔ)料基本上都是從鍵盤錄入的。
現(xiàn)在人們常用的蒙古文輸入法有蒙科立輸入法、賽音輸入法、明安圖輸入法、方正輸入法和微軟輸入法(windows 7/8/10)等。除了微軟輸入法,其他輸入法雖然簡(jiǎn)單易用,但是只能輸入非國(guó)際標(biāo)準(zhǔn)編碼的蒙古文,而微軟輸入法則可以輸入U(xiǎn)nicode國(guó)際標(biāo)準(zhǔn)編碼蒙古文。微軟輸入法在輸入分寫詞綴、分寫元音、特殊字母變體時(shí)都需要使用不同的控制符,由于這些控制符的使用規(guī)則非常復(fù)雜,很多人濫用控制符而違反了蒙古文正字法規(guī)則,錄入的詞雖然在字形上完全正確,但是內(nèi)部編碼卻是錯(cuò)誤的。所以由微軟輸入法錄入的Unicode國(guó)際標(biāo)準(zhǔn)編碼蒙古文文本還需要校對(duì)以后才能使用。
1.3 蒙古文文本錯(cuò)誤類型
蒙古文文本錯(cuò)誤的類型與英文相同,包含非詞錯(cuò)誤、真詞錯(cuò)誤和句法語(yǔ)義錯(cuò)誤[1],真詞錯(cuò)誤和句法語(yǔ)義錯(cuò)誤屬于上下文相關(guān)的錯(cuò)誤。目前,蒙古文文本自動(dòng)校對(duì)研究主要集中在非詞檢查和糾錯(cuò)上,而蒙古文非詞錯(cuò)誤又包括字形錯(cuò)誤和讀音錯(cuò)誤,分別稱為字形非詞和讀音非詞。其中讀音非詞是指字形正確但是讀音錯(cuò)誤的單詞,由于蒙古文普遍存在著形同音不同的詞,所以讀音非詞錯(cuò)誤也是非常普遍的。
蒙古文的讀音非詞錯(cuò)誤是由于蒙古文的字母之間字形相同而錯(cuò)誤錄入造成的,具體包括[3]:
1)元音字形相同
蒙古文有8個(gè)元音,其中的第1和第2、第4和第5、第6和第7三對(duì)元音在詞首、詞中和詞尾的形式都可以相同,第4、5、6、7元音的詞中形式也可以相同。
2)元音和輔音字形相同
蒙古文輔音N的詞中詞尾形式可以與第1、2元音的詞中詞尾形式相同,輔音W的詞中詞尾形式可以與第8元音的詞中詞尾形式相同。
3)輔音字形相同
蒙古文的H和G、T和D這兩對(duì)輔音在詞首、詞中和詞尾的形式都可以相同。
2 蒙古文正字法規(guī)則
蒙古文文本校對(duì)原則是蒙古文正字法規(guī)則。蒙古文正字法是正確書寫蒙古文的基本規(guī)則,是蒙古文語(yǔ)法的重要組成部分[4],包括詞法規(guī)則和句法規(guī)則?,F(xiàn)在的蒙古文文本自動(dòng)校對(duì)研究都是基于詞法規(guī)則的,沒(méi)有涉及句法規(guī)則。文本校對(duì)中常用的蒙古文詞法規(guī)則有:唇元音和諧規(guī)則、輔音和諧規(guī)則、元音陰陽(yáng)和諧規(guī)則、名詞的格附加成分使用規(guī)則、名詞復(fù)數(shù)詞綴使用規(guī)則、領(lǐng)屬附加成分使用規(guī)則等。
3 蒙古文文本自動(dòng)校對(duì)方法
目前的蒙古文文本自動(dòng)校對(duì)方法可分為基于詞典和規(guī)則的方法、基于有限狀態(tài)自動(dòng)機(jī)的方法、基于統(tǒng)計(jì)模型的方法等。其中基于有限狀態(tài)自動(dòng)機(jī)的校對(duì)方法其實(shí)也屬于基于詞典和規(guī)則的校對(duì)方法,不同的是使用有限狀態(tài)自動(dòng)機(jī)來(lái)組織和存儲(chǔ)詞典數(shù)據(jù)和規(guī)則。
3.1基于詞典與規(guī)則的方法
1997年,華沙寶等開(kāi)發(fā)了MHAHP蒙古文文本校對(duì)系統(tǒng),該系統(tǒng)以蒙古文文本文件為操作對(duì)象,對(duì)文本中的單詞按蒙古文正字法規(guī)則進(jìn)行自動(dòng)校對(duì)[5]。MHAHP系統(tǒng)使用的校對(duì)方法是一種基于蒙古文構(gòu)形附加成份的推理算法,該系統(tǒng)由詞根檢驗(yàn)?zāi)K、動(dòng)詞構(gòu)形附加成份檢驗(yàn)?zāi)K和格附加成份檢驗(yàn)?zāi)K等組成。
MHAHP系統(tǒng)把蒙古文文本中的錯(cuò)誤分為以下4類:詞根錯(cuò)誤、動(dòng)詞構(gòu)形附加成份錯(cuò)誤、格附加成份錯(cuò)誤、元音字母之間的陰陽(yáng)性搭配錯(cuò)誤等。由于詞典規(guī)模的限制,MHAHP系統(tǒng)對(duì)動(dòng)詞構(gòu)形附加成份錯(cuò)誤和格附加成份的錯(cuò)誤的校對(duì)才有效,而對(duì)另外兩類錯(cuò)誤的校對(duì)是無(wú)效的。另外,由于人名、地名以及外來(lái)詞的書寫方法往往和蒙古文正字法規(guī)則沖突,所以MHAHP系統(tǒng)也不能對(duì)它們進(jìn)行校對(duì)。
2014年,江布勒等按照《信息技術(shù)傳統(tǒng)蒙古文名義字符、變形顯現(xiàn)字符和控制字符使用規(guī)則(GB25914-2010)》標(biāo)準(zhǔn),研究了基于規(guī)則的蒙古文文本校對(duì)方法[6]。該方法首先以人工校對(duì)的方式認(rèn)真統(tǒng)計(jì)人們的錯(cuò)誤輸入方式,對(duì)其進(jìn)行分類統(tǒng)計(jì),研究找出常犯的錯(cuò)誤及錯(cuò)誤的規(guī)律,根據(jù)這些規(guī)律研究出規(guī)則校對(duì)文本的方法。
該方法不僅可以校對(duì)不符合蒙古文正字法規(guī)則的錯(cuò)誤單詞,還能依據(jù)GB25914-2010標(biāo)準(zhǔn)校對(duì)錯(cuò)誤使用的控制符,包括:3個(gè)蒙古文自由變體選擇符、窄寬度無(wú)間斷空格、元音間隔符、零寬連接符、零寬禁連接符等7個(gè)控制符。該方法在20種三百詞左右的語(yǔ)料上進(jìn)行實(shí)驗(yàn),糾錯(cuò)率達(dá)到了90.2%。
3.2基于有限狀態(tài)自動(dòng)機(jī)的方法
2009年斯·勞格勞根據(jù)蒙古文特有的書寫習(xí)慣和編碼特點(diǎn)提出了一種基于有限狀態(tài)自動(dòng)機(jī)的校對(duì)算法[7]。該算法采用了常用的基于詞典和規(guī)則的校對(duì)方法,但用有限狀態(tài)自動(dòng)機(jī)組織詞典數(shù)據(jù)和規(guī)則后大大提高了算法的響應(yīng)速度。該方法使用有限狀態(tài)自動(dòng)機(jī)建立了基于字形的蒙古文詞法分析器和基于讀音的蒙古文詞法分析器。
該方法在隨機(jī)抽取的10篇文章(每篇1萬(wàn)詞)上進(jìn)行實(shí)驗(yàn),平均每篇文章的讀音非詞占總詞數(shù)的38.85%,最后讀音糾錯(cuò)算法的平均糾錯(cuò)率為92.09%。但是該方法主要適用于非詞錯(cuò)誤的自動(dòng)檢查和糾錯(cuò)(主要是讀音非詞錯(cuò)誤),對(duì)真詞、句法和語(yǔ)義錯(cuò)誤的校對(duì)不太適用,同時(shí)還不具備同形詞的自動(dòng)識(shí)別功能。
2014年,廉冰也使用有限狀態(tài)自動(dòng)機(jī)理論,提出了一種基于有限狀態(tài)自動(dòng)機(jī)的蒙古文同形詞校對(duì)方法[8]。該方法,首先以《蒙古文正字法詞典》為依據(jù),根據(jù)蒙古語(yǔ)單詞的語(yǔ)法特征以及詞的結(jié)構(gòu),構(gòu)造詞法分析器。然后使用蒙古文Unicode國(guó)際標(biāo)準(zhǔn)編碼基本字符集、傳統(tǒng)蒙古文名義字符的變形顯現(xiàn)字符以及變形規(guī)則,建立同形字符規(guī)則庫(kù)。最后,根據(jù)同形字符規(guī)則庫(kù),在詞法分析器上進(jìn)行啟發(fā)式搜索,如果輸入單詞正確,則不做任何處理;如果輸入單詞錯(cuò)誤,則用與其同形的單詞對(duì)其糾錯(cuò)。
該方法使用有限狀態(tài)自動(dòng)機(jī)分別建立了蒙古文靜詞自動(dòng)機(jī)(包括詞干自動(dòng)機(jī)和詞尾后綴自動(dòng)機(jī))、動(dòng)詞自動(dòng)機(jī)(包括詞干自動(dòng)機(jī)和詞尾后綴自動(dòng)機(jī))、無(wú)變化詞自動(dòng)機(jī)。其中靜詞包括名詞、形容詞、數(shù)詞、量詞、時(shí)位詞、代詞等詞類;無(wú)變化詞包括副詞、情態(tài)詞、后置詞、摹擬詞、語(yǔ)氣詞、連接詞等詞類。同形詞規(guī)則庫(kù)包含了27對(duì)同形規(guī)則,每條規(guī)則不僅給出了同形字符的輸入方式和編碼,還給出了變形顯現(xiàn)形式和同形條件。
該方法在3萬(wàn)詞的語(yǔ)料庫(kù)上進(jìn)行實(shí)驗(yàn),平均準(zhǔn)確率為91.5%,平均召回率為84.9%。雖然該方法具備了同形詞的校對(duì)功能,但是仍然不適用于真詞、句法和語(yǔ)義錯(cuò)誤的校對(duì)。
3.3基于統(tǒng)計(jì)模型的方法
2007年,趙軍、敖其爾等人研究了基于音節(jié)統(tǒng)計(jì)的蒙古語(yǔ)校對(duì)方法,統(tǒng)計(jì)模型采用了一階隱馬爾科夫模型,語(yǔ)料來(lái)自3萬(wàn)詞的電子詞典[9]。實(shí)驗(yàn)結(jié)果顯示,該方法的查錯(cuò)表現(xiàn)良好,對(duì)一些簡(jiǎn)單錯(cuò)誤的糾錯(cuò)表現(xiàn)也很好,但是對(duì)一些復(fù)雜錯(cuò)誤,校對(duì)結(jié)果不理想。
此后,趙軍等人又提出了基于音節(jié)的2-gram蒙古文校對(duì)模型[10]。該模型是一個(gè)加權(quán)有向圖,圖中的每一個(gè)節(jié)點(diǎn)保存蒙古文的音節(jié)信息,節(jié)點(diǎn)之間的連接線上的權(quán)值表示節(jié)點(diǎn)之間的關(guān)聯(lián)度。為了音節(jié)搜索的需要,在節(jié)點(diǎn)中加入了音節(jié)串、串長(zhǎng)度、音節(jié)位置、最小詞素串和后繼指針等信息,采用了基于漢明距離的方法進(jìn)行蒙古文音節(jié)相似性的度量。但是該方法沒(méi)有給出最后的糾錯(cuò)率。
2010年,郝莉,敖登巴拉等人對(duì)蒙古文輸入過(guò)程中出現(xiàn)的拼寫錯(cuò)誤進(jìn)行了分析和歸類,給出了用貝葉斯算法校正蒙古文單詞拼寫錯(cuò)誤的實(shí)現(xiàn)方法[3]。貝葉斯算法是利用概率找出拼寫錯(cuò)誤單詞的最可能的正確單詞:在詞匯V的所有單詞中選擇那些最可能給出已有的觀察的單詞,即選擇使得P(單詞|觀察)為最大的那個(gè)單詞。
該方法的測(cè)試語(yǔ)料來(lái)自內(nèi)蒙古日?qǐng)?bào)社2008年下半年的蒙古文新聞?wù)Z料,共包含245460個(gè)單詞,其中錯(cuò)誤的單詞1351個(gè),訓(xùn)練語(yǔ)料是來(lái)自蒙古文正字法詞典,包含34316個(gè)單詞,兩種語(yǔ)料均按蒙古文Unicode國(guó)際標(biāo)準(zhǔn)編碼文本格式存儲(chǔ)。最后該方法校對(duì)正確1204個(gè)單詞,糾錯(cuò)率達(dá)到了89.2%。該方法較好地實(shí)現(xiàn)了上下文無(wú)關(guān)的蒙古文單詞由于讀音混淆造成的拼寫錯(cuò)誤(讀音非詞)的校對(duì)功能。
2013年,蘇傳捷、侯宏旭等人提出了一種基于統(tǒng)計(jì)翻譯框架的傳統(tǒng)蒙古文自動(dòng)拼寫校對(duì)方法,將拼寫校對(duì)工作看成從錯(cuò)誤詞到正確詞的翻譯[11]。該方法首先利用人工校對(duì)前后的對(duì)應(yīng)文本,根據(jù)傳統(tǒng)蒙古文中拼寫錯(cuò)誤的原因與特點(diǎn),選擇基于短語(yǔ)的統(tǒng)計(jì)機(jī)器翻譯模型作為框架來(lái)構(gòu)建拼寫校對(duì)模型,然后應(yīng)用該校對(duì)模型對(duì)測(cè)試文本進(jìn)行拼寫校對(duì)。
該方法使用Moses開(kāi)源工具包中的短語(yǔ)機(jī)器翻譯模型訓(xùn)練工具和SRILM 開(kāi)源工具包訓(xùn)練拼寫校對(duì)模型,在訓(xùn)練中沿用機(jī)器翻譯的經(jīng)典特征集,包括正反向翻譯概率、正反向詞匯化權(quán)重、語(yǔ)言模型概率等。該方法的優(yōu)點(diǎn)在于不依賴于語(yǔ)法知識(shí),很容易移植到其他語(yǔ)言上或者與其他方法結(jié)合使用。
該方法在包含1026個(gè)正確詞、1102個(gè)錯(cuò)誤詞的測(cè)試集上進(jìn)行了測(cè)試,糾錯(cuò)率達(dá)到了97.55%。
4 存在的問(wèn)題和研究趨勢(shì)
總結(jié)目前的蒙古文文本自動(dòng)校對(duì)研究,還有以下兩個(gè)問(wèn)題需要解決:
1)從實(shí)驗(yàn)結(jié)果看測(cè)試語(yǔ)料規(guī)模都比較小,一般在幾萬(wàn)詞左右,提出的校對(duì)方法能否適用于大規(guī)模語(yǔ)料還不得而知。
2)目前的校對(duì)方法只能校對(duì)上下文無(wú)關(guān)的非詞錯(cuò)誤,而不能校對(duì)上下文相關(guān)的真詞錯(cuò)誤和句法語(yǔ)義錯(cuò)誤。
今后的研究趨勢(shì):
1)通過(guò)詞語(yǔ)的固定搭配、N元模型等方法,研究上下文相關(guān)的真詞錯(cuò)誤和句法語(yǔ)義錯(cuò)誤;
2)進(jìn)一步擴(kuò)大詞典和規(guī)則庫(kù),提高糾錯(cuò)率;
3)通過(guò)擴(kuò)充語(yǔ)料庫(kù)的規(guī)模,驗(yàn)證校對(duì)方法的通用性和有效性。
參考文獻(xiàn):
[1] 斯·勞格勞.基于不確定有限自動(dòng)機(jī)的蒙古文校對(duì)算法[J].中文信息學(xué)報(bào),2009,23(6):110-115.
[2] 張仰森,俞士汶.文本自動(dòng)校對(duì)技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2006(6):8-12.
[3] 郝莉,敖登巴拉,鞏政,等.基于貝葉斯算法的蒙古文文本自動(dòng)校對(duì)研究[J].內(nèi)蒙古大學(xué)學(xué)報(bào):自然科學(xué)版,2010,41(4):440-442.
[4] 清格爾泰.蒙古語(yǔ)語(yǔ)法[M].呼和浩特.內(nèi)蒙古人民出版社.1991.
[5] 華沙寶.現(xiàn)代蒙古文自動(dòng)校對(duì)系統(tǒng)—MHAHP[J].內(nèi)蒙古大學(xué)學(xué)報(bào):人文社會(huì)科學(xué)版 ,1997(4):49-53.
[6] 江布勒.基于規(guī)則的蒙古文自動(dòng)校對(duì)方法研究[D].呼和浩特:內(nèi)蒙古大學(xué), 2014.
[7] 斯·勞格勞.基于不確定有限自動(dòng)機(jī)的蒙古文校對(duì)算法[J].中文信息學(xué)報(bào),2009,23(6):110-115.
[8] 廉冰.基于有限狀態(tài)自動(dòng)機(jī)的蒙古文同形詞校對(duì)方法的研究[D].呼和浩特:內(nèi)蒙古大學(xué),2014.
[9] 趙軍,敖其爾,吉仁尼格,等.基于統(tǒng)計(jì)語(yǔ)言模型蒙古文詞匯分析校正器的設(shè)計(jì)與實(shí)現(xiàn)[C]//第十一屆全國(guó)民族語(yǔ)言文字信息學(xué)術(shù)研討會(huì),2007:158-163.
[10] 趙軍.基于音節(jié)統(tǒng)計(jì)語(yǔ)言模型蒙古文詞匯分析校正器的設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2007.
[11] 蘇傳捷,侯宏旭,楊萍,等.基于統(tǒng)計(jì)翻譯框架的蒙古文自動(dòng)拼寫校對(duì)方法[J].中文信息學(xué)報(bào),2013,27(6):175-179.