1. A computer-implemented method comprising: receiving data indicating an input gesture; determining that a classifier that is trained to identify input gestures as one of at least a straight line dragging gesture, a curved line dragging input gesture, and a tapping input gesture, has classified the input gesture as a straight line dragging input gesture, a curved line dragging input gesture or a tapping input gesture; selecting, by one or more computers, a single character based at least on determining that the classifier has classified the input gesture as a straight line dragging input gesture, a curved line dragging input gesture, or a tapping input gesture, wherein, if the input gesture is classified as a straight line dragging input gesture, the single character is selected based solely on a direction associated with the input gesture, wherein, if the input gesture is classified as a tapping input gesture, the single character is a character that is associated with a center key on a reference keyboard, wherein, if the input gesture is classified as a curved line dragging gesture, the single character is a character that is associated with a key that is not adjacent to the central key on the reference keyboard, and wherein, regardless of whether the classifier classifies the input gesture as a straight line dragging input gesture, a curved line dragging input gesture, or a tapping input gesture, the single character is selected without regard to a location where the input gesture began and a location where the input gesture ended; and providing data indicating the single character.