拼音输入法的数学原理
拼音輸入法的數(shù)學(xué)原理
聲明:引用請注明出處http://blog.csdn.net/lg1259156776/
引言
過去的25年里,中文輸入法經(jīng)歷從自然音節(jié)編碼輸入,到偏旁筆畫拆字輸入,再回歸自然音節(jié)輸入的過程。和任何事物的發(fā)展一樣,這個螺旋式的回歸不是簡單的重復(fù),而是一種升華。[摘自吳軍的數(shù)學(xué)之美]
輸入法
輸入法需要解決兩個問題:一是對拼音編碼(或者是拆分偏旁的編碼);二是消除歧義性的編碼。只有兩個方面都縮短時,漢字的輸入才能變快。早期的輸入法只重視了第一部分,過分追求最短編碼,而忽略了消除歧義性的編碼。比如采用拼音輸入首字母的方法對漢字進(jìn)行編碼,這樣雖然單個漢字的編碼縮短了不少,但是有大量的重復(fù)編碼,即一個編碼對應(yīng)n多個漢字,為了找到相應(yīng)的漢字需要翻好多頁,這樣的輸入法是不可能輸入很快的。而中間發(fā)展的五筆輸入法,通過偏旁筆畫拆分能夠很好地消除奇異性,也就是說編碼的重復(fù)性低,但是對于輸入人員的要求比較高,首先得記憶復(fù)雜的編碼,其次還得思考輸入漢字如何進(jìn)行拆分,如果拆分錯誤,找來找去還找不到對應(yīng)的漢字,這樣就使得輸入效率變低。也許對于專業(yè)人士,可能具有良好的演示效果,但是對于這種大眾化的應(yīng)用,最好還是編碼越簡單越自然越好。
ps:在我們老家,還有好多人都不太懂拼音輸入,更別提五筆輸入了。所以,大眾化的應(yīng)用最好還是簡單有效的好。
研究表明,脫稿打字會嚴(yán)重中斷思維,如果一個輸入法中斷了人們的思維過程,就和人的自然行為不相符合。認(rèn)知科學(xué)已經(jīng)證明,人一心無二用。如果要求再輸入漢字的時候還要去中斷思維去想待輸入漢字的編碼按鍵,這樣就很容易導(dǎo)致思維中斷,這樣的輸入法的認(rèn)可度也就會很低。所以,這也是后期輸入法回歸到自然全拼音節(jié)編碼輸入的原因。這個時期的編碼輸入與早期的拼音編碼輸入是不同的,考慮的本質(zhì)是不一樣的。早期采用拼音輸入是還沒有找到復(fù)雜的編碼方式,而后期的回歸是處于“自然”輸入的考慮。兩者有本質(zhì)的差別。
漢字輸入需要敲多少次鍵
統(tǒng)計一下漢字的信息熵,GB2312簡體中文字符集一共有6700多個常用漢字,用鍵盤上的26個字母對漢字進(jìn)行編碼。可以統(tǒng)計一下每個漢字的使用相對頻率,可以計算出它的信息熵,香農(nóng)第一定理指出了,對于一個信息,任何編碼的長度都不小于它的信息熵。因此,可以在不考慮上下文相關(guān)性,大致可以估算出信息熵在10個比特以內(nèi)。而輸入法只能用26個字母進(jìn)行輸入,每個字母可以代表log26≈4.7比特,其實也就是26個字母的最大信息熵,?∑26i=1126log126≈4.7,這樣輸入一個漢字平均需要敲鍵盤10/4.7≈2.1次。現(xiàn)在是以單字作為統(tǒng)計,如果以詞為單位統(tǒng)計信息熵,在沒有考慮上下文信息情況下,這樣每個漢字的平均信息熵就會減少,漢字的信息熵大約8比特。以詞為單位輸入一個漢字平均只需要敲擊1.7次鍵盤。這就是現(xiàn)在所有輸入法都是基于詞輸入的根本原因。如果考慮到上下文的信息,對漢語建立一個基于詞的統(tǒng)計語言模型,這樣輸入一個漢字只要敲擊6/4.7=1.3次鍵。如果一個中文輸入法能夠做到這一點,就比英文輸入快多了。
拼音轉(zhuǎn)漢字的算法
類似地圖上的最短路徑規(guī)劃,采用動態(tài)規(guī)劃。實際上輸入法是一個將拼音串轉(zhuǎn)變?yōu)闈h字串的轉(zhuǎn)換器。每個拼音對應(yīng)多個漢字,把一個拼音串對應(yīng)的漢字從左到右連起來,就構(gòu)成了一張有向圖。選取具有最大概率的路徑,通過取對數(shù)取反,就轉(zhuǎn)變?yōu)榱诉x取最短路徑的算法。而拼音串到漢字串的轉(zhuǎn)移概率可以采用馬爾可夫模型的一步轉(zhuǎn)移概率來解決。
個性化的語言模型
現(xiàn)在的輸入法都不是一個靜態(tài)的,指的是所有的語料在安裝好輸入法應(yīng)用后就不變了。實際上像微軟、搜狗等輸入法都具有學(xué)習(xí)用戶輸入習(xí)慣的功能,比如輸入一個不常用的詞,第一次輸入時還需要往后翻好幾頁才能找到這個詞,但是隨著該詞的輸入次數(shù)增多,輸入法就能學(xué)習(xí)到用戶的輸入個性,當(dāng)再次輸入時,該不常用的詞的排名就會靠前。
實際上為用戶定制個性化的語言模型是在客戶端的一種不錯的嘗試。個性化的出發(fā)點是不同人平時寫的東西主題不同,由于文化的差異,用詞習(xí)慣不同,說話和寫作的水平不同,因此對于消除歧義的多個詞的排名順序也就應(yīng)當(dāng)不一樣,因此也應(yīng)該各有各的語言模型。
例如搜狗輸入法就有個性化的定制,比如對于某些主題、專業(yè)詞匯等,如醫(yī)學(xué)詞匯,物理化學(xué)等。用戶在安裝應(yīng)用時可以選擇自己的常用輸入主題,從而實現(xiàn)個性化的定制。
最后,通用語言模型+個性化用戶定制的模型相結(jié)合,能夠?qū)崿F(xiàn)很高的輸入效率。
2015-9-23 藝少
轉(zhuǎn)載于:https://www.cnblogs.com/huty/p/8519129.html
總結(jié)
以上是生活随笔為你收集整理的拼音输入法的数学原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【linux学习笔记三】链接命令
- 下一篇: Struts2漏洞为互联网带来严重安全风