Systems may include receiving, from the user device, data representing input to a virtual keyboard on the user device, where the virtual keyboard includes keys, and the data represents least one of: locations at which the keys were selected and durations for which the keys were selected. The systems may include using the data to identify character strings; and performing a spellcheck on the character strings to identify candidates for the character strings. The systems may also include determining popularities of the candidates; selecting one or more of the candidates based on popularity and ranking of the one or more candidates; and outputting the selected one or more candidates.
展开▼