白雙成,張勁松 ,呼斯勒
(1. 北京語言大學 對外漢語研究中心,北京 100190; 2. 內蒙古社會科學院 蒙古語信息處理研究所,內蒙古 呼和浩特 010020; 3. 內蒙古蒙科立軟件有限責任公司,內蒙古 呼和浩特 010019)
依據蒙古文編碼國際/國家標準及用戶協(xié)定[1-3],在Windows Vista/7/8、iOS等平臺上,依托其復雜文本布局引擎(complex text layout engine),開發(fā) OpenType[4-5]或AAT(Apple Advanced Typography)字體,再配合一個簡單的鍵盤映射輸入法即可實現蒙古文的錄入和名義字符到變形顯現字形的轉換顯示。但是,為了更好地滿足用戶需求,開發(fā)一套簡便快捷的智能輸入法是非常有必要的。對于一個錄入速度和準確度要求較高的智能輸入法而言,研究制定科學合理的輸入碼方案至關重要。
我們將輸入一個單詞所需的輸入碼的碼元個數稱為碼長[5-6]。就詞級錄入來說,蒙古文輸入法的錄入速度取決于詞的平均碼長,其中含兩層含義,一個是對應一個單詞的碼長越短越好,另一個是輸入這個輸入碼時用戶思考尋找的時間越短越好。輸入法的碼長越長,輸入信息越多,對應重碼詞就越少。反之,碼長越短,所含信息越少,對應重碼詞就越多。單純地減少碼長未必能提高速度,因為尋找一個鍵的時間可能變得較長[5,7]。所以縮短平均碼長的關鍵在于兼顧兩者,輸入碼方案確定就是在碼長與信息量之間尋找一個平衡點的過程。需要特別說明的是,好的方案能否落到實處,還要看具體工程實現能力和實際條件。
以往,確定輸入法輸入碼方案時更多的是研發(fā)人員從感官認識和個人的主觀意識去選擇一套方案。為此我們想通過本文較為系統(tǒng)的量化比較各類輸入碼方案,為下一步的研究和工程實現提供理論依據。
1) 蒙古文輸入也可以用字形、字符編碼等信息來輸入,但這類輸入方式畢竟不是普遍做法,本文討論的輸入法,只限于讀音輸入(類似于漢字拼音輸入),也就是按蒙古文讀音為基礎的輸入法。
2) 限定在PC普通鍵盤上,不涉及數字鍵盤或其他類。組成輸入碼的字符集(通常稱為碼元)默認為英文字母{abcdefghijklmnopqrstuvwxyz},也可以是普通鍵盤內的其他所有字母,如蒙科立整詞輸入法[8]中“NG”用“;”輸入。碼元越多,重碼可能性越小,輸入就會更快捷,但會加大用戶記憶壓力。本文雖不涉及數字鍵盤,依然對其有一定的借鑒意義。
5) 以詞組為單位統(tǒng)計的單詞的信息熵保證比以單詞為單位的信息熵小,也就是說,以詞組為單位進行輸入碼編碼的話,其輸入碼長度會小很多。如果進一步考慮單詞及詞組之間的上下文相關性,建立統(tǒng)計語言模型的話信息熵會更小。但本文暫不涉及這些內容。因為我們通過n元模型試驗得知,只要單詞輸入碼方案選定合理,直接應用于詞組及語言模型,即可獲得較好的效果。因篇幅所限,暫不細述。
6) 如果加入單詞頻率因素,量化比較會更合理些。但礙于目前所能獲得的熟語料量嚴重不足,生語料利用中的部分技術問題還未完成,所以本文暫時無法考慮詞頻因素。
7) 輸入碼方案中優(yōu)先考慮輸入的簡短快捷和易學,但本文提出的模糊輸入特性恰恰是標準音教學和推廣中所不能容忍的。我們認為可通過輸入法選項來限定,就此不做額外說明。
按輸入碼方案的特點,將其分為三類,即方案1為全拼方案,方案2和方案3為整詞方案,其余為模糊輸入方案。各方案介紹如下:
方案1: 全拼方案
該方案是目前多數讀音輸入法(或稱其為音碼輸入法)采用的輸入碼方案。其核心思想是依據拼音(音素)文字特點,為每一個音素安排一個輸入鍵(實際應用中可能會用n+g來輸入(),用lh輸入(l)等策略), 通過上下文的分析,盡力解決一字多形,多字同形(同形異音)問題。例如,音素(a)的輸入鍵為a,則不管其詞內位置如何,都用這個a鍵輸入,如的輸入碼為agana。為區(qū)分同一音素在相同上下文中的多個變體,引入變體選擇方案(用詞典或規(guī)則方式特殊處理除外,此處特指此類特殊問題),如蒙科立音碼輸入法2002版中用1、2、3選擇不同變形(如輸入為banana1),用-a、-e選擇詞尾a、e變形(harahar-a)。后續(xù)版中引入窮舉候選項和大寫輸入碼(也就是shift+鍵值)輸入非常用變體字形方式。基于OpenType技術實現的鍵盤映射可歸為此類。
方案2: 整詞輸入法方案
表1 整詞輸入法半音字母映射關系表
方案3: 在方案2的基礎上要求補充所有半音字母。提出這一方案的目的僅僅是想在數據上比較一下方案2以外的半音字母對重碼過濾的貢獻度。實際應用中錄入復雜度已接近方案1,還要記憶半音字母對應關系,無實際應用價值。
方案4: 只取各音節(jié)的首字母,忽略所有其他字母。此方案將在詞組輸入和基于統(tǒng)計語言模型輸入中具有重要作用。
圖1 模糊輸入方案示意圖
方案5: 取各音節(jié)首字母,再取首音節(jié)元音。此方案主要觀察首音節(jié)元音貢獻度。
方案6: 取各音節(jié)首字母,再取詞尾半音字母。此方案主要觀察詞尾半音字母貢獻度。
試驗中使用的是1 215 799條詞。
表2 各方案重碼分布表
從表中分析可知
全拼方案類—方案1:
1) 只需了解鍵盤布局即可會拼寫,易學性突出;
2) 拼寫所有可能組合,沒有拼不出來的字,是其他方案的必要補充;
3) 高達91.185 5%的無重碼率,重碼集中前3項,便于盲打;
4) 音節(jié)切分沒有歧義;
5) 只需規(guī)則推導,不用詞表也可以;
(三)預防用藥 一些疾病,如仔豬黃、白痢,只要事先在飼料中加入藥物,完全是可以做到事半功倍的預防作用。為了預防常見病,一般養(yǎng)殖場都定期或不定期在飼料中加入土霉素粉、黃芪多糖粉、氟哌酸粉、環(huán)丙沙星粉等,做到防患于未然。
6) 輸入碼長,效率低;
7) 沒有詞庫支持錯誤率較高;
整詞方案類—方案2至方案3
1) 平均碼長比方案1短很多,但無重碼率還是高達81.721 0,重碼分布與方案1接近;
2) 音節(jié)切分基本沒有歧義;
3) 需記憶對應關系,按人類學理論,易中斷錄入者的思維過程,不符合人的自然行為;
4) 錄入未登錄詞時,需要在方案1與方案2之間進行切換;
模糊方案類—方案4至方案7
1) 平均碼長接近方案2,但與其相比,輸入更自然流暢,符合自然行為;
2) 補充信息越多重碼率越低,輸入靈活,便于讀音不確定詞的錄入;
3) 與方案1結合錄入未登錄詞更為自然,無需切換;
4) 利于用更為簡短輸入碼用于基于統(tǒng)計模型的連續(xù)輸入;
5) 失去音節(jié)結構,重碼率升高;
6) 輸入靈活,但同時輸入隨意性增大,盲打難度提高;
為進一步用一個單值直觀比較輸入碼方案的特性,在此借用平均碼長概念。長度為len的輸入碼有n個重碼時,我們還需要用一個空格或數字鍵選擇,所以每個詞需擊鍵len+1次。我們認為按空格選擇第一候選項和按數字鍵選擇其他候選項具有決然不同的消耗,以至于放大其影響而忽略空格輸入時,平均擊鍵數可公式化為(len*n+n-1)/n=len+1-1/n。例如同樣是碼長為2的輸入碼,如果重碼為2,則平均碼長為2+1-1/2=2.5,如果重碼為3時平均碼長為2+1-1/3=2.66。所以總平均碼長公式為:
其中l(wèi)en(i)是第i個輸入碼長度,C(i)為輸入碼i的重碼詞個數。
需要說明的是當n大于閾值時,還需要翻頁。但我們比較的幾種輸入碼方案中10以上重碼量較少,為簡化公式,沒有對其進行細化。
表3 平均碼長對照表輸入碼方案
從表中可以看到,我們方案6和方案7之間可以找到一個近似方案2的平均碼長。
需要說明的是,表3所示數據中,沒有考慮單詞實際出現頻率,加上計算單詞中涵蓋大量蒙古文形態(tài)變化派生的單詞,所以平均碼長要比現實文字錄入的平均碼長長很多。
基于本文試驗,我們在新輸入法中采用了融合方案4至方案7的改進型混合輸入碼方案,即,用戶必須輸入各音節(jié)首字母,其余字母都可以隨意忽略。通過本試驗我們明確了所采取輸入碼方案的優(yōu)缺點。為進一步研究與工程實現奠定了基礎。
除上述量化比較中凸顯的優(yōu)點外,此方案還有如下優(yōu)點值得闡述:
1) 輸入中可避開讀音易混淆字母
2) 有助于輸入外來詞和特殊詞拼寫
值得說明的是,輸入碼中的各成分的權值不一樣,更為合理的方式是測定各信息的熵[9-10]或互信息,通過熵或互信息來確定單詞的最短輸入碼更為合理,但這種方式推導出來的輸入碼僅僅是滿足最小化輸入碼的需求,會增加人們輸入碼記憶難度,實際意義需要研究。如果與上述分析類似,將輸入碼分為音節(jié)首字母、元音、半音字母等,通過熵或互信息,自底向上推導出一個合理的詞級編碼方法將是我們近期另一項研究內容。
更進一步,以上所有分析源于一個思想,認為蒙古文讀音輸入法的編碼方案的不同,實質上是從音素、音節(jié)、單詞、詞組等不同層次進行編碼的結果。從音素層次,對每個音素進行編碼,就是全拼方案。而其余都是從音節(jié)層次(更準確說是抽象音節(jié)結構角度考慮,而不是窮舉所有音節(jié)結構)進行編碼?;趩卧~及以上單位的編碼方式目前不太適合蒙古文。這個需要合適的語言模型及語料庫的支持。
[1] The Unicode Consortium[EB]. http://www.Unicode.org.
[2] 確精扎布. 蒙古文編碼[M] . 呼和浩特: 內蒙古大學出版社, 2000.
[3] 國家質量監(jiān)督檢驗檢疫總局,國家標準化管理委員會.GB 25914-2010.信息技術傳統(tǒng)蒙古文名義字符、變形顯現字符和控制字符使用規(guī)則[S]. 北京.中國標準出版社,2011.11.
[4] OpenType specification[EB]. http://www.microsoft.com/typography/otspec/ .
[5] 姚延棟, 吳健, 孫玉芳,呼斯勒. 傳統(tǒng)蒙古文變形顯示機制研究與實現[J].中文信息學報,2005, 18(5): 84-89.
[6] 朱巧明、李培鋒等.中文信息處理技術教程[M].北京.清華大學出版社,2005.9.
[7] 吳軍.數學之美[M].北京.人民郵電出版社.2012.6: 185-196.
[8] S·蘇雅拉圖.蒙古文整詞計算機生成理論研究[J].中文信息學報,2001,15(4): 59-65.
[9] 那日松,淑琴.蒙古文信息熵和拉丁轉寫研究[A]. 中國計算技術與語言問題研究——第七屆中文信息處理國際會議論文集[C], 2007: 782-785.
[10] Thomas M.Cover, Joy A. Elements of information theory[M]. New York. Wiley.1991.