Virtual keyboard system with automatic correction7030863Abstract There is disclosed an enhanced text entry system which uses word-level analysis to correct inaccuracies automatically in user keystroke entries on reduced-size or virtual keyboards. A method and system are defined which determine one or more alternate textual interpretations of each sequence of inputs detected within a designated auto-correcting region. The actual interaction locations for the keystrokes may occur outside the boundaries of the specific keyboard key regions associated with the actual characters of the word interpretations proposed or offered for selection, where the distance from each interaction location to each corresponding intended character may in general increase with the expected frequency of the intended word in the language or in a particular context. Likewise, in a virtual keyboard system, the keys actuated may differ from the keys actually associated with the letters of the word interpretations. Each such sequence corresponds to a complete word, and the user can easily select the intended word from among the generated interpretations. Additionally, when the system cannot identify a sufficient number of likely word interpretation candidates of the same length as the input sequence, candidates are identified whose initial letters correspond to a likely interpretation of the input sequence. Claims The invention claimed is: Description TECHNICAL FIELD OF THE INVENTION
Preferably, the selection component further comprises (c) resetting the current input sequence of interaction locations to an empty sequence upon detecting the selection by the user of one of the presented objects for output to the text display area on the output device. Preferably, (a) each of the plurality of objects in memory is further associated with one or a plurality of predefined groupings of objects; and (b) the word evaluation component, for each generated input sequence, limits the number of objects for which a matching metric is calculated by identifying one or a plurality of candidate groupings of the objects in memory, and for one or a plurality of objects associated with each of the one or a plurality of identified candidate groupings of objects, calculates a matching metric based on the calculated distance values and the frequency of use associated with each candidate object, and ranks the evaluated candidate objects based on the calculated matching metric values. This reduces the calculation required because, conversely, one or more groupings of objects are identified as containing no candidate objects for a given input sequence of interactions, such that a matching metric need not be calculated for any object in the groupings so identified. Preferably, the characters of the alphabet are arranged on the auto-correcting region in approximately a standard QWERTY layout. Most preferably, the width to height ratio of the auto-correcting region is approximately 2 to 1, or the width to height ratio of the auto-correcting region is less than 2 to 1. In one embodiment, one or a plurality of the characters arranged on the auto-correcting region are presented in a font so small as to be illegible, or "greeked." Preferably, the auto-correcting region includes one or a plurality of known locations associated with one or a plurality of punctuation characters, wherein the memory includes one or a plurality of objects in memory which include one or a plurality of the punctuation characters associated with locations in the auto-correcting region. Preferably, the objects in memory are further associated with one or a plurality of modules, wherein each module comprises a set of objects with one or a plurality of common characteristics. In one embodiment, the text entry system comprises a module selector whereby a user can determine which modules are to be evaluated by the word evaluation component to identify candidate objects. In another embodiment, the plurality of modules comprises word stem modules and suffix modules, wherein each word stem module comprises a logical organization of uninflected word stem objects, and wherein each suffix module comprises a logical organization of suffixes which can be appended to word stems to form inflected words, whereby each word stem module is associated with one or a plurality of suffix modules, whereby whenever the word evaluation component calculates a matching metric value for a given word stem in a given word stem module with respect to an initial sequence of interactions within an input sequence such that the calculated matching metric value ranks higher than a predetermined threshold, the word evaluation component evaluates the remaining interactions of the input sequence with respect to the associated suffix modules, whereby whenever the word evaluation component calculates a matching metric value for a given suffix in one of said associated suffix modules that ranks higher than a second predetermined threshold, said suffix is appended to said word stem to form a completed word corresponding to a matching metric value that is a function of said determined word stem matching metric value and said determined suffix matching metric value. Preferably, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. In addition, each character of the alphabet associated with the auto-correcting region is assigned a Cartesian coordinate and wherein the distance value calculation component calculates the distance between the interaction location and the location corresponding to a character according to standard Cartesian coordinate distance analysis. Further, each character of the alphabet associated with the auto-correcting region is assigned a Cartesian coordinate and wherein the distance value calculation component calculates the distance between the interaction location and the location corresponding to a character as the square of the standard Cartesian coordinate distance. The distance values are placed in a table. In addition, each location on the auto-correcting region is defined by a horizontal and a vertical coordinate, and wherein the distance value between a interaction location and the known coordinate location corresponding to a character comprises a horizontal and a vertical component, wherein the vertical component is adjusted by a weighting factor in calculating the distance of the interaction location from the character. The word evaluation component adds an increment value to the sum of the distance values prior to applying a weighting function according to the frequency of use associated with the candidate object. Most preferably, the increment value is a fixed value that is approximately twice the average distance between adjacent locations on the auto-correcting region corresponding to characters. The frequency of use associated with each candidate object in memory comprises the ordinal ranking of the object with respect to other objects in memory, wherein an object associated with a higher relative frequency corresponds to a numerically lower ordinal ranking. Most preferably, the frequency weighting function applied by the word evaluation component to the summed distance values for a candidate object comprises multiplying the sum of the distance values by the base 2 logarithm of the ordinal ranking of the object. Preferably, objects in memory are stored such that the objects are classified into groupings comprising objects of the same length. The word evaluation component limits the number of objects for which a matching metric is calculated by initially identifying candidate groupings of objects of the same length as the number of inputs in the input sequence. Most preferably, if fewer than a threshold number of candidate objects are evaluated to have a matching metric score better than a threshold value, the word evaluation component identifies candidate groupings of objects of progressively longer lengths and calculates the matching metric for the objects in the identified groupings until said threshold number of candidate objects are evaluated to have a matching metric score better than said threshold. Further, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object and adding an increment value, and applying to this sum a weighting function according to the frequency of use associated with the object, and wherein the increment value added to the sum of the distance values is a value that is based on the difference between the number of characters in the candidate object and the number of inputs in the current input sequence. Preferably, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. Most preferably, the frequency of use associated with each candidate object in memory comprises the ordinal ranking of the object with respect to other objects in one or a plurality of sub-groupings in memory with which said object is associated, wherein an object associated with a higher relative frequency corresponds to a numerically lower ordinal ranking. In addition, for each calculated distance value between a interaction location in the input sequence and the known coordinate location corresponding to a character within the auto-correcting region wherein said calculated distance exceeds a threshold distance value, for each object in memory in which said character occurs at a position in the sequence of the characters of said object corresponding to the position of said interaction location in said input sequence, said object is ranked by the word evaluation component as an object that is excluded from presentation to the user for selection. One or a plurality of the identified candidate groupings of the objects in memory comprise objects that are excluded from presentation to the user for selection, wherein at least one of the calculated distance values included in the calculated sum of distance values for each object in said one or identified candidate groupings of objects exceeds a threshold distance value. The auto-correcting region is separated into two or more predefined clustering regions, each of which contains the known locations of one or a plurality of characters, and wherein each objects in memory is assigned to a predefined group according to which of said two or more predefined clustering regions contain the known locations corresponding to one or a plurality of the initial characters of said object. In one embodiment, the auto-correcting region is separated into three predefined clustering regions, and wherein each object in memory is assigned to one of nine predefined groupings based which of the three predefined clustering regions contain the known locations corresponding to each of the first two characters of said object. Preferably, for each character corresponding to a known location in the auto-correcting region, a region is predefined around one or a plurality of said known locations wherein the distance between an input interaction location falling within said predefined region and the known character location within said predefined region is calculated as a distance of zero. Most preferably, the relative sizes of said predefined regions correspond to the relative frequencies of occurrence of the characters associated with the known locations within said predefined regions. The predefined region around the known location of a character corresponds to a displayed key on the virtual keyboard. Further, at least one of the locations with known coordinates in the auto-correcting region corresponds to a plurality of characters, one or a plurality of which include various diacritic marks, wherein the plurality of characters comprise variant forms of a single base character, and wherein objects in memory are stored with their correct accented characters. Preferably, the selection component presents the identified one or a plurality of candidate objects for selection by the user in a candidate object list in the text display area. Most preferably, the selection component identifies the highest ranked candidate object and presents the identified object in the candidate object list in the position nearest to the auto-correcting region. In addition, user selection of a character that is associated with an interaction outside of the auto-correcting region accepts and outputs the determined highest ranked candidate object at a text insertion point in the text display area prior to outputting the selected character at the text insertion point in the text display area. The user selection of an object for output at a text insertion point in the text display area terminates the current input sequence such that the next interaction within the auto-correcting region starts a new input sequence. In addition, the selection component detects a distinctive manner of selection that is used to select a candidate object, and wherein upon detecting that an object has been selected through said distinctive manner, the system replaces the current input sequence of actual interaction locations with an input sequence of interaction locations corresponding to the coordinate locations of the characters comprising the selected object, and wherein a next interaction in the auto-correcting region is appended to the current input sequence. Preferably, the word evaluation component determines, for each determined interaction location in each input sequence of interaction locations, the closest known location corresponding to a character, and constructs an exact typing object composed of said determined corresponding characters in the order corresponding to the input sequence of interaction locations. Most preferably, for each input sequence of interaction locations, the selection component presents said exact typing object to the user for selection. Further, when the user selects said exact typing object for output to the text display area on the output device and said exact typing object is not already included as one of the objects in memory, said exact typing object is added to the memory. Prior to displaying the exact typing object to the user for selection, the selection component compares the exact typing object to a database of offensive objects, each of which is associated with an acceptable alternative object for display, and if a match is found, replaces the exact typing object with the associated acceptable object for presentation to the user. Preferably, the selection component identifies the highest ranked candidate object and presents the identified object at the text insertion point in the text display area on the output device. Most preferably, the text entry system includes a select key region associated with an object selection function, wherein when said select key region is interactioned, the object presented at the text insertion point in the text display area on the output device is replaced with next highest ranked object of the identified one or a plurality of candidate objects. Preferably, the text entry system includes a delete key region associated with a delete function, wherein when the current input sequence includes at least one interaction and said delete key region is selected, the last input interaction from the current input sequence of interactions is deleted, without terminating the current input sequence. In another preferred embodiment, the text entry system includes an Edit Word key region associated with an Edit Word function, wherein when no current input sequence exists and said Edit Word key region is selected: (i) when the text insertion point in the text display area on the output device is contained within a previously output word, the system establishes a new current input sequence consisting of a sequence of interaction locations corresponding to the coordinate locations associated with the characters of said word, and (ii) when the text insertion point in the text display area on the output device is located between two previously output words, the system establishes a new current input sequence consisting of a sequence of interaction locations corresponding to the coordinate locations associated with the characters of the word adjacent to the text insertion point, and wherein the text entry system processes said new current input sequence and determines a corresponding ranking of new candidate objects, and wherein selection of one of the new candidate objects replaces the previously output word used to establish said new current input sequence. Preferably, as the user enters an input sequence by performing a sequence of interactions within the auto-correcting region, the processor determines the location associated with each user interaction by recording each interaction in the sequence as an indexed primary set of a fixed number of two or more regularly spaced interaction points along the path traced out by the user interaction, and by assembling two or more corresponding secondary sets of interaction points by taking, for each of the two or more possible primary index values, the sequence of interaction points having the same index value, one from each recorded indexed primary set of interaction points, and by determining with respect to each word is selected by the user for output, a minimizing primary index value that identifies the assembled secondary set of interaction points for which the calculated distance between the assembled secondary set of interaction points and the known locations corresponding to the characters of the selected word is minimized, and whereby for a next input sequence of user interactions, the distance value calculation component calculates distance values based on a sequence of interaction locations determined as the secondary set of interaction point locations assembled from said next input sequence of interactions corresponding to the determined minimizing primary index value. Most preferably, for a plurality of user input sequences, the distance value calculation component computes a running average of the distance calculations for each of the two or more assembled secondary sets corresponding to the two or more primary index values, and whereby for a next input sequence of interactions, the distance value calculation component calculates distance values based on a sequence of interaction locations determined as the secondary set of interaction point locations assembled from said next input sequence of interactions corresponding to the minimizing primary index value determined with respect to said computed running averages. Further, for each primary index value, the distance value calculation component computes a running average of the horizontal and vertical components of the offset of the coordinate location corresponding to each character of each selected word with respect to the coordinate location of each corresponding recorded indexed interaction point, and wherein in performing distance calculations for the word evaluation component, the distance value calculation component adjusts the horizontal and vertical coordinates of each recorded indexed interaction point by an amount that is a function of the average horizontal and vertical offsets computed with respect to the corresponding primary index value. Preferably, for each input interaction location, the distance value calculation component computes a running average of the horizontal and vertical components of the offset of the coordinate location corresponding to each character of each selected word with respect to the coordinates of each corresponding input interaction location, and wherein in performing distance calculations for the word evaluation component, the distance value calculation component adjusts the horizontal and vertical coordinates of each input interaction location by amounts that are functions of the computed average signed horizontal and vertical offsets. Alternatively, the processor further comprises a stroke recognition component that determines for each user interaction action within the auto-correcting region whether the point of interaction is moved less than a threshold distance from the initial interaction location prior to the finger or stylus being lifted from the touch sensitive surface. The invention further provides a text entry system for virtual keyboards whereby: (a) when the point of interaction is moved less than a threshold distance from the initial interaction location prior to being lifted, the stroke recognition component determines that the user interaction is a tap interaction, and the location determined to be associated with the user interaction is added to the current input sequence of interaction locations to be processed by the distance value calculation component, the word evaluation component, and the selection component, and; (b) when the point of interaction is moved greater than or equal to a threshold distance from the initial interaction location prior to being lifted, the stroke recognition component determines that the user interaction is one of a plurality of stroke interactions that are associated with known system functions, and classifies the stroke interaction as one of the plurality of predefined types of stroke interactions. Preferably, when a threshold number of interaction locations in the input sequence are further than a threshold maximum distance from the corresponding character in the sequence of characters comprising a given candidate object, said object is identified as no longer being a candidate object for the selection component. Alternatively, the processor further comprises a frequency promotion component for adjusting the frequency of use associated with each object in memory as a function of the number of times the object is selected by the user for output to the text display area on the output device. Moreover, the frequency of use associated with each object in memory comprises the ordinal ranking of the object with respect to other objects in memory, wherein an object associated with a higher relative frequency corresponds to a numerically lower ordinal ranking, and wherein when an object is selected for output by the user, the frequency promotion component adjusts the ordinal ranking associated with said selected object by an amount that is a function of the ordinal ranking of said object prior to said adjustment. Further, the function used by the frequency promotion component to determine the amount by which the ordinal ranking associated with a selected object is adjusted reduces said amount for objects with ordinal rankings that are associated with relatively higher frequencies of use. The frequency promotion component analyzes additional information files that are accessible to the text entry system to identify new objects contained in said files that are not included among the objects already in said memory of said text entry system, and wherein said newly identified objects are added to the objects in memory as objects that are associated with a low frequency of use. Further, the frequency of use associated with a newly identified object that is added to the objects in memory is adjusted by the frequency promotion component as a function of the number of times that the newly identified object is detected during the analysis of said additional information files. Preferably, the processor further comprises a frequency promotion component for adjusting the frequency of use associated with each object in memory as a function of the number of times the object is selected by the user for output to the text display area on the output device with respect to other objects associated with the same predefined grouping. Most preferably, when an object is selected by the user for output to the text display area on the output device, the frequency promotion component increases the value of the frequency associated with the selected object by a relatively large increment, and decreases by a relatively small decrement the frequency associated with unselected objects that are associated with the same grouping as the selected object. Alternatively, information regarding the capitalization of one or a plurality of objects is stored along with the objects in memory and wherein the selection component presents each identified object in a preferred form of capitalization according to the stored capitalization information. In another embodiment, one or a plurality of objects in memory are associated with a secondary object in memory comprising a sequence of one or a plurality of letters or symbols, and wherein when the selection component identifies one of said objects for presentation to the user based on the matching metric calculated by the word evaluation component, the selection component presents the associated secondary object for selection. The invention further provides a text entry system comprising:
Preferably, (a) each of the plurality of objects in memory is further associated with one or a plurality of predefined groupings of objects; and (b) the word evaluation component, for each generated input sequence, limits the number of objects for which a matching metric is calculated by identifying one or a plurality of candidate groupings of the objects in memory, and for one or a plurality of objects associated with each of the one or a plurality of identified candidate groupings of objects, calculates a matching metric based on the calculated distance values and the frequency of use associated with each candidate object, and ranks the evaluated candidate objects based on the calculated matching metric values. Further, the keys associated with the characters of the alphabet are arranged in the auto-correcting region in approximately a standard QWERTY layout. Preferably, when a key activation event is detected comprising the simultaneous activation of a plurality of adjacent keys in the auto-correcting region, a location corresponding to said key activation event is determined as a function of the locations of the simultaneously activated keys, and said determined location is appended to the current input sequence of the locations of the key activation events. Most preferably, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the center of the locations of the simultaneously activated keys. Further, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the weighted center of gravity of the locations of the simultaneously activated keys, wherein the weights associated with each of the keys in the auto-correcting region correspond to the relative frequencies of occurrence of the characters associated with the keys, wherein said relative frequencies are determined with respect to the frequencies of occurrence of the characters in the objects in memory. Preferably, when a key activation event is detected comprising the activation of a plurality of adjacent keys in the auto-correcting region within a predetermined threshold period of time, wherein at all times during said key activation event at least one of said plurality of adjacent keys is activated and wherein at any moment during said key activation event that any subset of said plurality of keys is simultaneously activated, said simultaneously activated subset of keys comprises keys that are contiguously adjacent, a location corresponding to said key activation event is determined as a function of the locations of the entire plurality of adjacent keys detected during said key activation event, and said determined location is appended to the current input sequence of the locations of the key activation events. Most preferably, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the center of the locations of the simultaneously activated keys. Further, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the weighted center of gravity of the locations of the simultaneously activated keys, wherein the weights associated with each of the keys in the auto-correcting region correspond to the relative frequencies of occurrence of the characters associated with the keys, wherein said relative frequencies are determined with respect to the frequencies of occurrence of the characters in the objects in memory. Preferably, the auto-correcting region includes one or a plurality of keys associated with one or a plurality of punctuation characters, wherein said memory includes one or a plurality of objects in memory which include one or a plurality of the punctuation characters associated with keys in said auto-correcting region. Alternatively, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from determined location in the input sequence to the known location of the key corresponding to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. In another embodiment, at least one of the keys in the auto-correcting region corresponds to a plurality of characters, one or a plurality of which include various diacritic marks, wherein the plurality of characters comprise variant forms of a single base character, and wherein objects in memory are stored with their correct accented characters. Preferably, the selection component presents the identified one or a plurality of candidate objects for selection by the user in a candidate object list in the text display area. Most preferably, the selection component identifies the highest ranked candidate object and presents the identified object in the candidate object list in the position nearest to the auto-correcting region. Further, activation of a key that is associated with a character, wherein the key is not included within the auto-correcting region, accepts and outputs the determined highest ranked candidate object at a text insertion point in the text display area prior to outputting the selected character at the text insertion point in the text display area. Further, the user selection of an object for output at a text insertion point in the text display area terminates the current input sequence such that the next key activation event within the auto-correcting region starts a new input sequence. A presently preferred embodiment of the invention provides a text entry system having user input device comprising a virtual keyboard including an auto-correcting 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 auto-correcting region, wherein each time a user interacts with the user input device within the auto-correcting region, a location associated with the user interaction is determined and the determined interaction location is added to a current input sequence of interaction locations; a memory containing a plurality of objects, wherein each object is a string of one or a plurality of characters or symbols forming a word or a part of a word, wherein each object is further associated with a frequency of use; an output device; and a processor coupled to the user input device, memory, and output device, said processor comprising: a distance value calculation component which, for each determined interaction location in the input sequence of interactions, calculates a set of distance values between the interaction locations and the known coordinate locations corresponding to one or a plurality of characters within the auto-correcting region; a word evaluation component which, for each generated input sequence, identifies one or a plurality of candidate objects in memory, and for each of the one or a plurality of identified candidate objects, evaluates each identified candidate object by calculating a matching metric based on the calculated distance values and the frequency of use associated with the object, and ranks the evaluated candidate objects based on the calculated matching metric values; and a selection component for identifying one or a plurality of candidate objects according to their evaluated ranking, presenting the identified objects to the user, and enabling the user to select one of the presented objects for output to the output device. The invention also provides such system wherein each of the plurality of objects in memory is further associated with one or a plurality of predefined groupings of objects; and the word evaluation component, for each generated input sequence, limits the number of objects for which a matching metric is calculated by identifying one or a plurality of candidate groupings of the objects in memory, and for one or a plurality of objects associated with each of the one or a plurality of identified candidate groupings of objects, calculates a matching metric based on the calculated distance values and the frequency of use associated with each candidate object, and ranks the evaluated candidate objects based on the calculated matching metric values. The invention also provides such system wherein the characters of the alphabet are arranged on the auto-correcting region in approximately a standard QWERTY layout. In such system the width to height ratio of the auto-correcting region may be approximately 2 to 1. Alternatively, the width to height ratio of the auto-correcting region is less than 2 to 1. In a further embodiment, one or a plurality of the characters arranged on the auto-correcting region are presented in a small illegible font or are represented by small shapes. The invention also provide such system wherein said auto-correcting region includes one or a plurality of known locations associated with one or a plurality of punctuation characters, wherein said memory includes one or a plurality of objects in memory which include one or a plurality of the punctuation characters associated with locations in said auto-correcting region. The invention also provides such system wherein objects in memory are further associated with one or a plurality of modules, wherein each module comprises a set of objects with one or a plurality of common characteristics. In further embodiments, the text entry system comprises a module selector whereby a user can determine which modules are to be evaluated by the word evaluation component to identify candidate objects. In further embodiments, the plurality of modules comprises word stem modules and suffix modules, wherein each word stem module comprises a logical organization of uninflected word stem objects, and wherein each suffix module comprises a logical organization of suffixes which can be appended to word stems to form inflected words; wherein each word stem module is associated with one or a plurality of suffix modules; wherein whenever the word evaluation component calculates a matching metric value for a given word stem in a given word stem module with respect to an initial sequence of interactions within an input sequence such that the calculated matching metric value ranks higher than a predetermined threshold, the word evaluation component evaluates the remaining interactions of the input sequence with respect to the associated suffix modules; and wherein whenever the word evaluation component calculates a matching metric value for a given suffix in one of said associated suffix modules that ranks higher than a second predetermined threshold, said suffix is appended to said word stem to form a completed word corresponding to a matching metric value that is a function of said determined word stem matching metric value and said determined suffix matching metric value. The invention also provide such system wherein the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. In further embodiments, each character of the alphabet associated with the auto-correcting region is assigned a Cartesian coordinate and wherein the distance value calculation component calculates the distance between the interaction location and the location corresponding to a character according to standard Cartesian coordinate distance analysis. In further embodiments, each character of the alphabet associated with the auto-correcting region is assigned a Cartesian coordinate and wherein the distance value calculation component calculates the distance between the interaction location and the location corresponding to a character as the square of the standard Cartesian coordinate distance. In further embodiment, the distance values are placed in a table. In further embodiments, each location on the auto-correcting region is defined by a horizontal and a vertical coordinate, and wherein the distance value between a interaction location and the known coordinate location corresponding to a character comprises a horizontal and a vertical component, wherein the vertical component is adjusted by a weighting factor in calculating the distance of the interaction location from the character. In further embodiments, the frequency of use associated with each candidate object in memory comprises the ordinal ranking of the object with respect to other objects in memory, wherein an object associated with a higher relative frequency corresponds to a numerically lower ordinal ranking. In further embodiments, the frequency weighting function applied by the word evaluation component to the summed distance values for a candidate object comprises multiplying the sum of the distance values by the base 2 logarithm of the ordinal ranking of the object. In further embodiments, the word evaluation component adds an increment value to the sum of the distance values prior to applying a weighting function according to the frequency of use associated with the candidate object. In further embodiments, the increment value is a fixed value that is approximately twice the average distance between adjacent locations on the auto-correcting region corresponding to characters. In further embodiments, objects in memory are stored such that objects are classified into groupings comprising objects of the same length. In further embodiments, the word evaluation component limits the number of objects for which a matching metric is calculated by initially identifying candidate groupings of objects of the same length as the number of inputs in the input sequence. In further embodiments, if fewer than a threshold number of candidate objects are evaluated to have a matching metric score better than a threshold value, the word evaluation component identifies candidate groupings of objects of progressively longer lengths and calculates the matching metric for the objects in the identified groupings until said threshold number of candidate objects are evaluated to have a matching metric score better than said threshold. In further embodiments, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object and adding an increment value, and applying to this sum a weighting function according to the frequency of use associated with the object, and wherein the increment value added to the sum of the distance values is a value that is based on the difference between the number of characters in the candidate object and the number of inputs in the current input sequence. In further embodiments, the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from each interaction location in the input sequence to the location assigned to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. In further embodiments, the frequency of use associated with each candidate object in memory comprises the ordinal ranking of the object with respect to other objects in one or a plurality of sub-groupings in memory with which said object is associated, wherein an object associated with a higher relative frequency corresponds to a numerically lower ordinal ranking. In further embodiments, for each calculated distance value between a interaction location in the input sequence and the known coordinate location corresponding to a character within the auto-correcting region wherein said calculated distance exceeds a threshold distance value, for each object in memory in which said character occurs at a position in the sequence of the characters of said object corresponding to the position of said interaction location in said input sequence, said object is ranked by the word evaluation component as an object that is excluded from presentation to the user for selection. In further embodiments, one or a plurality of the identified candidate groupings of the objects in memory comprise objects that are excluded from presentation to the user for selection, wherein at least one of the calculated distance values included in the calculated sum of distance values for each object in said one or identified candidate groupings of objects exceeds a threshold distance value. In further embodiments, the auto-correcting region is separated into two or more predefined clustering regions, each of which contains the known locations of one or a plurality of characters, and wherein each objects in memory is assigned to a predefined group according to which of said two or more predefined clustering regions contain the known locations corresponding to one or a plurality of the initial characters of said object. In further embodiments, the auto-correcting region is separated into three predefined clustering regions, and wherein each object in memory is assigned to one of nine predefined groupings based which of the three predefined clustering regions contain the known locations corresponding to each of the first two characters of said object. The invention also provides such system wherein for each character corresponding to a known location in the auto-correcting region, a region is predefined around one or a plurality of said known locations wherein the distance between an input interaction location falling within said predefined region and the known character location within said predefined region is calculated as a distance of zero. In further embodiments, the relative sizes of said predefined regions correspond to the relative frequencies of occurrence of the characters associated with the known locations within said predefined regions. In further embodiments, said predefined region around the known location of a character corresponds to a displayed key on the virtual keyboard. The invention also provides such system wherein at least one of the locations with known coordinates in the auto-correcting region corresponds to a plurality of characters, one or a plurality of which include various diacritic marks, wherein the plurality of characters comprise variant forms of a single base character, and wherein objects in memory are stored with their correct accented characters. The invention also provides such system wherein the selection component presents the identified one or a plurality of candidate objects for selection by the user in a candidate object list. The invention also provides such system wherein the selection component identifies the highest ranked candidate object and presents the identified object in the candidate object list in the position nearest to the auto-correcting region. The invention also provides such system wherein a user selection of a character that is associated with a interaction outside of the auto-correcting region accepts and outputs the determined highest ranked candidate object prior to outputting the selected character. The invention also provides such system wherein user selection of an object for output terminates the current input sequence such that the next interaction within the auto-correcting region starts a new input sequence. The invention also provides such system wherein the selection component detects a distinctive manner of selection that is used to select a candidate object, and wherein upon detecting that an object has been selected through said distinctive manner, the system replaces the current input sequence of actual interaction locations with an input sequence of interaction locations corresponding to the coordinate locations of the characters comprising the selected object, and wherein a next interaction in the auto-correcting region is appended to the current input sequence. The invention also provides system wherein the word evaluation component determines, for each determined interaction location in each input sequence of interaction locations, the closest known location corresponding to a character, and constructs an exact typing object composed of said determined corresponding characters in the order corresponding to the input sequence of interaction locations. In further embodiments, for each input sequence of interaction locations, the selection component presents said exact typing object to the user for selection. In further embodiments, when the user selects said exact typing object for output on the output device and said exact typing object is not already included as one of the objects in memory, said exact typing object is added to the memory. In further embodiments, wherein prior to displaying said exact typing object to the user for selection, the selection component compares the exact typing object to a database of offensive objects, each of which is associated with an acceptable alternative object for display, and if a match is found, replaces the exact typing object with the associated acceptable object for presentation to the user. The invention also provides such system wherein the selection component identifies the highest ranked candidate object and presents the identified object on the output device. The invention also provides such system wherein the text entry system includes a select key region associated with an object selection function, wherein when said select key region is interacted with, the object presented on the output device is replaced with next highest ranked object of the identified one or a plurality of candidate objects. The invention also provides such system wherein the text entry system includes a delete key region associated with a delete function, wherein when the current input sequence includes at least one interaction and said delete key region is interacted with, the last input interaction from the current input sequence of interactions is deleted, without terminating the current input sequence. The invention also provides such system wherein the text entry system includes an Edit Word key region associated with an Edit Word function, wherein: when no current input sequence exists and said Edit Word key region is interacted with; and when the text insertion point on the output device is contained within a previously output word; the system establishes a new current input sequence consisting of a sequence of interaction locations corresponding to the coordinate locations associated with the characters of said word; and when the text insertion point in the text display area on the output device is located between two previously output words; the system establishes a new current input sequence consisting of a sequence of interaction locations corresponding to the coordinate locations associated with the characters of the word adjacent to the text insertion point; and wherein the text entry system processes said new current input sequence and determines a corresponding ranking of new candidate objects; and wherein selection of one of the new candidate objects replaces the previously output word used to establish said new current input sequence. The invention also provides such system wherein for each input interaction location, the distance value calculation component computes a running average of the horizontal and vertical components of the offset of the coordinate location corresponding to each character of each selected word with respect to the coordinates of each corresponding input interaction location, and wherein in performing distance calculations for the word evaluation component, the distance value calculation component adjusts the horizontal and vertical coordinates of each input interaction location by amounts that are functions of the computed average signed horizontal and vertical offsets. The invention also provides such system wherein the processor further comprises: a stroke recognition component that determines for each user interaction action within the auto-correcting region whether the point of interaction is moved less than a threshold distance from the initial interaction location prior to being lifted from the virtual keyboard; and whereby when the point of interaction is moved less than a threshold distance from the initial interaction location prior to being lifted from the virtual keyboard, the stroke recognition component determines that the user interaction is a tap interaction, and the location determined to be associated with the user interaction is added to the current input sequence of interaction locations to be processed by the distance value calculation component, the word evaluation component, and the selection component; and whereby when the point of interaction is moved greater than or equal to a threshold distance from the initial interaction location prior to being lifted from the virtual keyboard, the stroke recognition component determines that the user interaction is one of a plurality of stroke interactions that are associated with known system functions, and classifies the stroke interaction as one of the plurality of predefined types of stroke interactions. The invention also provides such system wherein when a threshold number of interaction locations in the input sequence are further than a threshold maximum distance from the corresponding character in the sequence of characters comprising a given candidate object, said object is identified as no longer being a candidate object for the selection component. The invention also provides such system wherein information regarding the capitalization of one or a plurality of objects is stored along with the objects in memory; and wherein the selection component presents each identified object in a preferred form of capitalization according to the stored capitalization information. The invention also provides such system wherein one or a plurality of objects in memory are associated with a secondary object in memory comprising a sequence of one or a plurality of letters or symbols, and wherein when the selection component identifies one of said objects for presentation to the user based on the matching metric calculated by the word evaluation component, the selection component presents the associated secondary object for selection. The invention also provides such system wherein said virtual keyboard comprises: any of a laser-projection keyboard, a muscle sensing keyboard, a fabric keyboard, a gesture detection device, and a device for tracking eye movement. The invention also provides such system wherein said user input device and said output device are integrated. The invention also provides such system further comprising: a linguistic model comprising any of: frequency of occurrence of a linguistic object in formal or conversational written text; frequency of occurrence of a linguistic object when following a preceding linguistic object or linguistic objects; proper or common grammar of the surrounding sentence; application context of current linguistic object entry; and frequency of use or repeated use of the linguistic object by the user or within an application program. The invention also provides such system wherein user interaction comprises: a scrolling gesture across or adjacent to the auto-correcting keyboard region that causes a list to scroll and changes a candidate word that is selected for output. The invention also provides such system wherein user interaction comprises any of: a gesture and other movement expressive of user intent. A further embodiment of the invention provides text entry system having: a user input device comprising a virtual keyboard including an auto-correcting region comprising a plurality of keys, each corresponding to a character of an alphabet and each at a known coordinate location, wherein each time a user activates one or a plurality of adjacent keys in the auto-correcting region within a predetermined threshold period of time to generate a key activation event, a determined location corresponding to the key activation event is appended to a current input sequence of the determined locations of the key activation events; a memory containing a plurality of objects, wherein each object is a string of one or a plurality of characters forming a word or a part of a word, wherein each object is further associated with a frequency of use; an output device; and a processor coupled to the user input device, memory, and output device, said processor comprising: a distance value calculation component which, for each generated key activation event location in the input sequence of key activation events, calculates a set of distance values between the key activation event location and the known coordinate locations corresponding to one or a plurality of keys within the auto-correcting region; a word evaluation component which, for each generated input sequence, identifies one or a plurality of candidate objects in memory, and for each of the one or a plurality of identified candidate objects, evaluates each identified candidate object by calculating a matching metric based on the calculated distance values and the frequency of use associated with the object, and ranks the evaluated candidate objects based on the calculated matching metric values; and a selection component for identifying one or a plurality of candidate objects according to their evaluated ranking, presenting the identified objects to the user, and enabling the user to select one of the presented objects for output to the output device. The invention also provides such system wherein: each of the plurality of objects in memory is further associated with one or a plurality of predefined groupings of objects; and the word evaluation component, for each generated input sequence, limits the number of objects for which a matching metric is calculated by identifying one or a plurality of candidate groupings of the objects in memory, and for one or a plurality of objects associated with each of the one or a plurality of identified candidate groupings of objects, calculates a matching metric based on the calculated distance values and the frequency of use associated with each candidate object, and ranks the evaluated candidate objects based on the calculated matching metric values. The invention also provides such system wherein the keys associated with the characters of the alphabet are arranged in the auto-correcting region in approximately a standard QWERTY layout. The invention also provides such system wherein when a key activation event is detected comprising the simultaneous activation of a plurality of adjacent keys in the auto-correcting region, a location corresponding to said key activation event is determined as a function of the locations of the simultaneously activated keys, and said determined location is appended to the current input sequence of the locations of the key activation events. In further embodiments, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the center of the locations of the simultaneously activated keys. In further embodiments, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the weighted center of gravity of the locations of the simultaneously activated keys, wherein the weights associated with each of the keys in the auto-correcting region correspond to the relative frequencies of occurrence of the characters associated with the keys, wherein said relative frequencies are determined with respect to the frequencies of occurrence of the characters in the objects in memory. In further embodiments, when a key activation event is detected comprising the activation of a plurality of adjacent keys in the auto-correcting region within a predetermined threshold period of time, wherein at all times during said key activation event at least one of said plurality of adjacent keys is activated and wherein at any moment during said key activation event that any subset of said plurality of keys is simultaneously activated, said simultaneously activated subset of keys comprises keys that are contiguously adjacent, a location corresponding to said key activation event is determined as a function of the locations of the entire plurality of adjacent keys detected during said key activation event, and said determined location is appended to the current input sequence of the locations of the key activation events. In further embodiments, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the center of the locations of the simultaneously activated keys. In further embodiments, the function used to determine the location of said key activation event comprises the computation of the location corresponding to the weighted center of gravity of the locations of the simultaneously activated keys, wherein the weights associated with each of the keys in the auto-correcting region correspond to the relative frequencies of occurrence of the characters associated with the keys, wherein said relative frequencies are determined with respect to the frequencies of occurrence of the characters in the objects in memory. The invention also provides such system wherein said auto-correcting region comprises one or a plurality of keys associated with one or a plurality of punctuation characters, wherein said memory includes one or a plurality of objects in memory which include one or a plurality of the punctuation characters associated with keys in said auto-correcting region. The invention also provides such system wherein the word evaluation component calculates the matching metric for each candidate object by summing the distance values calculated from determined location in the input sequence to the known location of the key corresponding to the character in the corresponding position of the candidate object, and applying a weighting function according to the frequency of use associated with the object. The invention also provides such system wherein at least one of the keys in the auto-correcting region corresponds to a plurality of characters, one or a plurality of which include various diacritic marks, wherein the plurality of characters comprise variant forms of a single base character, and wherein objects in memory are stored with their correct accented characters. The invention also provides such system wherein the selection component presents the identified one or a plurality of candidate objects for selection by the user in a candidate object list. In further embodiments, the selection component identifies the highest ranked candidate object and presents the identified object in the candidate object list in the position nearest to the auto-correcting region. In further embodiments, activation of a key that is associated with a character, wherein said key is not included within the auto-correcting region, accepts and outputs the determined highest ranked candidate object prior to outputting the selected character. In further embodiments, user selection of an object for output area terminates the current input sequence such that the next key activation event within the auto-correcting region starts a new input sequence. The invention also provides such system wherein said virtual keyboard comprises any of a laser-projection keyboard, a muscle sensing keyboard, a fabric keyboard, a gesture detection device, and a device for tracking eye movement. The invention also provides such system wherein said user input device and said output device are integrated. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1A is a schematic view of a preferred embodiment of a portable computer incorporating a reduced keyboard system of the invention which automatically corrects input keystrokes; FIG. 1B is the same schematic view as that of FIG. 1A showing an embodiment of a word choice list that is displayed after the user has entered a sequence of keystrokes within the auto-correcting region; FIG. 1C is the same schematic view as that of FIG. 1B showing a non-screen embodiment of he invention; FIG. 2 is a hardware block diagram of the reduced keyboard system of FIGS. 1A and 1B; FIG. 3 is a schematic view of a preferred embodiment of an auto-correcting region of the reduced keyboard system of the invention which automatically corrects input keystrokes, showing its division into three clustering regions and three example interaction points; FIGS. 4A through 4K show a flow chart of a preferred embodiment of software to determine the intended text to be generated in response to an input sequence of keystrokes; FIGS. 5A through 5D are schematic views showing a sequence of character inputs as an illustrative example of entering a word on a preferred embodiment of a portable computer incorporating a reduced keyboard system of the invention; FIG. 5E is the same schematic viewing as that of FIG. 5A showing a non-screen embodiment of the invention; FIG. 6 is a schematic view showing a laser-projection keyboard for use in connection with the invention herein disclosed; FIG. 7 is a schematic view showing a muscle-sensing keyboard for use in connection with the invention herein disclosed; and FIG. 8 is a schematic view showing an eye-tracking keyboard for use in connection with the invention herein disclosed. DETAILED DESCRIPTION OF THE INVENTION Because user keystroke entries are presumed to be possibly inaccurate, there is some ambiguity as to how a particular sequence of keystrokes should be interpreted to generate the sequence of characters that the user intended to type. The invention provides a process and system, i.e. an apparatus or device, wherein the user is presented with one or more alternate interpretations of each keystroke sequence corresponding to a word such that the user can easily select the desired interpretation, and wherein no special action need be taken to select the interpretation deemed most likely. This approach enables the system to use the information contained in the entire sequence of keystrokes corresponding to a word in resolving what the user's likely intention was for each character of the sequence. The method of the present invention has two very significant advantages over prior systems, such as that disclosed by U.S. Pat. No. 5,748,512. One is that the inventive system uses information regarding both preceding and succeeding keystrokes in determining the intended character for each keystroke, together with the length of the word and a database that includes information as to the relative frequencies of potentially matching words. This is far more information than can be used by prior systems, and greatly increases the performance of the system. The second advantage is that the user need only interact and respond to predictions by the system at word boundaries, after all the characters of each word have been entered, rather than having to examine, and accept or reject each character generated by the system immediately following each keystroke. This greatly enhances the usability of the system because the user is thus able to focus much more on the entry of text on the keyboard, without needing to divert his attention constantly to the display following each keystroke. Another advantage is the system also accommodates punctuation characters, such as a hyphen or apostrophe, that are commonly embedded in words, such as hyphenated compounds and contractions in English. Such embedded punctuation characters can be associated with one or more keys or character locations included among those associated with alphabetic characters. Definitions "Keyboard" shall mean any input device having defined areas including, but not limited to, an input device having a defined area containing a plurality of defined locations associated with one or more characters and, in particular but not limited to, virtual keyboards, which shall include by way of example, but not limitation, laser-projection keyboards, muscle-sensing keyboards, and fabric keyboards. "Auto-correcting region" refers to that region of the keyboard having the inventive auto-correcting process and features applied. "Object" shall mean a linguistic object, such as a string of one or more characters or symbols forming a word, word stem, prefix or suffix, phrase, abbreviation, chat slang, emoticon, user ID, URL, or ideographic character sequence. "Word evaluation component" refers to the part of the system that determines which objects to present in which order to the user, encompassing all linguistic objects as they are defined above and is not limited only to complete words. "Word stem" shall mean a "root word" or "component," with or without prefixes prepended. For example, the word "interestingly" consists of the root word "interest" to which the suffix "ingly" has been appended. "Alphabet" shall mean letters, accented or unaccented, or other characters or symbols that represent a phonetic or sub-word component, including Japanese kana, Korean jamos, and Chinese zhuyin, or other linguistic and non-linguistic characters such as digits and punctuation that are contained in abbreviations, chat slang, emoticons, user IDs, or URLs. "Frequency of use" shall mean static or dynamic frequency information in accordance with a linguistic model, which may include one or more of: frequency of occurrence of a word in formal or conversational written text; frequency of occurrence of a word when following a preceding word or words; proper or common grammar of the surrounding sentence; application context of current word entry; and recency of use or repeated use of the word by the user or within an application program. "Module" is a logical organization of objects based upon characteristics of the objects. For example, (1) words of the French language versus words of the English language are arranged in different modules, (2) a verb stem module contains verb stems to each of which one or more possible suffixes may be appended, wherein the suffixes are contained in one or more suffix modules associated with the verb stem module, wherein the suffixes from the suffix modules can be appended to a verb stem in the verb stem module to form a properly inflected word. Similarly, a module may modify or generate objects based on linguistic patterns, such as placing a diacritic mark on a particular syllable, or generate objects based on any other algorithm for interpretation of the current input sequence and surrounding context. An "interaction action" comprises the entirety of a user action which results in an interaction with the keyboard, starting from the first point and moment of interaction, and including any additional contiguous points of interaction that are detected up to the moment at which interaction with the keyboard is terminated. Examples of interactions include, but are not limited to, physically or proximately touching a surface or spatial location with a stylus or finger and moving the stylus or finger to a greater or lesser degree prior to lifting the stylus or finger from the surface or spatial location. An "interaction location" is the location determined to correspond to a user action which results in an interaction with the keyboard. Methods of determining an interaction location include, but are not limited to, detecting the location at or near where the initial or final interaction was made by the user, or detecting a user action whereby the interaction location is determined corresponding to the location of the user action within a displayed keyboard region at the time of such user interaction. A "distance value calculation component" calculates a set of distance values between a interaction location and the known coordinate locations corresponding to one or more characters within the auto-correcting region of the keyboard. The method used to calculate the distance between two locations includes, but is not limited to, assigning Cartesian coordinates to each location and calculating the distance between two locations according to standard Cartesian coordinate distance analysis, assigning Cartesian coordinates to each location and calculating the distance between two locations as the square of the standard Cartesian coordinate distance, assigning Cartesian coordinates to each location and calculating the distance between two locations according to Cartesian coordinate distance analysis where the vertical component is adjusted by a weighting factor, and applying the foregoing techniques in three-dimensional space. A "matching metric" is a score calculated for an object with respect to an input sequence of interaction locations as a means to estimate how likely it is that the object corresponds to the user's intention in performing the input sequence of interactions. For example, a matching metric can be calculated in one embodiment as the sum of the squares of the distances from each interaction location in the entry sequence to the location assigned to the character in the corresponding position of a given candidate object, and then multiplying the sum of the squared distances by a frequency adjustment factor, which in one preferred embodiment is calculated as the base 2 logarithm of the ordinal position of the word with respect to other potential candidate objects, where objects associated with higher relative frequencies correspond to lower ordinal positions, i.e. the most frequent object is at position "1." Thus, in this embodiment, the lower the numeric value of the calculated matching metric, the more likely a given object is deemed to correspond to the user's intention in generating a sequence of interaction points. An "evaluated ranking" is the relative prioritization of a set of candidate objects according the likelihood that each of the objects corresponds to the user's intention in generating a sequence of interaction points, where this likelihood is determined according to the matching metric calculated for the objects. A "key activation event" includes but is not limited to an event that comprises the entirety of the activated keys detected during the course of a user action which results in the activation of one or more adjacent keys of a virtual keyboard, starting from the first depressed key and including the time at which it was depressed, and including any additional keys that are adjacent to the first depressed key and that are simultaneously depressed, detected up to the moment at which neither the first key nor any simultaneously depressed adjacent key is depressed. With regard to FIG. 1A, a reduced auto-correcting keyboard system 100 formed in accordance with the invention is depicted incorporated in a palmtop portable computer 102. Portable computer 102 contains a reduced keyboard 105 implemented on a touch screen display 103, which is used to generate text to be output to text display region 104. For purposes of this application, the term "keyboard" is defined broadly to include any input device having defined areas for keys. Keyboard 105 has an auto-correcting region 106 wherein the 26 letters of the English alphabet plus an apostrophe are displayed in approximately the standard QWERTY arrangement. In this preferred embodiment, it is relevant to note that the aspect ratio of the keyboard 106, i.e. the ratio of its width to its height, is less than 2:1; whereas for a standard computer keyboard or typewriter this ratio is approximately 4:1. This aspect ratio renders the keyboard 106 easier to use in that the less elongated shape tends to minimize the distance the stylus must be moved between letters at opposite ends of the keyboard, while enhancing the system's ability to distinguish between letters in adjacent rows by increasing their relative separation. This makes it easier for the user to interact with the keyboard in a location that is relatively close to the intended letter in the vertical dimension. Consequently, in a preferred embodiment, the distance of an interaction point from a letter is calculated using a method that increases the relative weight of the vertical component of the distance with respect to the horizontal component. The keyboard may be of any size, very small or very large. In the case of a virtual keyboard as taught herein, the size of the keyboard is literally a function of user preference and available surface area. For a more conventional keyboard, an implementation using a space for the auto-correcting keyboard as small as 1 cm by 0.5 cm that includes all 26 letters of the English alphabet has been found to be quite usable with a small plastic stylus. When embodied as a keyboard of this size, a well-known key arrangement such as the standard QWERTY layout may be used. With this key arrangement it is not necessary to include legible displayed characters, because the relative locations of each character in the defined keyboard space are well known to users familiar with such a standard layout. Alternatively, a very small label such as a dot may be displayed at each character location to aid the user. In accordance with another aspect of the invention, the internal, logical representation of the characters need not mirror the physical arrangement represented by the labels on the actual characters in the auto-correcting keyboard. For example, in a database constructed to represent a French vocabulary module, the accented characters  and À may also be associated with the unaccented character A that appears at a character location in a virtual keyboard. The word entries in the French vocabulary module include the necessary information to determine whether a given word is spelled with an accented or unaccented character so that the correctly spelled form can be automatically generated based on an input interaction point sufficiently near the key or character location associated with the unaccented character. This is a significant advantage for languages, such as French, that often use accented characters since no special typing techniques, additional keys, or additional keystrokes are required to type words using their correct spellings including appropriate accents. In accordance with another aspect of the invention, the displayed keyboard may appear in multiple states for entering sub-word components such as syllables. For Pinyin, for example, the keyboard may switch between displaying valid initials z/zh/c/ch/b/p/m/f etc., and valid finals o/on/ong/a/an/ang/uong/uang/uan/uon, etc. In each of these cases, the vocabulary modules will contain the necessary information to support dynamic keyboard behavior. The keyboard layout of FIG. 1A contains six additional keys associated with the execution of specific functions or the generation of specific characters. These keys include a Shift key 108, a Space key 110, a BackSpace key 112, an Edit Word key 114, a Symbols Mode key 116, a Return (or "Enter") key 118, an Alternate Keyboard Mode key 120, and a Numeric Mode key 122. The function of these keys is discussed in conjunction with FIG. 1B. Text is generated using the keyboard system via keystrokes on the auto-correcting keyboard 106. As a user enters a keystroke sequence using the keyboard, text is displayed on the computer display 103. Two overlapping regions are defined on the display each of which display information to the user. An upper output text region 104 displays the text entered by the user and serves as a buffer for text input and editing. A word choice list region 150, which in a preferred embodiment shown in FIG. 1B is super-imposed on top of the text region 104, provides a list of words and other interpretations corresponding to the keystroke sequence entered by a user. The word choice list region 150 aids the user in correcting inaccuracies in the entered keystrokes. In another embodiment, the system may be implemented on a device with limited display space, and display only the Default or most likely word object at the insertion point 107 in the text being generated. In another preferred embodiment, the keyboard of the invention is implemented using a virtual keyboard device. Examples of such devices include the laser-projection keyboard offered by companies such as Virtual Keyboard (see http://www.vkb.co.il/) and Canesta (see http://www.canesta.com/), muscle-sensing keyboards, such as the Senseboard® virtual keyboard (see, for example, http://www.senseboard.com/), and the fabric keyboard (see, for example, http://www.electrotextiles.com/). Unfortunately, in virtual keyboards a single inaccurate or erroneous key activation may not only consist of activating a key other than the one intended, but also may consist of simultaneous or closely sequential activation of two or more adjacent keys, wherein the activated keys may or may not include among them the intended key. Thus, in accordance with another aspect of the invention, a sequence of keystrokes on the auto-correcting keyboard is filtered through a window of both time and space, in that a single intended keystroke may activate more than one adjacent key. An example is when a user depresses 2, 3 or 4 keys when the user's finger is not properly aligned with the intended key or any single specific key. Thus, following each received keystroke, the keystroke is not processed until after the system waits for a very brief timeout threshold, or until a keystroke is received on a non-adjacent key. If the next keystroke occurs on an adjacent key, or if multiple keystrokes occur on adjacent keys, before the expiration of the timeout threshold, the detected keys are regarded as a single keystroke event. In such cases, a virtual point of interaction is calculated at the center of the set of simultaneously activated keys. The distances from this calculated virtual interaction point and the known character locations are calculated by interpolating to a logical coordinate frame with a finer resolution than that of the virtual keys. In another embodiment of the invention, keystrokes on the auto-correcting keyboard are not matched to characters in isolation, but rather entire sequences of keystrokes corresponding to completed words are matched against a lexicon of candidate words that includes frequency of use information. In this way, the system is often able to compensate correctly for occasional keystroke errors of a larger than average magnitude, or even multiple errors of a relatively larger magnitude when the intended word is of high relative frequency. This word-level analysis of keystroke input sequences are a key factor in enabling the inventive system to accommodate user keystroke errors flexibly. The word-level analysis of keystroke sequences enables the system to generate punctuation characters, such as a hyphen or apostrophe, that are commonly embedded in words, such as hyphenated compounds and contractions in English. Such embedded punctuation characters can be associated with one or more keys or character locations included in the auto-correcting keyboard among those associated with alphabetic characters. When more than one punctuation character is associated with a single key, the specific punctuation character intended can be disambiguated based on the information included in the lexicon. Thus, for example, if a word in the lexicon includes an apostrophe in a position corresponding to a key interaction in the region of an ambiguous punctuation key, the matching algorithm automatically identifies the associated word and disambiguates the keystroke as an apostrophe. Simultaneously, the system can separately analyze the keystroke sequences preceding and following the key interaction in the region of the punctuation key to determine the most likely matching words in the lexicon and calculate the likelihood that a hyphenated compound was intended. In some embodiments, punctuation, other symbols, numbers or other characters not commonly used are relegated to a separate symbol selection scheme, preferably through presentation in a series of temporarily displayed tables. Such Symbol Tables are preferably accessed through a function key or entry element assigned adjacent to the auto-correcting region. In the case of a virtual keyboard, these other symbols, numbers and uncommon characters can be accommodated through additional keys not included in the auto-correcting keyboard. In other embodiments, a diacritic function is associated with a location in the auto-correcting region or with a defined key. When selected, it adds an appropriate diacritic mark, such as an accent aigu in French or dakuten in Japanese, to the preceding or following character in the input sequence. In accordance with another aspect of the invention, candidate words that match the input sequence are presented to the user in a word selection list on the display as each input is received. In accordance with another aspect of the invention, the word interpretations are presented in the order determined by the matching metric calculated for each candidate word, such that the words deemed to be most likely according to the matching metric appear first in the list. Selecting one of the proposed interpretations of the input sequence terminates an input sequence, so that the next keystroke inside the auto-correcting region starts a new input sequence. In accordance with yet another aspect of the invention, only a single word interpretation appears on the display, preferably at the insertion point for the text being generated. The word interpretation displayed is that deemed to be most likely according to the matching metric. By repeatedly activating a specially designated selection input, the user may replace the displayed word with alternate interpretations presented in the order determined by the matching metric. An input sequence is also terminated following one or more activations of the designated selection input, effectively selecting exactly one of the proposed interpretations of the sequence for actual output by the system, so that the next keystroke inside the auto-correcting region starts a new input sequence. In an alternative embodiment, the designated selection input changes the highlighting of a word in the displayed word choice list, indicating the user's current selection of a word to be output or extended with a subsequent action. In accordance with yet another aspect of the invention, a designated selection input selects one syllable or word for correction or reentry from a multiple-syllable sequence or multiple-word phrase that has been entered or predicted by word completion. In accordance with yet another aspect of the invention, the selection input action may be a scrolling gesture across or adjacent to the auto-correcting keyboard region that causes the list to scroll and changes the candidate word that is selected for output. In accordance with another aspect of the invention, for each input sequence of interaction points, a word is constructed by identifying the character nearest each interaction point and composing a word consisting of the sequence of identified characters. This "Exact Type" word is then presented as a word choice in the word selection list. This word may then be selected in the usual manner by, for example, touching it in the word selection list. Exact Type entries can be edited by, for example, pressing a backspace key to delete one character at a time from the end of the word. Once the user selects the Exact Type word, it is automatically accepted for output and is added to the information being composed. When so selected, the Exact Type string may be added as a candidate for inclusion into the lexicon of words so that in the future it can be typed using the auto-correcting keyboard without needing to precisely interaction each letter of the word as is necessary in first entering an Exact Type entry. In accordance with another aspect of the invention, an indication such as a small pop-up window magnifying the character associated with the location under a finger as it is dragged across the auto-correcting region gives the user visual feedback on which exact-tap letter is selected. The indication may be offered during a temporary state triggered by, for example, interacting with an input location for more than half a second. In accordance with another aspect of the invention, the temporary state may also change the distance or speed necessary to move from one Exact Type character to the next, in an inverse manner to that of mouse acceleration on a desktop PC, to ease the selection of a particular character. FIG. 1B shows a preferred embodiment of a word choice list 150 that is displayed after the user has entered a sequence of keystrokes within the auto-correcting region 106. The word choice list includes a Cancel key 152, wherein interaction with the Cancel key causes the system to discard the current input sequence, clearing the word choice list and causing the system to restore the display of any text or graphics obscured by the appearance of the word choice list. In the preferred embodiment, the non-onscreen virtual keyboard equivalent is a Cancel/Escape key near the auto-correcting region. The "Exact Type" word 154 shows the sequence of letters closest to the actual interaction points of the input sequence, whether or not these correspond to any word in any vocabulary module. In the example shown in FIG. 1B, the Exact Type word "rwzt" does not correspond to an English word. In a preferred embodiment, selecting the Exact Type word for output results in the automatic addition of that word to the appropriate vocabulary module if it is not already included. The Default word 160, "text" in the example of FIG. 1B, is the word from the vocabulary modules determined to have the lowest value of the matching metric, i.e. the more likely the word corresponds to the user's intention, and in a preferred embodiment, is shown at the bottom of the word choice list, nearest to the auto-correcting region 106. Similarly, three alternate word choices 157 are shown in the list in an order determined by their corresponding matching metric values. The Symbols Mode key 116, the Alternate Letter Mode key 120, and the Numeric Mode key 122 each ca | ||||||
