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線性組合的不確定性小,是更好的模型
