1. A method comprising: at an input device having one or more processors and memory storing programs for execution by the one or more processors, receiving user touches on a virtual keyboard to enter a first intended word; detecting a first sequence of points corresponding to the user touches on the input device; identifying a first set of radial distances associated with letters of the first intended word, wherein the first set of radial distances are determined based on a layout of the virtual keyboard by measuring distances between an origin and each of the first sequence of points corresponding to the respective letters; identifying a first set of angular values associated with the letters of the first intended word, wherein the first set of angular values are determined based on the layout of the virtual keyboard by measuring the angular values from the origin for the first sequence of points corresponding to the respective letter; comparing automatically the first set of radial distances to sets of radial distances associated with words stored in an electronic dictionary, wherein the dictionary stores a set of radial distances and angular values for each of the words; comparing automatically the first set of angular values to sets of angular values associated with the words stored in the dictionary; and identifying the word stored in the dictionary having the radial positions that most closely match the first set of radial distances and the angular values that most closely match the first set of angular values of the first intended word.