拼音輸入法

2021-06-11 14:40:25 字數 2018 閱讀 1017

輸入法輸入漢字的快慢取決於 對漢字編碼的平均長度,也就是 擊鍵次數 乘以 尋找這個鍵所需要的時間。

對漢字的編碼分為兩部分:對拼音的編碼和消除歧義性的編碼

最終選擇拼音輸入法,原因有三個優點,可以讓他輸入速度並不慢:

1、不需要專門學習

2、輸入自然,不會中斷思維,也就是找每個鍵的時間非常短

3、編碼長,有資訊冗餘量,容錯性好

然後要解決的問題是。排除一音多字的歧義性。

對常見的字用較短的編碼對不常見的字用較長的編碼,這樣平均起來每個漢字的編碼長度可以縮短。我們假定每乙個漢字的頻率是

p1, p2, p3, ..., p6700

它們編碼的長度是

l1, l2, l3, ..., l6700

那麼,平均編碼長度是

p1×l1 + p2×l2 + ... + p6700×l6700

夏農第一定理指出:這個編碼的長度的最小值是漢字的資訊熵,也就是說任何輸入方面不可能突破資訊熵給定的極限。當然,夏農第一定理是針對所有編碼的,不但是漢字輸入編碼的。這裡需要指出的是,如果我們將輸入法的字型檔從二級國標擴充套件到更大的字型檔 gbk,由於後面不常見的字頻率較短,平均編碼長度比針對國標的大不了多少。讓我們回憶一下漢字的資訊熵(見

),h = -p1 * log p1 - ... - p6700 log p6700。

我們如果對每乙個字進行統計,而且不考慮上下文相關性,大致可以估算出它的值在十位元以內,當然這取決於用什麼語料庫來做估計。如果我們假定輸入法只能用 26 個字母輸入,那麼每個字母可以代表 log26=4.7 位元的資訊,也就是說,輸入乙個漢字平均需要敲 10/4.7= 2.1 次鍵。

如果我們把漢字組成詞,再以詞為單位統計資訊熵,那麼,每個漢字的平均資訊熵將會減少。這樣,平均輸入乙個字可以少敲零點幾次鍵盤。不考慮詞的上下文相關性,以詞為單位統計,漢字的資訊熵大約是8位元作用,也就是說,以詞為單位輸入乙個漢字平均只需要敲 8/4.7=1.7 次鍵。這就是現在所有輸入法都是基於詞輸入的內在原因。當然,如果我們再考慮上下文的相關性,對漢語建立乙個基於詞的統計語言模型(見

),我們可以將每個漢字的資訊熵降到 6 位元作用,這時,輸入乙個漢字只要敲 6/4.7=1.3 次鍵。如果一種輸入方法能做到這一點,那麼漢字的輸入已經比英文快的多了。

但是,事實上沒有一種輸入方法接近這個效率。這裡面主要有兩個原因。首先,要接近資訊理論給的這個極限,就要對漢字的片語根據其詞頻進行特殊編碼。事實上像王碼這類的輸入方法就是這麼做到,只不過它們第一沒有對片語統一編碼,第二沒有有效的語言模型。這種編碼方法理論上講有效,實際上不實用。原因有兩個,第一,很難學;第二,從認知科學的角度上講,人一心無二用,人們在沒有稿子邊想邊寫的情況下不太可能在回憶每個詞複雜的編碼的同時又不中斷思維。我們過去在研究語言識別時做過很多使用者測試,發現使用各種複雜編碼輸入法的人在脫稿打字時的速度只有他在看稿打字時的一半到四分之一。因此,雖然每個字平均敲鍵次數少,但是打鍵盤的速度也慢了很多,總的並不快。這也就是為什麼基於拼音的簡單輸入法佔統治地位的原因。事實上,漢語全拼的平均長度為 2.98,只要基於拼音的輸入法能利用上下文徹底解決一音多字的問題,平均每個漢字輸入的敲鍵次數應該在三次左右,每分鐘輸入 100 個字完全有可能達到。

另外乙個不容易達到資訊理論極限的輸入速度的原因在於,這個理論值是根據乙個很多的語言模型計算出來的。在產品中,我們不可能占有使用者太多的記憶體空間,因此各種輸入方法提供給使用者的是乙個壓縮的很厲害的語音模型,而有的輸入方法為了減小記憶體占用,根本沒有語言模型。拼音輸入法的好壞關鍵在準確而有效的語言模型。另一方面,由於現有輸入方法離資訊理論給的極限還有很大的差距,漢語輸入方法可提公升的空間很大。

輸入法(拼音轉漢字)和尋找最短路徑一樣,都是動態規劃。

個性化的語言模型:

訓練乙個個性化的語言模型,並且要處理好它和通用語言模型的關係。

訓練乙個一元模型不需要太多資料,經驗做法:使用者詞典,是乙個小規模的一元模型加上非常小量的n元組。

更好的訓練個性化的語言模型,需要用到餘弦定理和文字分類技術。

最好的辦法是 綜合 通用模型 和 個性化模型。使用最大熵的簡化模型:線性插值的模型

新的組合模型不確定性小,是更好的模型。

**《數學之美》

拼音輸入法之爭

由於歷史的原因,一般情況下習慣用五筆,遇到不會打的字,就換到拼音。這樣切來切去的也挺麻煩,而且需要安裝至少兩種輸入法。後來,出現了乙個好像叫萬能五筆吧,據說五筆也行,拼音也可,就拿來用,感覺並不是太好,估計是太消耗資源了,又換回兩種輸入法。然後又發現極品五筆 極點五筆,應該都是個人開發的免費作品,用...

拼音輸入法之爭

由於歷史的原因,一般情況下習慣用五筆,遇到不會打的字,就換到拼音。這樣切來切去的也挺麻煩,而且需要安裝至少兩種輸入法。後來,出現了乙個好像叫萬能五筆吧,據說五筆也行,拼音也可,就拿來用,感覺並不是太好,估計是太消耗資源了,又換回兩種輸入法。然後又發現極品五筆 極點五筆,應該都是個人開發的免費作品,用...

告別谷歌拼音輸入法

自從谷歌離開中國 共 以後,谷歌拼音輸入法已經很久沒有更新了,而微軟始終在默默開發者最易用的輸入法,這讓我下決心重新回到了微軟的懷抱,但是我積累在谷歌裡面已經積累的詞庫怎麼辦?苦惱!今天逛msdn的時候突然看到一篇日誌,然後想到,為什麼不穀歌詞庫轉換到微軟中去呢?這個教程使用下列情況,從谷歌拼音輸入...