1.輸入法與編碼:
a.對漢字的編碼分為兩個部分:
i.對拼音的編碼
ii.對消除歧義的編碼
b.拼音輸入法的優勢:
i.不需要專門的學習
ii.輸入自然,不會中斷思維,即找每個鍵的時間短
iii.編碼長,有資訊冗餘,容錯性好
2.輸入乙個漢字需要敲多少個鍵——夏農第一定理
a.夏農第一定理:
對於乙個資訊,任何編碼的長度都不小於它的資訊熵
b.漢字編碼的平均長度:
一共6700個漢字,常用的漢字用短編碼時,其編碼的平均長度為p1*l1+p2*l2+...+p6700*l6700(其中li為第i個詞的編碼長度,pi為其出現的概率)
c.基於lcd語料庫時計算漢字編碼的資訊熵在10位元以內
而使用26個字母進行編碼時,每個字母可以代表log26約4.7位元的資訊,那麼輸入乙個漢字平均需要10/4.7約2.1次鍵盤
進一步的,如果以詞為單位統計資訊熵,在不考慮上下文相關性,漢字的平均資訊熵將會下降到8位元
如果以詞為統計單位,且考慮上下文的相關性,以此建立統計語言模型,那麼每個漢字的資訊熵會下降到6位元左右
3.拼音轉漢字的演算法:
a.原理:
和導航中尋找最短路徑的演算法相同,都是動態規劃
b.通訊模型:
輸入法則是將拼音串變到漢字串的轉換器,每乙個拼音可以對應多個漢字,把拼音串對應的漢字從左到右連線起來,就是一張有向圖,稱為網格圖或者籬笆圖,如圖:
c.演算法原理:
y1,...,yn為輸入的拼音串,wi1,wi2,win是第i個音yi的候選漢字(用wi代表第i個拼音的候選漢字),如上圖所示,將候選字連線起來可以組成很多很多的句子,每個句子都有一條路徑一一對應,拼音輸入法就是要根據上下文在給定的拼音條件下找到乙個最優的句子,即
,對應到上圖中就是尋找從起點到終點的一條最短距離
利用隱馬爾科夫模型簡化之得到
定義距離:d(wi-1,wi)=-logp(wi|wi-1)*p(yi|wi),以此作為兩個節點間的距離計算公式,利用有限狀態機和動態規劃進行求解
4.個性化的語言模型
a.研究表明:不同的人應該有自己的語言模型,但是又要處理好和通用模型間的關係
b.訓練乙個個性化的語言模型:
i.訓練乙個詞彙量在幾萬的二元模型,需要幾千萬的語料,沒有足夠多的語料庫,訓練出來的高階模型也沒有用
ii.更好的思路找到大量符合使用者的語料,具體的如下:
1).將訓練語言模型的文字或者語料按照主題分成很多不同的類別,c1,...,c1000
2).然後求每個分類的特徵向量(tf-idf)x1,...,x1000
3).統計某人輸入的文字,得到他輸入的詞的特徵向量y
4).計算y和xi的余弦
5).選擇前k個和y距離最近的類對應的文字,作為使用者的語言模型的訓練資料
6).用篩選的訓練資料訓練語言模型m1
iii.模型m1對常用詞效果更好,但是通用模型m0對相對偏僻的詞效果好
1).可以用最大熵模型對m0、m1進行綜合,但是成本較高
2).線性插值的簡化模型
假設m0、m1都是二元模型,計算(wi-1,wi)的概率為p1(wi-1,wi)和p0(wi-1,wi),對新的模型m',其條件概率(wi-1,wi)'=λ(wi-1)*p0(wi|wi-1)+(1-λ(wi-1))*p1(wi|wi-1)
而資訊熵是乙個凸函式,所有p'的熵比p0、p1線性組合的不確定性小,是更好的模型
數學之美11 拼音輸入法的數學原理
1.輸入法與編碼 a.對漢字的編碼分為兩個部分 i.對拼音的編碼 ii.對消除歧義的編碼 b.拼音輸入法的優勢 i.不需要專門的學習 ii.輸入自然,不會中斷思維,即找每個鍵的時間短 iii.編碼長,有資訊冗餘,容錯性好 2.輸入乙個漢字需要敲多少個鍵 夏農第一定理 a.夏農第一定理 對於乙個資訊,...
拼音輸入法
輸入法輸入漢字的快慢取決於 對漢字編碼的平均長度,也就是 擊鍵次數 乘以 尋找這個鍵所需要的時間。對漢字的編碼分為兩部分 對拼音的編碼和消除歧義性的編碼 最終選擇拼音輸入法,原因有三個優點,可以讓他輸入速度並不慢 1 不需要專門學習 2 輸入自然,不會中斷思維,也就是找每個鍵的時間非常短 3 編碼長...
拼音輸入法之爭
由於歷史的原因,一般情況下習慣用五筆,遇到不會打的字,就換到拼音。這樣切來切去的也挺麻煩,而且需要安裝至少兩種輸入法。後來,出現了乙個好像叫萬能五筆吧,據說五筆也行,拼音也可,就拿來用,感覺並不是太好,估計是太消耗資源了,又換回兩種輸入法。然後又發現極品五筆 極點五筆,應該都是個人開發的免費作品,用...