1. A text input apparatus, comprising: a user input device comprising a keyboard region comprising a plurality of the characters of an alphabet, wherein each of the plurality of characters corresponds to a location with known coordinates in the keyboard region, wherein when a user contacts the user input device within the keyboard region, one or more input values based on the contact locations are generated; a memory containing a vocabulary database comprising a dictionary containing entries; an output device with a text display area; and a processor that receives as an input sequence a series of one or more of said input values from said input device; said processor programmed to execute a set-edit-distance algorithm to calculate a matching metric between said input sequence and a candidate string, to access a database to retrieve one or more candidate strings, to calculate said set-edit-distance between said input sequence and a candidate string by comparing sets of possible characters corresponding to said input sequence with characters in the candidate string, and to output one or more candidate strings ranked by the matching metric; wherein if a candidate string character is in a set of said sets of possible characters per input, set-edit-distance does not increase; and wherein if a candidate string character is not in said set of possible characters per input, set-edit-distance is increased according to a predetermined rule, said processor coupled to the user input device, memory, and output device.
1. A text input apparatus, comprising: a user input device comprising a keyboard region comprising a plurality of the characters of an alphabet, wherein each of the plurality of characters corresponds to a location with known coordinates in the keyboard region, wherein when a user contacts the user input device within the keyboard region, one or more input values based on the contact locations are generated; a memory containing a vocabulary database comprising a dictionary containing entries; an output device with a text display area; and a processor that receives as an input sequence a series of one or more of said input values from said input device; said processor programmed to execute a set-edit-distance algorithm to calculate a matching metric between said input sequence and a candidate string, to access a database to retrieve one or more candidate strings, to calculate said set-edit-distance between said input sequence and a candidate string by comparing sets of possible characters corresponding to said input sequence with characters in the candidate string, and to output one or more candidate strings ranked by the matching metric; wherein if a candidate string character is in a set of said sets of possible characters per input, set-edit-distance does not increase; and wherein if a candidate string character is not in said set of possible characters per input, set-edit-distance is increased according to a predetermined rule, said processor coupled to the user input device, memory, and output device. 9. The apparatus of claim 1 , said processor further implementing a regional correction algorithm that is executed in connection with said set-edit-distance algorithm to compare an input sequence against each vocabulary database entry, wherein user inputs are ambiguous and comprise a set of one or more (letter+probability) pairs, wherein said probability reflects a likelihood that an identified letter is what the user intended, said probability determined by said processor based upon one or more of the following: Cartesian distance from a stylus tap location to a center of each adjacent letter on a keyboard displayed on a touch screen, the frequency of the adjacent letter, and/or the distribution of taps around each letter; radial distance between a joystick tilt direction to assigned pie slices of nearby letters of the alphabet; a degree of similarity between a handwritten letter and a set of possible letter shapes/templates; and probability that a letter/grapheme is represented in a phoneme or full-word utterance processed by a speech recognition front-end.