Method of rapid entering of text into computer equipment4969097Abstract A method and apparatus for rapidly entering text into a computing machine is described. An operator may enter text in abbreviated form using several simple rules to predict which abbreviated word forms will be correctly recognized. In the event of conflicts (where one abbreviated word matches more than one full text work), the operator selects the preferred resolution either on an individual or global basis. Claims I claim: Description DESCRIPTION
TABLE 1
______________________________________
Prefixes Suffixes
______________________________________
ac al ap as a al a
com con cor c ance ce ence c
de di dis d ed d
per pre e ate se te e
for fore f ing g
im in inter i tion h
en n ly i
pro p age ge j
re r able ible le l
sub sup super s ant ent ment nt
n
trans t or o
un under u er r
ex x es s
ty t
ure u
ive ve v
cy ry y
sion z
______________________________________
In order to rapidly enter alphabetic information in accordance with the present invention, the operator keystrokes abbreviated text into the keyboard 21. The abbreviated text may include a plurality of character groups. Character groups are usually separated by spaces (indicated by use of the conventional space bar on the keyboard 21), carriage returns, etc. A character group may comprise a full word. However, for words longer than a predefined number of characters (for example words longer than four characters), the operator need not key each character of the word. Rather, using some simple rules which will be defined below, the operator keys in a character group which is smaller than the intended word. For some words the character group may comprise the initial two characters and the last two characters of the intended word (other conventions such as the first or last four characters, first three and last, first and last three, etc. are also possible). In the event that the intended word includes one of the word modifications stored in the word modification file, the operator will key in (for example for a prefix word) a character representing the word modification indicator, and several other characters from the intended word (such as the four characters following the prefix or all characters following the prefix if there are less than four characters following the prefix). Similarly, for a suffix word, the operator may key in several characters from the intended word followed by the word modification indicator as the trailing character. After the operator has keyed in (in one embodiment) a given amount of text, in the abbreviated form just described, the operator will initiate processing in accordance with the present invention. In accordance with that processing, the different character groups in the entered text will be treated in turn. Taking up a typical character group, it will be checked for the presence of a word modification indicator. Assuming no word modification indicator is present, then the computer will refer to the word file and attempt to match the character group with one or more words in the word file using the predefined rules. If only a single match is found, then the character group being processed will be replaced, in the entered text by the word matched in the word file. If more than a single word match is found, the operator will be presented with a display showing all of the matches. Thereafter, the operator is allowed to select one of the matched words. The operator-selected matched word is then used to replace the corresponding character group in the entered text. If there are many identical conflicts, the operator may select a global resolution to resolve all identical conflicts in an identical fashion. If on the other hand a word modification indicator is located, then the other component of the word modification file is used to produce a modified character group. The modified character group is simply the original character group wherein the word modification indicator has been replaced by the corresponding entry in the word modification file. Thereafter the same matching attempt is made between the modified character group (and the originally entered character group) and the word file. In addition to using the word file and the word modification file, the invention also provides additional files for frequently used words and frequently used phrases. In accordance with one embodiment of the invention, use is made of a character group consisting of a single character. In the English language for example, there are only two single character words (a and I). Thus are 24 other characters in the alphabet which can be used to represent 24 different frequently used words (sometimes called buzz words). When a single character group (which is not an a or an i) is located, then reference is made to the frequently used word file and the single character group in the entered text is replaced by the corresponding entry. Multi-word character groups (for example two character groups) can be used in a similar fashion to identify either other frequently used words or frequently used phrases. Those skilled in the art are aware that there are many word processing applications which use relatively unique vocabularies. The present invention provides the operator with the ability to alter any or all of the foregoing files by for example adding words to the word file, adding word modifications to the word modification file, adding frequently used words or phrases to the other files. To assist the operator with these changes, the invention also provides for a count field in the word file, frequently used word file, or frequently used phrase file. Thus, after a period of some use, the operator can examine the count fields to determine which frequently used words or frequently used phrases or words are being used more than others. In some instances the operator may desire to delete words, frequently used words, or frequently used phrases from the corresponding files and perhaps substitute other more frequently used combinations. The operator need not use shortened character groups in lieu of intended words, although maximum efficiency is of course found when shortened character groups are used in lieu of intended words. However, there is a byproduct in using the invention even to the extent that intended words are actually keyed in full. Because all character groups are processed, when the operator has incorrectly spelled an intended word, even where entered in full, the processing will identify the lack of a match and thus call the operator's attention to a potential misspelling. In the embodiment of the invention being described, shortened character groups are not used for simple words of four or less characters. In order to speed processing, four character words (which are entered in full) are distinguished from shortened character groups by the use of a unique symbol such as using the upper case form for the last letter in a four character word which has been keyed in full. Prior to executing a typical operation the system, based on the existing data base, initializes the word list by breaking the word list into various categories, simple words, prefix words, suffix words, prefix/suffix words, compound words, double character phrases, etc. In each category, the system identifies those shortened character groups which "match" each word. Furthermore, in each category the words are indexed by length, e.g. a sub-category for 8-character words, a next sub-category for 9-character words, etc. Internal pointers then allow a search to begin at short words and proceed to longer words. This initialization need occur only once although each time a word is added, deleted or modified, the initialization is again performed. With the word list initialized in this fashion, a search for a match begins by identifying the type of word. If the leading character of the group entered is found in the prefix file, then the word will be searched in the prefix category. If the trailing character is found in the suffix file, the word will be searched in the suffix category. If both are found, the word will be searched in the prefix/suffix category. If the compound indicator is identified, the word will be searched only in the compound category. If none of these are found, the word will be searched in the simple category. Reference is now made to FIG. 2 to illustrate typical processing employed in accordance with the present invention. FIGS. 2-6 illustrate processing in accordance with one embodiment of the present invention. Referring first to FIG. 2, the processing shown assumes that the operator has entered a group of abbreviated words (or character groups) interspersed with full words and indicators for buzz words (indicated by a single character) or phrases (indicated by a double character). The first function, Fl, points to the first character in entered text. Function F2 finds the end of that character group (e.g. space, punctuation character, carriage return or the like). Function F3 focuses on the first character in the entered group and checks it against the prefix table. Function F4 branches on whether the leading character in the character group was found in the prefix table. If it was, function F5 marks this character group as possibly comprising a prefix word. Either after function F5 is performed or if that function is skipped (because the leading character was not found in the prefix table), function F6 is performed to check the last character of the character group in the suffix table. Functions F7 and F8 are entirely similar to functions F4 and F5. Thereafter, function F9 is performed to check for the compound word indicator. Function F10 branches on whether it is found. If it was found, then function F11 marks the character group as a compound word. Thereafter, function F12 is performed (either after executing function F11 or if function F11 is skipped). Referring now to FIG. 3, function F12 determines if the character group is a compound word. This determination is based on whether the compound indicator was found. If it is a compound word, then function F13 searches the compound word list. Function F14 branches on the result. If the entered character group matches with one of the word abbreviations in the compound word list, then the compound word was found and function F15 is performed to replace the operator-entered character group with the corresponding compound word. Function F75 checks to see if there are more character groups to process. If there are, processing loops to F76 (C). Otherwise, processing skips to F83 (G), discussed below. On the other hand, if there is no match then functions F16 and F17 are performed to flag this character group as an error and proceeds as already described. Alternatively, if the character group being processed does not include the compound word indicator, then function F18 is performed to check to see whether the last character is in upper case form. If it is, it indicates that the word is a simple, four character word and thus processing skips to point F (which will be discussed below). Assuming, however, that the last character is not a shifted character, then function F19 is performed to determine if the character group has been marked as a possible prefix/suffix word. This of course is determined by noting that both functions F5 and F8 have marked this as both a prefix word and a suffix word. If the character group has been so marked, then function F20 is performed to search the prefix/suffix words. Function F21 branches on the result with function F22 being performed to save the match if one was found. Function F22 is otherwise skipped. After executing function F22 or F21, or if the character group is not a prefix/suffix word, then function F23 is performed. Function F23 determines if the character group may be a suffix word. If it is, functions F24 and F25 are performed and depending on the result of the execution of function F25, function F42 may be performed. These functions are analogous to functions F20, F21 and F22 and should not require further explanation. Thereafter, functions F43, F44 and F45 (and perhaps F46) are performed in an entirely similar manner. At the conclusion of the processing shown in FIG. 3, matches will have been found for the entered character group considered as a prefix/suffix word (if appropriate), considered as a suffix word (if appropriate) and as a prefix word (if appropriate). Thus, more than a single match may have been found in accordance with this processing. In any event, processing then proceeds to function F47. Function F47 determines if the entered character group consists of two characters or less. If that is the case, then function F48 is performed. Function F48 branches on whether the entered character group is but a single character. If it is, then function F49 is performed which branches on whether the single character is an A or an I. If it is one of these two characters, then function F50 is performed to merely go on to the next character group since either of these characters is a word in the particular language used in the example under discussion. However, if the single entered character is neither A nor I, then function F51 checks the character against the indicators in the buzz word file. If a match is found, the character group being processed is replaced with what is found in the buzz word file and thereafter functions F62 and F79 are performed as described. If no match is found, then functions F59, F78 and F60 are performed to flag this character group as an error and go on as described. On the other hand, if the character group being processed is not a single character group, then function F63 is performed to check the phrase table for double character groups. Function F64 branches on the result. If a match is found, then functions F65, F80 and F66 are performed which are similar to functions already described. If no match is found, processing skips to point F to check the simple words. On the other hand, if function F47 determines that the group being processed is not two characters or less, then processing proceeds directly to function F69. Function F69 checks the simple words and function F70 branches on the result. If a match is found, function F71 saves that match and processing then proceeds the function F81. Alternatively, if no match is found, then processing proceeds directly to function F81. Functions F81 and F82 are similar to processing already described. If entered text has been processed (no exit from F81), then F83 points to the initial character group or the word which has replaced it and F72 is performed. Function F72 branches on whether the number of matches is greater than one. Assuming it is, processing skips to point A (see FIG. 5). Alternatively, processing proceeds to point B if there was one match or less found. Referring now to FIG. 5, function F26 flags the character group being processed as resulting in a conflict and function F27 increments a conflict counter (the result of which will be seen below). If there is not more than a single match as a result of processing function F24, then function F28 is performed to determine if there is more than zero matches. If there is, i.e. if there is a single match, function F29 is executed and it replaces the original character group with the match found at function F24 from the word file. If there is no match, then function F30 is performed to flag the character group as including an error condition. At the conclusion of functions F27, F29 and F30, F31 is performed which branches on whether there is an additional character group to be processed. If there is, then function F32 loops back to function F3. If on the other hand there are no further character groups to process, then each character group in the entered text has been processed. Processing then steps to function F33 et seq. Function F33 presents the operator with the first conflict. This creates on the display a representation of each match from the word file (see FIG. 7). Referring to FIG. 7, the display referred to will be described. The uppermost line in the display identifies several function keys and the function performed by pressing that key. The material (four character groups) within the rectangle identifies the four character groups entered by the operator. Immediately below the rectangle and to the left is a message indicating that the character group "DCLOSS" matches more than one word in the word list. The two candidates extracted from the word list are shown in the smaller rectangle, also below the large rectangle; these candidates include "DISCLOSES" and "DISCLOSURES". While FIG. 7 does not show it, the operator can position a cursor to select one of the two (or more if necessary) candidates. By the selection, the operator resolves the conflict. Referring again to FIG. 5, the processing shown there also determines, at function F34 if there are any other instances of the identical conflict. If there are, then as indicated at F35 the operator is allowed to select a single or global conflict resolution. At function F36 the processing waits the operator's resolution. If the operator decides the resolve this on a single conflict basis, the cursor is positioned as is indicated in connection with FIG. 7 and a selected key (such as the enter key) is depressed. If the operator indicates (by the depression of an additional key) that this is a global resolution, then processing at function F37 branches to function F39. Function F39 resolves each identical conflict with the resolution effected by the operator at function F36. On the other hand if the operator did not select global resolution at function F37, then function F38 merely resolves the single conflict identified to the operator. Function F39 or F38 responds to the preferred word by replacing the character group resulting in the conflict with the word selected by the operator. Function F40 checks to see if there are additional conflicts, i.e. have we processed that number of conflicts indicated by the conflict counter (function F27)? If not function F41 steps to the next conflict and steps F33 through F40 are again performed. When function F40 branches through the No path, then function F52 (see FIG. 6) determines if there are any errors that have been flagged in the course of the processing. If no errors have been flagged, then the text has been completely processed. At this point the operator can display the processed text on a display 22, or produce a hard copy printout by using the printer 23. The operator may also store the processed text using a floppy disk or a hard disk, as desired. On the other hand, if errors have been flagged, then function F53 presents the first error to the operator. Function F54 branches on the operator decision to modify the data base (that is, the word file, frequently used phrase file, frequently used word file, etc.). If the operator does not desire to modify the data base, then processing steps to function F56. On the other hand, if the operator desires to modify the data base, then function F55 effects the modification and then processing steps to function F56. Function F56 branches on whether or not additional errors are to be processed. If there are, function F57 increments to the next error and function F54 is again performed. When all errors have been processed, processing concludes. At this point, the operator can display the processed text, produce a hard copy printout, or store the processed text. While the foregoing has described a particular embodiment of the invention, those skilled in the art will realize that numerous and many modifications can be effected within the spirit and scope of the invention. More particularly, the language employed to define different words, prefixes and suffixes need not of course be English. Tables 2, 3 and 4 (reproduced below) are examples of prefix/suffix tables for Spanish, French and German, respectively. Those skilled in the art will be able to prepare prefix and suffix tables for still other languages after reviewing this disclosure.
TABLE 2
______________________________________
Spanish
Prefixes Suffixes
______________________________________
com con c an ar as a
de d es er e
es ex e ir is i
im in i ion cion h
pre pro p lo la l
re r ta ra t
to do no o
______________________________________
It should be apparent that the method of the invention operates on text once it has been entered by an operator. However, the invention does not depend on the use of a keyboard for text entry. Rather, any other method of text entry can be used. For example, the text can be manually written by an operator and thereafter scanned by an optical scanner with character recognition equipment for identifying the text selected by the operator for entry into the computer. Many other forms of text entry will be apparent to those skilled in the art. Mention has already been made that the data base includes a count field for each time a particular word is used. A further modification or enhancement to the invention provides further efficiency when specialized words are used very often in a particular document. In order to implement this particular embodiment of the invention, the count fields as loaded into memory are initialized to zero each time the program is executed. As the operator enters character groups, the count fields (since they had been initialized at zero) will indicate, for each word in the data base, the number of times it had been used in a particular document. When a count field in any word exceeds a predefined threshold (for example 15), then the program automatically signals to the operator that a high use word has been identified and furthermore selects a unique key which will thereafter be considered to represent that particular high use word. In effect, the program automatically adds high use words to the buzz word file, but the corresponding buzz word indicator is a unique key. Particular keys which can be used quite readily for this embodiment are the function keys (typical keyboards include function keys 1-10). Thus the first time such a high use word is identified, the program can assign function key F1 to this word. Thereafter, each time the operator depresses function key F1, that particular high use word is reproduced. Thereafter, if the program identifies another high use word, it will assign function key F2 with like results. In view of the foregoing, the invention is not to be interpreted in accordance with the example described herein but rather in accordance with the claims attached hereto.
|
Same subclass Same class Consider this |
||||||||||
