1. A method for suggesting alternative user inputs, comprising: receiving an original user input, the input having at least one core term; identifying the at least one core term in the original user input; determining at least one potential alternative user input by performing at least one of (a) replacing at least one core term in the original user input with another term according to a similarity matrix, the similarity matrix having a similarity value between the two terms and (b) substituting a sequence of words in the original user input with another sequence of words according to an expansion/contraction table, one sequence being a substring of the other sequence, the expansion/contraction table having frequency values associated with sequence of terms; computing likelihoods of the potential alternative user inputs; and selecting one or more most likely alternative user inputs from the at least one potential alternative user input according to a predetermined criteria.