12. A non-transitory computer-readable medium encoded with a computer program comprising instructions that, when executed, operate to cause a computer to perform operations comprising: receiving a user-supplied designation specifying a desired number of keys to form on a keypad on a graphical user interface of a mobile computing device; identifying an application executing on the mobile computing device, the application comprising an email application; selecting a collection of texts based on the identified application, the collection of texts comprising emails stored in an email box or outbox of a mobile computing device; determining a number of times that each character of a set of characters appears in the selected collection of texts; generating, for each of the desired number of keys, a grouping of characters based on the number of times each character appears in the selected collection of texts; assigning each grouping of characters to a key, wherein the character from each grouping that appears the most number of times in the collection of texts is assigned as a primary character for the respective key, and wherein a primary character for a key is a character that is entered when the key is selected one time; and displaying the keypad, formed by the desired number of keys, on the graphical user interface of the mobile computing device.
12. A non-transitory computer-readable medium encoded with a computer program comprising instructions that, when executed, operate to cause a computer to perform operations comprising: receiving a user-supplied designation specifying a desired number of keys to form on a keypad on a graphical user interface of a mobile computing device; identifying an application executing on the mobile computing device, the application comprising an email application; selecting a collection of texts based on the identified application, the collection of texts comprising emails stored in an email box or outbox of a mobile computing device; determining a number of times that each character of a set of characters appears in the selected collection of texts; generating, for each of the desired number of keys, a grouping of characters based on the number of times each character appears in the selected collection of texts; assigning each grouping of characters to a key, wherein the character from each grouping that appears the most number of times in the collection of texts is assigned as a primary character for the respective key, and wherein a primary character for a key is a character that is entered when the key is selected one time; and displaying the keypad, formed by the desired number of keys, on the graphical user interface of the mobile computing device. 15. The medium of claim 12 , wherein receiving a user-supplied designation comprises receiving a user selection of a size of each key to form on the keypad.