1. A method, comprising the steps of: providing an input device, wherein the input device comprises an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters; receiving a sequential string of characters through the input device, wherein the received sequential string of characters corresponds to a word; comparing the received sequential string of characters with a word corpus; generating at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus; calculating a probability of erroneously inputting any given character of the received sequential string of characters through the input device, wherein the erroneous inputting of a character of the received sequential string of characters comprises any of poor spelling by the user, mis-striking a key of the plurality of keys, wherein the wrong key is entered, or mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered; generating variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the received sequential string of characters through the input device; calculating the editing distance for each of the at least two candidate words by using the generated variable error costs, wherein the editing distance is the degree of attenuation between the candidate word and the received sequential string of characters; and selecting a preferred candidate word from the at least two candidate words by using the calculated editing distance, wherein the preferred candidate word has the smallest calculated editing distance of all the calculated editing distances of the at least two candidate words.
1. A method, comprising the steps of: providing an input device, wherein the input device comprises an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters; receiving a sequential string of characters through the input device, wherein the received sequential string of characters corresponds to a word; comparing the received sequential string of characters with a word corpus; generating at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus; calculating a probability of erroneously inputting any given character of the received sequential string of characters through the input device, wherein the erroneous inputting of a character of the received sequential string of characters comprises any of poor spelling by the user, mis-striking a key of the plurality of keys, wherein the wrong key is entered, or mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered; generating variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the received sequential string of characters through the input device; calculating the editing distance for each of the at least two candidate words by using the generated variable error costs, wherein the editing distance is the degree of attenuation between the candidate word and the received sequential string of characters; and selecting a preferred candidate word from the at least two candidate words by using the calculated editing distance, wherein the preferred candidate word has the smallest calculated editing distance of all the calculated editing distances of the at least two candidate words. 3. The method of claim 1 , wherein the step of generating the at least two candidate words comprises the step of: selecting the at least two candidate words from the word corpus by fuzzy logic, wherein if an error is detected in a candidate word, then the candidate word can be tested again after substituting in turn each character of the received sequential string of characters with an adjacent letter from the input device.