Abstract:
A method, an article of manufacture and apparatus for providing user-specific error analysis for a document. Specifically, the invention provides for identifying user-specific proclivities for confusing particular words which, while grammatically correct, are not used as intended by the user. The proclivities are tracked by recording changes made by the user while editing a document. The information collected while tracking the changes is then used to identify problem words to the user at a later period in time.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 09/592,308, filed Jun. 13, 2000, now U.S. Pat. No. 7,398,467 which is herein incorporated by reference in its entirety. 
    
    
     BACKGROUND OF THE DISCLOSURE 
     1. Field of the Invention 
     This invention relates to text editing systems, and, more particularly, the invention relates to a method, an article of manufacture and apparatus for performing spelling analysis. 
     2. Description of the Background Art 
     Computer-based text editors can be found in word processors and spreadsheets for providing spelling and grammar correction. One purpose of document checking software is to assist a person in producing a high quality document without spelling and grammar mistakes. Implicit in producing a high quality document is that corrections be made in the least amount of time and that the software be able to accurately detect a user&#39;s mistakes. 
     Conventional spell and grammar checking software analyze a user&#39;s document for errors by comparing the words in the user&#39;s document to the words in the software&#39;s database. If words in the user&#39;s document do not match words in the software&#39;s database, the user&#39;s words are highlighted, and the user is given the option to change the word. 
     However, one problem with conventional spell and grammar checking software is that the software analyzes a user&#39;s document with no reference to a user&#39;s spelling habits. For instance, a user may have a habit of typing the word “an” rather than the word “and”. Since the word is spelled correctly, the word would not be detected by a conventional software. 
     A second problem with conventional spell and grammar checking software is the inability of the software to detect a user&#39;s problem words. For instance, the two sentences, “Thomas and Eagle went to the store” and “Thomas an Eagle went to the store” are both grammatically correct. Hence, conventional software would not be able to detect the user&#39;s problem words “and” and “an”. Therefore, the user would have to manually detect the correction. This results in inefficient use of time and lost productivity for the user. 
     Therefore, a need exists in the art for a method, an article of manufacture and apparatus for providing spelling analysis in an efficient manner. 
     SUMMARY OF THE INVENTION 
     The invention provides a method, an article of manufacture and apparatus for providing spelling analysis for a document. 
     One aspect of the invention provides a method for providing user-specific error analysis to identify as problem words any correctly spelled words of a document that are improperly used. The method comprises recording contents of the document as pre-edited contents, allowing a user to replace each problem word contained in the document with a respective replacement word. The problem words and replacement words are then stored to a first data structure, wherein each problem word is associated with the respective replacement word. 
     Another aspect of the invention provides a computer readable medium containing a program which, when executed by a processor, performs the method described above. 
     Still another aspect of the provides a computer comprising a memory device, a processor configured to access the memory device and configure to execute the method described above for providing user-specific error analysis to identify as problem words any correctly spelled words of a document that are improperly used. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which: 
         FIG. 1  depicts a high level block diagram of a computer system suitable for use with the present invention for providing spelling analysis; 
         FIG. 2  depicts an illustrative analysis spelling list in tabular form suitable for use in the computer system of  FIG. 1 ; 
         FIG. 3  depicts an illustrative problem word table suitable for use in the computer system of  FIG. 1 ; 
         FIG. 4  depicts a flow diagram of a spelling analysis method useful for understanding the present invention; 
         FIG. 5  depicts a flow diagram of a shortcut for providing spelling analysis according to the present invention; and 
         FIGS. 6A and 6B  depict illustrative sentences for showing an application of the invention. 
     
    
    
     To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. 
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       FIG. 1  depicts a high level block diagram of a computer system  100  suitable for use with the present invention for providing spelling analysis in accordance with the present invention. Specifically, the computer system  100  includes a computer  101  and an input/output device or devices  102  such as a monitor, a keyboard, a mouse, a trackball and the like. The computer  101  comprises a central processing unit  104 , support components  106 , input/output circuits  108  and a memory  110 . The memory  110  may be a solid state memory, a disc drive, an optical memory, a removable memory device, or a combination of memory devices. The input/output circuits  108  provide a well-known interface from the CPU  104  to the I/O devices  102 . Additionally, the I/O circuits  108  may optionally contain a network interface card or modem that couples the computer to a network such that a user may have access to the present invention from any computer connected to the network. The support components  106  are well known in the art and include such components as cache, power supplies, clock circuits, and the like. 
     The combination of all the components and elements shown in  FIG. 1  forms a general purpose computer that, when executing a particular software package or routine, becomes a specific purpose computer. In this case, the CPU  104 , when executing the spell check software  116  of the present invention, operates as a spell checking processor. The spell check software  116 , word processor  118  and document  120  reside in memory  110 . Memory  110  also includes data structures necessary for the operation of spell check software  116 . For example, one such data structure is pre/post analysis spelling table  200 . An embodiment of pre/post analysis table  200  is shown in  FIG. 2 . A second example of a data structure is problem word table  300 . One such embodiment is shown in  FIG. 3 . Both pre/post analysis table  200  and problem word table  300  are stored in spelling table storage  114  within the memory  110 . 
     As will be described in detail below, one embodiment of the invention is implemented as a program product for use with a computer, for example, computer system  100 . The program(s) of the program product defines functions of the preferred embodiment and can be contained on a variety of signal bearing media, which include, but are not limited to (i) information permanently stored on non-writable storage media (e.g., read only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g. floppy disks within a diskette drive or hard disk drive); or (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. Such signal bearing media, when carrying computer readable instructions that direct the functions of the present invention, represent embodiments of the present invention. 
       FIG. 2  depicts an illustrative pre/post analysis spelling list  200  in tabular form suitable for use in the computer system of  FIG. 1 . Specifically, pre/post analysis table  200  comprises a user name identifier within a user name field  202  and a plurality of records R 21  through R 29 , each record is associated with a respective PRE field  210 , a respective POST field  220  and a respective CHANGED field  230 . 
       FIG. 3  depicts an illustrative problem word table  300  suitable for use in the computer system of  FIG. 1 . Specifically, problem word table  300  comprises a user name identifier within a user name field  202  and a plurality of records R 31  through R 34 . Each record is associated with a respective WORD field  310 , a respective PRIORITY field  320 , a respective COLOR field  330 , a respective NUMBER of CHANGES field  340  and a respective REPLACED WORD field  350 . 
     The WORD field  310  indicates a word from table  200  that was changed. The PRIORITY field  320  indicates a priority level for problem words allowing particular words to be grouped together. For example, the user may find that “they&#39;re”, “there” and “there” are problem words that are frequently encountered and may seek to group those words in the same priority levels. The COLOR field  330  indicates a color for a problem word based on the problem word&#39;s respective priority level. The NUMBER of CHANGES field  340  indicates the amount of times a respective problem word has been changed to a correct word. In one embodiment, the field  340  is used to determine which problem word should receive high priority. A problem word with a large number of changes could be indicative of a proclivity to incorrectly use that particular problem word and may be given a higher priority. The REPLACED WORD field  350  indicates the replacement word to use whenever the respective problem word is encountered. 
       FIG. 4  depicts a flow diagram of a spelling analysis method  400  useful in understanding the present invention. To best understand the invention, the reader should simultaneously refer to  FIGS. 2-4 . 
     The method  400  comprises a pre/post analysis stage  401  and a problem word table generation stage  403 . The method  400  is initiated at step  402  and proceeds to step  404  where the user has completed a document and executes the spell check software  116  and is prompted for a user name. By inputting a user name in the user name field, the user name will be assigned to a corresponding table  200  and table  300 . If the user does not input a user name, a default user name will be assigned to the user corresponding to all non-specified users and a corresponding table  200  and  300  will be assigned. 
     At step  406 , the pre/post analysis table  200  is retrieved from memory  110 . The method  400  proceeds to step  408  where a “pre” flag is set. Setting the “pre” flag causes the PRE field  210  to be populated with all the words from the users&#39;document. 
     The user then executes the spell check software  116  of the invention to perform pre-processing wherein the document (or selected text) is scanned by spell check processor  112 . Each word is placed in PRE field  210 , which indicates pre-processed words. Illustratively, the user&#39;s document comprises the sentence, “We are going to and open house to celebrate”. Accordingly, PRE field  210  of records R 21  through R 29  is depicted as containing the following words from the users document: “we” in R 21 , “are” in R 22 , “going” in R 23 , “to” in R 24 , “and” in R 25 , “open” in R 26 , “house” in R 27 , “to” in R 28  and “celebrate” in R 29 . 
     It should be noted that table  200  is shown with only nine records (R 21  through R 29 ). However, it will be appreciated by those skilled in the art that table  200  may comprise an unlimited number of records. 
     Next, at step  410 , the user manually reviews the document and identifies and corrects problem words. At step  412  the “post” flag is set. By setting the “post” flag, the spell check processor  112  stores every word of the edited document to the POST field  220 . In this example, the problem word is “and” and the user corrects the word to “an”. POST field  220  of records R 21  through R 29  is depicted as indicating the processed words as follows: “we” in R 21 , “are” in R 22 , “going” in R 23 , “to” in R 24 , “an” in R 25 , “open” in R 26 , “house” in R 27 , “to” in R 28  and “celebrate” in R 29 . The method  400  proceeds to step  414 . 
     At step  414 , the spell check processor  112  compares PRE field  210  of records R 21  through R 29  to POST field  220  of records R 21  through R 29 . At step  416 , the results are placed in CHANGED field  230 . CHANGED field  230  of records R 21  through R 29  is depicted as follows: “no” in R 21 , “no” in R 22 , “no” in R 23 , “no” in R 24 , “yes” in R 25 , “no” in R 26 , “no” in R 27 , “no” in R 28  and “no” in R 29 . Illustratively, record R 25  of table  200  indicates that a pre-process word “and” was compared to a post process word “an” and that a word change was made. The changed words are referred to herein as “problem words”. 
     At step  418 , a query is made as to whether there is a “yes” value in CHANGED field  230 . If the query at step  418  is answered negatively, then the method  400  proceeds to step  430 . If the query at step  418  is answered affirmatively, then the method proceeds to step  420  where the problem word table  300  is retrieved. 
     Field  310  of record R 31  of problem word table  300  indicates that “and” is a problem word for the user. The value contained in field  320  for that particular word is “1” indicating the highest priority. For instance, selection of a priority level may be based on the number of instances the particular problem word has been changed. Field  330  indicates the color assigned to this problem word is “red”. Thus, for each instance of the problem word, in a document the word will be highlighted in “red”. Field  340  indicates that the problem word has been changed twice since the user has been operating spell check software  116 . Field  350  indicates the user has determined from pre/post analysis table  200  that the problem word has been used incorrectly and has replaced the problem word with “an”. 
     Field  310  of record R 32  of problem word table  300  indicates that “they&#39;re” is a problem word for the user. The value contained in field  320  for that particular word is “2” indicating a nearly high priority level. Field  330  indicates the selected color assigned to this problem word is “blue”. Thus, for each instance of the problem word, in a document the word will be highlighted in “blue”. Field  340  indicates that the problem word has been changed once since the user has been operating spell check software  116 . Field  350  indicates the user has determined from pre/post analysis table  200  that the problem word has been used incorrectly and has replaced the problem word with “their”. 
     Field  310  of record R 33  of problem word table  300  indicates that “there” is a problem word for the user. The value contained in field  320  for that particular word is “2” indicating a nearly high priority level. Field  330  indicates the selected color assigned to this problem word is “blue”. Thus, for each instance of the problem word, in a document the word will be highlighted in “blue”. Field  340  indicates that the problem word has been changed once since the user has been operating spell check software  116 . Field  350  indicates the user has determined from pre/post analysis table  200  that the problem word has been used incorrectly and has replaced the problem word with “their”. 
     Field  310  of record R 34  of problem word table  300  indicates that “their” is a problem word for the user. The value contained in field  320  for that particular word is “2” indicating a nearly high priority level. Field  330  indicates the selected color assigned to this problem word is “blue”. Thus, for each instance of the problem word, in a document the word will be highlighted in “blue”. Field  340  indicates that the problem word has been changed once since the user has been operating spell check software  116 . Field  350  indicates the user has determined from pre/post analysis table  200  that the problem word has been used incorrectly and has replaced the problem word with “there”. 
     Field  350  of records R 31 , R 32 , R 33 , and R 34  indicate that “an”, “their”, “their” and “there” are replacement words for the respective problem words. For instance, after a user confirms in table  200  that the changes between PRE field  210  and Post field  220  are what the user wanted, spell check processor  112  populates Field  350  of table  300  with values in Post field  220  based on a “yes” value in CHANGED field  230 . 
     It is noted that table  300  is shown with only four records (R 31  through R 34 ). However, it will be appreciated by those skilled in the art that table  300  may comprise an unlimited number of records. 
     Although problem word table  300  is described as being used after the pre/post analysis table  200  has been populated, the problem word table  300  can be used separately from the pre/post analysis table  200 . For instance, once the problem word table  300  has been populated by the pre/post analysis table  200  from previous sessions, the user can retrieve problem word table  300  and scan a document for problem words. 
     In another embodiment of the invention, the user can assign priority levels and colors to problem words. For example a user may determine that the problem word with the lowest number of changes should be given the highest priority level. In addition the user can select a color to assign to any problem word. Although colors are mentioned as a means of characterizing problem words, it should be noted that any type of characterization of the problem words may be used by those skilled in the art. 
     In another embodiment of the invention, prior art spell check or grammar software is utilized to group problem words. For example, “there”, “their” and “they&#39;re” may be grouped together since these words may be incorrectly substituted for each other by a user. Using the present invention, the words could be placed in problem word table  300  and the user prompted as to whether a change should be made whenever any of the grouped words are encountered in a document. 
     In another embodiment of the invention, as soon as a user types a problem word that is in problem word table  300 , the user is prompted as to whether the word should be changed or not. Illustratively, the prompting can be a dialog box or word highlighting. 
     In another embodiment of the invention, the invention can be used to compare two documents and synchronize or match words. In comparing the PRE field  210  and Post field  220  the invention can allow for the addition and deletion of words in a document. For instance, if the only change to the second document is to add the word “eventually”, the invention will detect that “eventually” is a new word. Therefore, the word “eventually” will not be displayed in Post field  220 . Similarly, if the word “happy” is deleted from the second document, the invention will detect that “happy” was deleted and not record the deletion as a change in Changed field  230 . 
     Returning again to  FIG. 4 , a query is made at step  422  as to whether the changed word exists in the problem word table  300 . If the query at step  422  is answered affirmatively, the method  400  proceeds to step  424 . At step  424 , the value contained in the Number of Changes field  340  of table  300  is increased by one for the respective changed word. 
     If the query at step  422  is answered negatively, the method proceeds to step  428  where the changed word is added to the WORD field  310  of the problem word table  300 . The method  400  then returns to step  424 . 
     At step  426  a query is made as to whether any more changed words exist in the pre/post analysis table  200 . If the query at step  426  is answered affirmatively, the method  400  returns to step  422 . Accordingly, method  400  returns to step  422  for each changed word contained in table  200 . If the query at step  426  is answered negatively, the method  400  proceeds to step  430 . 
     After determining that no changed words exist in the pre/post analysis table  200  (step  418 ) or determining that no additional changed words exist in the pre/post analysis table  200  (step  426 ), the method  400  proceeds to step  430 , where the method exits. 
       FIG. 5  depicts a flow diagram of a shortcut method  500  for providing spelling analysis according to the present invention. Accordingly, the user can avoid typing the whole document, making changes to the document and having those changes recorded in the problem word table  300 . The method  500  allows a user to quickly target specific words that the user knows before hand are problem words. The method  500  is initiated at step  502  and proceeds to step  504 . At step  504 , a short-cut flag is set, and the method proceeds to step  506 . 
     At step  506 , the user is prompted for a problem word. The user then inputs a problem word. The method  500  proceeds to step  508  where the document (or selected text) is scanned and the problem words are highlighted throughout the document. 
     At step  510 , the problem words are edited by the user according to whether each of the identified problem words is used correctly or not. The method  500 , then proceeds to step  512 . 
     At step  512 , the short-cut flag is reset. If the short-cut flag is not reset, the problem words in the document will continue to be highlighted and spell check software  116  remains in the short cut state. The method  500  then proceeds to step  514  where the method  500  ends. 
     In operation, the data collected and stored in table  300  is utilized to identify problem words in a target document.  FIGS. 6A and 6B  show a display area  600  of an output device (e.g., a monitor) and illustrate an application of the invention.  FIG. 6  shows an uncorrected sentence which contains a problem word (i.e., the word “and”). The problem word is identified by accessing table  300  which has been previously populated in the manner described above. As shown in  FIG. 3 , field  310  of record R 31  contains the problem word “and”. Since the problem word “and” is contained in the user&#39;s sentence, the word “and” in the user&#39;s document will be highlighted in red according to the color definition contained in field  330 . For purposes of illustration, the problem word is shown bolded in  FIG. 6A . 
     A replacement word “an” from Replacement Word field  350  of record R 31  will then be displayed to the user. The user will then determine whether the word “and” should be replaced with the word “an”. If the user determines the word “and” should be replaced, the spell check software  116  will make the correction in the user&#39;s document. The corrected sentence is shown in  FIG. 6B . 
     It should be noted that both the sentences, “Thomas and Eagle went to the store” and “Thomas an Eagle went to the store” are grammatically correct. The use of problem table  300  allows the user to detect problem words that would be undetectable by prior art software. 
     Although various embodiments which incorporate the teachings of the present invention have been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings.