A language input architecture converts input strings of phonetic text
(e.g., Chinese Pinyin) to an output string of language text (e.g.,
Chinese Hanzi) in a manner that minimizes typographical errors and
conversion errors that occur during conversion from the phonetic text to
the language text. The language input architecture has a search engine,
one or more typing models, a language model, and one or more lexicons for
different languages. Each typing model is trained on real data, and
learns probabilities of typing errors. The typing model is configured to
generate a list of probable typing candidates that may be substituted for
the input string based on probabilities of how likely each of the
candidate strings was incorrectly entered as the input string.