6. A portable device comprising: a processor to: display characters input by a user through interaction with a virtual keyboard presented on a touch-screen display of the portable device; generate, based on the characters input by the user, candidate words that correspond to a word being entered by the user through the interaction with the virtual keyboard, when generating the candidate words, the processor is to: form a plurality of prefixes including a prefix formed based on a particular character, of the characters, selected by the user on the virtual keyboard through the interaction, and prefixes formed based on one or more characters, on the virtual keyboard, in proximity to the particular character, calculate a distance factor for each of the plurality of prefixes, the distance factor for each of the plurality of prefixes being calculated as a difference between: a distance between a location, on the virtual keyboard, corresponding to the particular character and a center of a key, of the virtual keyboard, corresponding to a respective character of the one or more characters, and a key width corresponding to a distance between a key, of the virtual keyboard, corresponding to the particular character and the key, of the virtual keyboard, corresponding to the respective character, and compare the plurality of prefixes to words in a dictionary to obtain the candidate words; calculate a rank of each of the candidate words based on: the distance factor determined for a respective prefix of the plurality of prefixes, and a frequency of occurrence of the candidate word in one or more documents of the user, and display the candidate words, on the touch-screen display, based on the rank of each of the candidate words.
6. A portable device comprising: a processor to: display characters input by a user through interaction with a virtual keyboard presented on a touch-screen display of the portable device; generate, based on the characters input by the user, candidate words that correspond to a word being entered by the user through the interaction with the virtual keyboard, when generating the candidate words, the processor is to: form a plurality of prefixes including a prefix formed based on a particular character, of the characters, selected by the user on the virtual keyboard through the interaction, and prefixes formed based on one or more characters, on the virtual keyboard, in proximity to the particular character, calculate a distance factor for each of the plurality of prefixes, the distance factor for each of the plurality of prefixes being calculated as a difference between: a distance between a location, on the virtual keyboard, corresponding to the particular character and a center of a key, of the virtual keyboard, corresponding to a respective character of the one or more characters, and a key width corresponding to a distance between a key, of the virtual keyboard, corresponding to the particular character and the key, of the virtual keyboard, corresponding to the respective character, and compare the plurality of prefixes to words in a dictionary to obtain the candidate words; calculate a rank of each of the candidate words based on: the distance factor determined for a respective prefix of the plurality of prefixes, and a frequency of occurrence of the candidate word in one or more documents of the user, and display the candidate words, on the touch-screen display, based on the rank of each of the candidate words. 9. The portable device of claim 6 , where, when generating the candidate words, the processor is further to: compare the plurality of prefixes to one or more words or one or more phrases, entered by the user prior to the characters, to obtain the candidate words.