1. A computer implemented method of suggesting replacement words for words of a string comprising steps of: a) receiving an input string of input words; b) matching the input words to subject words of a candidate table; c) extracting candidate replacement words and candidate scores from the candidate table corresponding to the matched subject words, wherein each candidate score is indicative of a probability that the input word should be replaced with the corresponding candidate replacement word; and d) selectively suggesting replacement of the input words with their corresponding candidate replacement words based on the candidate scores for the replacement words.