Automating Spellcheck (SpellCorrect?)

Let’s start this off by admitting a dark secret: my spelling is atrocious. As an example, I initially typed that sentence as, “Let’s start this off by admiting a dark secret: my spelling is attrocious.”  Built-in spell checking serves as a constant face-saver, but repeatedly finishing a sentence, switching from keyboard to mouse, right-clicking on the freshly-underlined words, and choosing what is nearly always the top choice from the built-in dictionary gets old.  The fact that the computer’s first suggestion is almost always exactly what I tried to type makes me wonder: why can’t the machine automatically correct misspellings?  Spell-checkers already rank the possible solutions, so it seems logical that if the delta of the ranking values between the top two choices is sufficiently large, it would be pretty safe to automatically make the replacement.  If the action was accompanied by some sort of animation or color change (like the highlighting Mac OS X’s Preview performs when searching text in PDF files), the user would be aware the change had been made and could quickly evaluate whether it was correct.  If it is, no need to switch over to the mouse and lose your train of thought; you can keep merrily typing away.  If the correction was wrong, the highlight should remain for a while so that the user can finish typing, then come back to fix any mistaken spelling corrections.

Combining this technique with a machine learning system to detect patterns in a particular user’s misspellings (including the actual word they wanted) you could quickly end up with a highly-accurate spellcorrecter tailored to the end user.  This brings the idea into my area of research, since the result would be a machine-learned program that could hold significant time-saving value to users.  I’ll have to take a closer look at this at some point soon.  In the meantime, I’m just frustrated that such a system doesn’t already exist.