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