Any spell checker must have some data about the words in the target language, either in general usage or with specialized knowledge (like medical vocabulary).
For example, if there are multiple suggestions of edit distance 1, the words that appear most frequently in the corpus are most likely to be the desired correction.
[3] A faster approach adopted by Peter Norvig[4] generates all the permutations from an input word of all possible edits.
For a word of length n and an alphabet of size a, for edit distance 1 there are at most n deletions, n-1 transpositions, a*n alterations, and a*(n+1) insertions.
A further innovation adopted by Wolf Garbe, known as SymSpell[5] ("sym" as in "symmetry") speeds the input-time calculation by utilizing the fact that only permutations involving deletions need to be generated for input words if the same deletion permutations are pre-calculated on the dictionary.
If a large set of known spelling errors and corrections is available, this data can be used to generate frequency tables for letter pairs and edit types; these can be used to more accurately rank suggestions.