米日姑·肉孜,吐爾根·依布拉音,麥熱哈巴·艾力
(新疆大學 信息科學與工程學院,多語種信息技術重點實驗室,新疆 烏魯木齊830046)
從20世紀90年代開始的智能輸入法演變到現(xiàn)在的“搜狗”輸入法、谷歌輸入法、QQ拼音、百度輸入法,形成了百花齊放的市場格局。至今為止,在維吾爾文信息處理當中還沒有出現(xiàn)一個類似于“智能ABC”、“搜狗”輸入法等功能強大的維吾爾文智能輸入系統(tǒng)。輸入維吾爾文時我們都希望輸入單詞的前幾個字母,系統(tǒng)自動列出以這個字母開頭的單詞候選列表,但是維吾爾文當中每一個單詞都有幾十個到幾千個的形態(tài)[1],以某一個字母開頭的單詞也有幾千個到幾萬個[2],即使系統(tǒng)給我們列出這些候選詞,但在這些候選詞當中找出我們想要的單詞花費的時間,遠遠超過了用戶把單詞的每一個字母逐步輸入時耗費的時間。還有很重要的一點,那就是用戶輸入維吾爾文內容時經常出現(xiàn)拼寫錯誤,因此也得考慮拼寫檢查這個因素。
維吾爾文的結構和語法跟漢字完全不一樣,漢字是象形文字,維吾爾文是拼音文字,所以不能把漢字輸入法[3-4]的特點完全使用在維吾爾語當中。維吾爾文智能輸入當中要解決的問題很多,因此,做一個類似與中文智能輸入法基本功能的維吾爾文輸入法是相當困難的。
現(xiàn)在維吾爾文輸入法的種類很多,比較常用的有:維軟公司的Alkatip、維吾爾計算機科學協(xié)會發(fā)布的Uyghur Unicode I ME、艾維達公司發(fā)布的Elpida Unicode、愛革網絡科技公司的愛革維文輸入法,還有Alamas、Ilikyurt、Hiyal等。雖然編碼方式統(tǒng)一到了國際標準(Unicode),但這些輸入法共同存在的缺點都是沒有智能輸入功能:每個輸入法都是基于單字母的輸入,用戶錄入時必須一個字母一個字母地敲擊鍵盤,不像現(xiàn)在流行的中文智能輸入法一樣具備單詞自動預測、單詞聯(lián)想輸入、校錯和自動學習功能。因此在編寫文檔、網上聊天、論壇發(fā)帖、寫博、評論等網絡應用中,用戶輸入維吾爾文時導致輸入速度慢,而且容易發(fā)生錯誤,發(fā)生的錯誤雖然不影響閱讀,但是嚴重妨礙了計算機處理。因此開發(fā)一個具備自動預測、單詞聯(lián)想、自動學習和校對功能的輸入法具有很重要的意義。
現(xiàn)在使用的維吾爾文是在晚期察合臺文基礎上形成的以阿拉伯字母為基礎的拼音文字。它與中文和西文有很大的區(qū)別,維吾爾文字輸入有如下特點:
現(xiàn)行維吾爾文有8個元音字母,24個輔音字母,書寫方向是從右到左,行向從上到下。每個字母按出現(xiàn)在詞首、詞中、詞末的位置有2到6種變體。通過英文26個字母輸入維吾爾文32個字母時,有6個字母需要借助上檔鍵(Shift+),因此這些字母輸入時不但影響速度,而且容易出錯。比如:(新疆)錯成(因為和在同一個鍵上),(人民)錯成(和在同一個鍵上)。因此使用Shift鍵會導致打字速度變慢。
維吾爾人同時并用過以拉丁字母為基礎的維吾爾文,1965~1982年整整使用了17年,該文字對各方面的影響還較深,很多應用軟件根本無法識別我們現(xiàn)用的阿拉伯文為基礎的維吾爾文的輸入(如:騰訊QQ,Messenger等),所以現(xiàn)在很多維吾爾人在計算機交流時還在使用拉丁字母為基礎的維吾爾文。然而阿拉伯文為基礎的維吾爾文和拉丁字母為基礎的維吾爾文的鍵盤布局有所不同,這兩種文字字母鍵盤布局對照如表1所示?,F(xiàn)在很多人用計算機打字的時候經常會把這兩種文字的布局搞混,如:想輸入“”字母時就會錯按成A鍵,而不是F鍵。
表1 兩種維吾爾文字母鍵盤布局對照表
維吾爾文單詞是由字母拼寫而成的,發(fā)什么音就寫什么字。但是由于方言、發(fā)音習慣以及發(fā)音相近字母的影響等原因,導致許多單詞的發(fā)音與其書面形式不同。因此打字時就按口語發(fā)音錄入,不遵守維吾爾文字母的拼寫規(guī)則,就容易出現(xiàn)正字錯誤。如表2所示。
考慮以上幾種情況,開發(fā)一個具備自動預測、單詞聯(lián)想、自動學習和校對功能的輸入法,不僅可以提高打字速度,從大的方面來說,對新疆的信息化、社會經濟發(fā)展都將產生很大的影響。
表2 維吾爾語詞與口語形勢比較
本輸入系統(tǒng)的處理過程如圖1所示。以下是其中主要模塊的功能。
(1)在索引詞庫中檢索數據:為了提升輸入檢索速度,首先建立一個完整的索引詞庫,然后根據用戶輸入對詞庫進行檢索,將檢索到的結果輸出給屏幕。使用前方一致的檢索方法,對檢索結果排序時完全一致的檢索結果優(yōu)先,其次是前方一致的檢索結果。比如:用戶輸入這個關鍵詞以后,系統(tǒng)自動推薦等一些候選列表,并按以下形式排序:。
(2)拼寫校對[5]:如果用戶輸入的內容在詞庫中不存在,系統(tǒng)對此內容進行自動校對并對修正結果重新檢索,生成相應的檢索結果。此功能在3.2節(jié)會詳細討論。
(3)學習用戶選擇:用戶在輸入內容時可能出現(xiàn)系統(tǒng)預測錯誤,聯(lián)想出來的內容不夠合理,需要用戶選擇或更正。在維吾爾文輸入系統(tǒng)中,系統(tǒng)學習的行為主要是跟蹤并記錄用戶的選擇及其上下文,以便提高候選詞列表排序的合理性。
圖1 輸入系統(tǒng)的處理過程
拼寫校對在本輸入法中起很大的作用。此模塊工作流程如圖2所示。拼寫校對模塊的組成部分如下:
(1)預處理:首先在詞庫中搜索用戶輸入的單詞,如果詞庫中存在,則認為拼寫正確,否則預處理。預處理階段的主要任務是,分析單詞的前三個字母的組成并進行刪除和字母的偏移序列替換。這里的偏移序列指的是:用戶在鍵盤上敲打字母時,用戶的手指可能從正確的字母鍵位偏移到其他字母的鍵位,或者因為SHIFT鍵引起的錯輸,也可能是因為用戶習慣性地按照基于拉丁字母的輸入習慣來輸入內容,如:基于拉丁字母的“a”和基于阿拉伯字母的“”不是同一個鍵位,因此引起誤敲。通過實驗,偏移位置大致在這個正確鍵位附近的鍵,比如:“”的偏移序列是 ()。比如:用戶輸入的單詞是,經過偏移處理后的序列:;很明顯,其中正確的單詞可能是或者還有其他的。
(2)特征提?。簭挠脩糨斎氲膬热葸M行預處理,如果預處理結果中沒有正確的單詞,則系統(tǒng)從這些預處理結果單詞中提取單詞的特征,生成一個特定的單詞模式。
圖2 拼寫校對處理過程
(3)模式匹配:按照預處理結果中生成的匹配規(guī)則,從詞庫中進行模式匹配,找出與此模式成功匹配的單詞集合。
(4)計算相似度:經過模式匹配獲取到的單詞集合與用戶輸入的內容進行相似度計算。通過相似度計算獲取與用戶輸入的內容相似度最高單詞集合。
(5)排序并顯示給用戶:通過相似度計算得來的單詞集合,按照它們相似的度量進行排序,相似度量最高的排在最前面視為最優(yōu)的單詞候選。
為了使輸入法具有聯(lián)想功能,本文采用二元文法模型[6-8]對語料進行分詞并保存。對用戶輸入的單詞根據二元模型聯(lián)想出其最佳的搭配。
當輸入完前段單詞以后,后面的單詞用戶很想知道可能輸入的單詞是哪一個?比如:___后面的空格從單詞列表當中用戶很可能輸入哪一個單詞呢?怎樣找出最佳候選?輸入法的實現(xiàn),首先需要建立一個輸入法語言模型。從統(tǒng)計角度來看,自然語言中的任何句子s可以由若干個單詞構成。
對于一個句子T而言一個詞的出現(xiàn)僅僅依賴于它前面出現(xiàn)的有限的一個或者幾個詞。如果一個詞的出現(xiàn)僅依賴于它前面出現(xiàn)的一個詞,稱之為bigram。即:
下面我們用Bigra m舉個例子。
假設語料庫中有10000個單詞:
表3 單詞和單詞序列頻度表
按照Bigram模型,實現(xiàn)了單詞自動聯(lián)想輸入功能。單詞自動聯(lián)想輸入是用戶輸入某一個單詞以后,系統(tǒng)自動聯(lián)想出跟當前單詞匹配的最佳單詞結果到候選列表中供用戶選擇。如圖3所示單詞聯(lián)想功能原理圖。
在中文Windows系統(tǒng)下,維吾爾文輸入法的設計主要是根據 Windows系統(tǒng)所定義的I MM-I ME結構。按照該結構的規(guī)范,在結構的框架內使用I ME API(輸入法程序編程接口)為各個部分編寫程序代碼,實現(xiàn)維吾爾文智能輸入法功能。輸入法運行結果界面如圖4所示。
圖3 單詞聯(lián)想原理
圖4 輸入法界面
圖5 單詞聯(lián)想界面
為了驗證輸入法程序的性能,對不同用戶進行了輸入測試。抽出的6名用戶打字速度不同。經過從政府文獻中選取的有關《中華人民共和國郵政法》的一頁(包含4個段落、252個維吾爾文單詞、33個標點符號)內容進行測試,并得到了測試數據。測試結果如表4所示。
表4 輸入法輸入測試數據表
從表4中可以看出,用戶1明顯比其他用戶打字速度慢,而且輸錯的單詞數目也比較多。完成測試之后可以看出使用本智能輸入法輸入時,速度比傳統(tǒng)方式輸入速度平均提高了38.1%,錯誤率平均下降了47%。但仍存在輸錯單詞的情況,主要是因為用戶還不太適應,還有候選詞選擇錯誤,翻頁查找候選詞等因素引起了輸錯或者選擇候選詞時的停頓,都影響了輸入法的性能[9]。通過完善訓練詞庫可以提高輸入速度。
本文在分析維吾爾文智能輸入技術現(xiàn)狀的基礎上,提出并討論了一種基于混合Bigra m語言模型的智能輸入技術,最后討論了自動預測和自動聯(lián)想功能和系統(tǒng)自動校對功能的維吾爾文智能輸入的技術。此維吾爾文輸入系統(tǒng)的自動預測和聯(lián)想功能明顯提高了輸入速度,基本實現(xiàn)了預期目標。但是,測試的結果也說明了系統(tǒng)存在一些問題,尤其是出現(xiàn)用戶輸入訓練集以外的內容時正確率有所下降,發(fā)現(xiàn)混合Bigram模型還不夠精確,用于訓練該模型的語料選取太偏重于小說、新聞、社科等領域,不夠全面,要擴大訓練語料的規(guī)模;通過系統(tǒng)自動學習,采用高階語言模型和進行數據平滑技術[10]能顯著提高維吾爾文輸入系統(tǒng)的性能。
[1]http://kenjisoft.ho melinux.co m/i mla/index.ht ml,2007-1-3.
[2]艾尼瓦爾·麥麥提,吐爾根·依布拉音.維吾爾文字母頻率統(tǒng)計及其應用[C]//第二屆全國學生計算語言學研討會論文集,2004年.
[3]李亭騫,曹渠江.Windows平臺下的漢字輸入法機制及應用[J].計算機應用與軟件,2006,(1):40-42.
[4]高升,王曉龍.語句級漢字輸入系統(tǒng)中語義規(guī)則研究[J].計算機工程與應用,2003,39(4):80-82.
[5]陳正,李開復.拼寫糾正在拼音輸入法中的應用[J].計算機學報,2001,(7):758-763.
[6]刑永康,馬少平.統(tǒng)計語言模型綜述[J].計算機科學,2003,30(9):22-26.
[7]馮志偉.自然語言的計算機處理[M].上海外語教育出版社,1996.
[8]趙以寶江,孫圣和.一種基于單字統(tǒng)計二元文法的自組詞音字轉換算法[J].電子學報,1998,(10):55-59.
[9]湯步洲,王曉龍,等.語句級漢字拼音輸入技術評估方法的研究[J].中文信息學報,2008,22(5):51-55.
[10]黃永文,何中市.基于互信息的統(tǒng)計語言模型平滑技術[J].中文信息學報,2005,19(4):46-51.
[11]朱巧明,倪明逸.基于統(tǒng)計的智能輸入技術分析[J].蘇州大學學報(自然科學版),2001(2):43-47.