1. A computer-implemented method performed by a device having a processor, a memory, and a touchscreen display, the method comprising: receiving a request to associate a first quantity m letters of an alphabet with a second quantity n keys of a virtual keyboard, where m and n are integers and where m>n; in response to receiving the request, selecting a target user population; selecting one or more texts of a corpus that are associated with the target user population; determining, by the device, for each letter of the alphabet, a frequency of occurrence of the letter within the selected one or more texts; identifying the n letters of the alphabet having at least the nth highest frequency of occurrence within the selected one or more texts; assigning the n letters of the alphabet to primary positions on the n keys of the virtual keyboard, wherein a letter assigned to a primary position on a key is input in response to a single key press of the key; identifying the remaining (m−n) letters of the alphabet that do not have at least the nth highest frequency of occurrence within the selected one or more texts; assigning the remaining (m−n) letters of the alphabet to secondary positions on the n keys of the virtual keyboard, wherein a letter assigned to a secondary position on a key is input in response to multiple key presses of the key; displaying the virtual keyboard on the touchscreen display; and after assigning the n letters and the remaining (m−n) letters to the primary and secondary positions on the n keys of the virtual keyboard, updating an assignment of the m letters to the n keys of the virtual keyboard based on determining that the selected one or more texts have been updated.