The difference is that existing programs require the user to correct each word individually from a drop-down list of alternatives, or else to retype or reutter the words.
For example, if someone always preferred to spell "thanks" as "thx, " SwiftKey 3 would learn this behavior and add "thx" in as a word rather than continuously trying to correct it.
We were using typewriters, where the state of the art way to correct a typo was to backspace and put a strip of white paper behind the key and retype the word.