A wide variety of language recognition systems are designed to use one or more input modes. Typically, these input modes include a text input mode, speech input mode, and/or handwriting input mode. One of the fundamental objectives underlying these language recognition systems is to enable users to create text using one or more input modes with increased reliability at increased rates. The text input mode, for example, often allows increased input rates by enabling the user to perform actions with less precision than is required by comparable systems. In addition, this mode often provides a predictive completion feature that suggests word completion. The voice and handwriting input modes utilize a different set of input actions that some users may find easier and faster than typing. These inputs are then translated to text.
In general, language recognition systems rely upon local language models with a lexicon of textual objects that can be generated by the system based on the input actions performed by the user. In some cases, the devices running the language recognition system use the language models to map input actions performed by the user to one or more of these textual objects in the lexicon. These models are often dynamic and grow and learn as they are used, allowing a user to improve the baseline prediction with usage and teaching. However, since each user is different, these language models dynamically evolve in different ways based on each user's interactions. Users typically must train language models to recognize words that they actually want to input. Some products allow users to deliberately download supplementary word lists for use on their own devices.
In an ideal world, language models would contain all the words that users actually want to enter on an input device and none of the words that they do not want to enter. Unfortunately, language models often do not perfectly match users' language usage. With traditional language recognition systems, a user's device or devices would need to individually learn or develop a customized local language model based on user inputs. Moreover, a number of variables affect the accuracy with which these language recognition systems recognize and map the inputs to the textual objects. Prominent among these factors is whether the textual object resides within the lexicon and the frequency of use of the textual object. For example, if a word is not frequently used, a text input system might misrecognize the word, favoring one that is statistically more likely to be utilized. Among the words that are commonly misrecognized are proper names, such as those for people, streets, restaurants, and other words that have a special relevance in personal messages like voicemails. As a result, the language model for any one user's device(s) may have a less than desirable response because the language model, even if trained with all of the user's previous inputs, may not include additional vocabulary relevant to the user and the input context.