英文拼字檢查(spellcheck)

這篇簡單介紹英文拼字檢查的實作邏輯,最常看到拼字檢查不外乎一些文書處理工具,可以檢查拼錯的英文字,再給予建議的候選字。

處理邏輯可以簡單這樣分

1.過濾
2.比對
3.給予建議

過濾不外乎就是把一些中文字、符號等過濾掉,再來用空白切字,下面提供C#過濾寫法。
        Regex rgx = new Regex("[^a-zA-Z]");
        string englishContent = rgx.Replace(content, " ");

        List<char> parameters = new List<char>();
        parameters.Add(' ');
        string[] wordList = englishContent.Split(parameters.ToArray());
        wordList = wordList.Where(c => c != "" && c.Length>1).ToArray();
        return wordList;

再來是比對,需要一個字典,字典上的字確定是對的,網路很多開源的字典可以參考,再來就把剛剛切好的字去跟字典比對,若有在字典出現,系統則認為是對的字,若沒有進入下一步驟。

給予建議字,因為找不到一樣的字,這時就用編輯距離(Edit Distance)來去算跟他最相似的字,給予候選建議字。

後面兩個步驟在實作上建議可以用Trie的樹狀結構來做。

留言

這個網誌中的熱門文章

Python-相關係數矩陣實作(python-correlation matrix )

ASP.NET-後端將值傳給javascript

ASP.NET-FileUpload上傳後自動觸發button click(FileUpload upload auto trigger button click)