Can anyone suggest any algorithm and technique for spell checking?After some googling, I found some interesting ones such as this one from Peter Norvig, http://norvig.com/spell-correct.html and few others. However, most of them were written many years ago. Therefore, I am trying to find out whether is there any newer/improved approach to tackle such problem.
Algorithms and techniques for spell checking
machine learning;python;nlp;algorithms
Here is what I built...Step 1: Store all the words in a Trie data structure. Wiki abouttrie.Step 2: Train an RNN or RNTN to get seq2seq mapping for words andstore the modelStep 3: Retrieve top n words with  levenshteindistance with the.  Wiki about LD with the word that you are trying tocorrect.Naive Approach: Calculating the edit distance between the query term and every dictionary term. Very expensive. Peter Norvig's Approach: Deriving all possible terms with an edit distance<=2 from the query term, and looking them up in the dictionary. Better, but still expensive (114,324 terms for word length=9 and edit distance=2) Check this.Faroo's Approach: Deriving deletes only with an edit distance<=2 both from the query term and each dictionary term. Three orders of magnitudes faster. http://blog.faroo.com/2012/06/07...Step 4: Based on the previous 2 or 3 or 4 words, predict the wordsthat are retrieved from Step 3 above. Select the number of wordsdepending on how much accuracy you want (Of course we want 100%accuracy), and the processing power of the machine running the code,you can select the number of words you wanna consider.Check out this approach too. It's an acl paper from 2009. They call it - language independent auto correction.