在多種應用好比word中都有拼寫檢查和校訂功能,具體步驟分爲:ide
- 拼寫錯誤檢測
- 拼寫錯誤校訂:
- 自動校訂:hte -> the
- 建議一個校訂
- 建議多個校訂
拼寫錯誤類型:
- Non-word Errors非詞錯誤:即寫了一個不是單詞的詞,好比graffe並不存在,應校訂爲giraffe
- 檢測方法:認爲任一不在字典中的詞都是一個非詞錯誤,所以字典自己越大越好
- 校訂方法:爲錯誤詞產生一個候選,其是跟錯誤詞類似的真詞,而後選擇加權編輯距離最短或者信道噪聲機率最高的那個詞。
- Real-word Errors真詞錯誤:
- 印刷錯誤:three->there
- 認知錯誤(同音異形字):piece -> peace; too -> two
- 檢測方法:因爲每一個真詞可能都是一個錯誤詞,所以咱們爲每一個詞都產生一個候選集,包括該詞自己、跟該詞發音或拼寫類似的詞(編輯距離爲1的英文單詞)、同音異形詞。
- 校訂方法:按照信道噪聲或者分類器選擇最好的候選詞。
1、非詞錯誤校訂
基本方法:使用The Noisy Channel Model of Spelling信道噪聲模型學習
假設初始詞通過一個噪聲信道輸出一個噪聲詞,即爲可能的錯誤詞,咱們旨在對該噪聲信道建模,從而使得在解碼階段可以根據噪聲詞獲得一個猜想詞,其跟初始詞一致,即找到錯誤詞正確的拼寫。測試
而信道噪聲咱們視之爲一個機率模型,以下:this
輸入:一個錯誤詞xidea
旨在:找到一正確的詞wspa
要求:3d
P(w)稱爲語言模型表示單詞w爲一個單詞的機率,P(x|w)稱爲信道機率(或錯誤機率)表示若是是w,x是w拼錯的詞的機率。blog
例子:three
設:有一個錯誤詞「acress」開發
1. 產生候選詞:
- 類似拼寫詞:跟錯誤詞之間小的編輯距離
- 採用Damerau-Levenshtein edit distance,計算的操做包括:插入、刪除、置換和兩個相鄰字母之間的換位transposition,
- 如下是與「acress」編輯距離=1的列表:
- 80%錯誤詞與正確詞之間的編輯距離爲1,大部分的編輯距離都小於等於2
- 容許插入空格或者連字符-:thisidea -> this idea; inlaw -> in-law
- 類似發音詞:跟錯誤詞的發音之間小的編輯距離
2. 選擇最優候選詞:套用公式
a) 計算語言模型P(w):能夠採用以前說過的任一語言模型,好比unigram、bigram、trigram,大規模拼寫校訂也能夠採用stupid backoff。
b) 計算信道機率P(x|w):首先得到多個單詞拼錯的列表,而後計算混淆矩陣,而後按照混淆矩陣計算信道機率。
設:
有:
x和y爲任一字母a-z,計數count表示後面那張狀況發生的次數,其中插入和刪除的狀況都依賴於前一個字符,sub[x,y]的混淆矩陣結果以下:
而後按照上述混淆矩陣計算信道機率:
c) 總體機率計算實例以下:
也能夠選用語言模型計算總體機率,好比:使用bigram或trigram語言模型
3. 結果評估方法:
使用拼寫錯誤測試集:
2、真詞校訂
25-40%的拼寫錯誤都是真詞錯誤。
具體步驟:
實例:
爲了方便起見,咱們假定每一個句子中只有一個拼寫錯誤,因此有:
要求從中找到一個組合序列使得序列的機率最高。
計算P(W):
方法1:語言模型,好比unigram、bigram等
方法2:信道模型:跟「一」中的方法同樣,但還須要額外計算沒有錯誤的機率P(w|w),由於候選集中還包括自身詞。
計算P(w|w):其徹底依賴於應用自己,表示一個詞可能被拼錯的機率,不一樣的應用機率不一樣:
3、經典系統state of art
1. HCI issues in spelling
- 若是對校訂結果很是自信:自動校訂
- 通常自信:給定一個最好的校訂方案
- 一點點自信:給定一個校訂方案的列表
- 沒有自信:給錯誤詞作出標記,不校訂
2. 經典噪聲信道
實際應用中,信道機率和語言模型機率的權重並不是一致,而是採用以下的計算公式:
而後在開發測試數據集中訓練學習lambdas的值。
3. 語音錯誤模型
針對有類似發音的錯誤拼寫的糾正
a) Metaphone, used in GNU aspell
- 將錯誤拼寫轉換爲變音發音,規則以下:
- 而後找到跟錯誤拼寫的發音的編輯距離爲1-2的詞
- 給結果列表打分,按照:
- 候選詞跟錯誤詞之間的加權編輯距離
- 候選詞的發音與錯誤詞發音的編輯距離
4. 信道模型的升級版
a) 容許更多的操做(Brill and Moore 200)
b) 在信道中結合發音(Toutanova and Moore 2003)
c)在計算信道機率P(x|w)時考慮更多的影響因素
5. 基於分類器的真詞拼寫校訂方法
- 考慮更多的特徵
- 針對特定詞對創建分類器