1. A method comprising: providing a computer comprising a processor; providing a tangible computer storage medium; executing instructions stored in the computer storage medium using the processor; receiving an input string comprising two or more input words; suggesting a replacement word for one of the input words responsive to executing the instructions comprising: obtaining candidate replacement words for one of the input words; obtaining a candidate score for each candidate replacement word, each candidate score indicative of a probability that the input word should be replaced with the corresponding candidate replacement word; generating a candidate replacement string for each candidate replacement word, each candidate replacement string comprising the candidate replacement word and the input words of the input string less the input word corresponding to the candidate replacement word; producing probability scores for each of the candidate replacement strings based on statistical data; calculating a final score for each of the candidate replacement words based on the candidate score for the candidate replacement word and the probability score for the candidate replacement string containing the candidate replacement word; and suggesting replacement of the input word with one of the corresponding candidate replacement words based on the final scores of the candidate replacement words.