英文拼字檢查(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的樹狀結構來做。