Abstract:
An electronic device automatically classifies documents based upon textual content. Documents may be classified into document categories. Statistical characteristics are gathered for each document category and these statistical characteristics are used as a frame of reference in determining how to classify the document. The document categories may be intersecting or non-intersecting. A neutral category is used to represent documents that do not fit into many of the other specified categories. The statistical characteristics for an input document are compared with those for the document category and for the neutral category in making a determination on how to categorize the document. This approach is extensible, generalizable and efficient.

Description:
TECHNICAL FIELD 
     The present invention relates generally to categorization of content and more particularly to the automatic categorization of documents based upon textual content. 
     BACKGROUND OF THE INVENTION 
     A number of different techniques have been developed to help automatically classify documents into categories based upon their textual appearance. The techniques can be largely categorized into five categories: techniques based on phonemes characteristics, techniques based on statistics for n-grams, techniques based on statistics for keywords, rule-based techniques, and techniques based on semantic topics. These different categories of techniques will be discussed in more detail below. 
     These classification techniques are generally based on measures of relationships between object, such as “similarity” or “association.” The measure of the relationship is designed to quantify the likeness among objects. For any given object, the object in a group is more like the other members of the group than it is an object outside the group. 
     Techniques based on phonemes characteristics examine phonemes in the document. A “phoneme” is a smallest significant phonetical unit in a language that can be used to distinguish one word from another. For example, the “p” in the word “pit” may be a phoneme. Certain prior art systems have used hidden markov models (HMMs) for phonemes to model language. One example of a system that used HMMs is U.S. Pat. No. 5,805,771, issued Sep. 8, 1998, to Muthusany, et al. This patent describes a language identification set that models phonemes using HMMs. The paper proposes several enhancements to traditional HMM based language identification systems, including a language independent acoustic model. This technique appears limited to the processing of phonemes. 
     U.S. Pat. No. 5,625,748, issued Apr. 29, 1997 to McDonough et al., concerns a method for discriminating topics from speech events. The method is based on a word/phrase spotter and topic classifier that is trained in topic dependent event frequencies. 
     N-gram based techniques examine n-grams to categorize documents. An “n-gram” is a letter sequence of length n. Such techniques have been shown to be useful for identifying the native language in which a document is written. A paper by Gregory Grefenstette, “Comparing Two Language Identification Schemes.” Proceedings of the 3 rd  International Conference on the Statistical Analysis of Textual Data, JADT&#39;95, December 1995, describes an n-gram based technique. With this technique, statistics are gathered on three letter sequences known as trigrams, at the basic signatures for a language. The paper compares n-gram techniques and a keyword based technique and, as a result of the comparison, favors the n-gram technique. 
     U.S. Pat. No. 5,418,951, issued May. 23, 1995, to Damashek et al also discloses an n-gram technique. The Damashek patent describes a method of retrieving documents that concern similar semantic topics or documents that are written in similar languages. The method relies upon the creation of a letter N-gram array for each document. 
     U.S. Pat. No. 5,062,143 issued Oct. 29, 1991 to Schmitt also concerns an n-gram technique. The Schmitt patent describes a technique for identifying the language in which a document is written based upon statistical analysis of letter trigrams appearing in the document. The technique uses a simple threshold based on the number of matches to determine the identity of the language in which the document is written. The matches are made against a library of precompiled key sets for a number of different languages. 
     Techniques based on statistics of words gather statistical information regarding keywords within documents. These statistics are then subsequently used to categorize a document. For example, word frequencies may be utilized to categorize a document. The presence of one or more frequently occurring words in a document may serve as a fairly reliable indicator that the document is of a specified document category. 
     U.S. Pat. No. 5,182,708, issued Jan. 26, 1993 to Ejiri, discloses a method for classifying a document to one of several predefined categories on the basis of word frequency. The method pivots around statistical characteristics of constrained languages and unconstrained languages. These statistical characteristics enable the method to distinguish, for example, English spoken by a native speaker from English spoken by a speaker for which English is a second language and from programming language code. 
     Rule-based techniques employ rules to implement categorization. For example, a rule may indicate that if a document contains the word “byte,” the document relates to computers. This approach requires human experts to encode intelligence in the form or rules into the system. The rules are then used to perform the categorization. 
     Techniques based on semantic topics exploit relationships between words and semantic topics in documents. The relationships are used to assign topics to documents based on the words that are used within the documents. The assignment of the topics is a form of categorization. 
     U.S. Pat. No. 5,687,364, issued Nov. 1, 1997 to Saund, et al, describes a method of leaming relationships between words and semantic topics in documents. The method assigns topics to documents based upon the words used in the documents. The method learns topics of the training data and associates a list of words with each topics. At run time, based on the words used in the document, the system identifies the matching topics. 
     U.S. Pat. No. 5,873,056, issued Feb. 16, 1999 to Liddy, et al, describes methods for predicting a semantic vector that represents a document based on words contained within the document. The method relies upon lexical database and subject codes. Non ambiguous words are assigned subject codes. The remaining words in the document are disambiguated based on the examination of the frequency with which other subject codes appear. Topic assignment is also based on the frequency with which other subject codes appear. 
     SUMMARY OF THE INVENTION 
     The present invention provides an approach to categorizing documents that is highly efficient. In addition, the approach adopted by the present invention may be empirically adjusted to produce improved results in view of feedback. In one embodiment of the present invention, a neutral category is utilized that represents documents that are not encompassed by the other categories. In determining whether to place a document in a given category, a comparison is made whether document better fits into the neutral category or the given category. The present invention is generalizable enough to perform many different types of categorization. Moreover, the present invention is extensible and requires little or no manual work to add a category. Still further, the present invention can handle multiple unrelated categories. 
     In accordance with one aspect of the present invention, a method of categorizing a selected document based upon textual content is performed. In this method, the document categories are provided into which documents may be categorized. A lexicon of tokens is provided for training. The tokens are partitioned into partitions based on frequency of occurrence of the tokens in respective subsets of training materials for each document category. A metric of frequency of occurrence of the token in the selected document is calculated per document category for each token in the selected document. For each of the partitions of each of the categories, a deviation factor is calculated using the calculated metric of frequency of occurrence of the token in the selected document per document category. Each deviation factor identifies the extent of deviation of the calculated metric in the partition. For each category, the deviation factors for the partitions of the categories are used to determine whether the document is to be categorized in the document category. The tokens may take many forms but may be words in some embodiments. The selected document may be an electronic mail message, a word processing document, a document that contains computing instructions or any of a number of other types of documents. 
     In accordance with another aspect of the present invention, a method of categorizing an input document is performed on an electronic device. In this method, a neutral category is provided for documents that do not fit into any of the other document categories. For each word in the input documents and for each document category a difference is determined between a frequency with which the word occurs and the selected document and an average frequency that the word occurs in training documents for the document category. For each document category other than a neutral category, frequency z-scores of words in the input document are compared with frequency z-scores of the words in the training documents for the category and are also compared with frequency z-scores of the words in the training documents for the neutral category to determine whether the input document is to added to the document category. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     An illustrative embodiment of the present invention will be described below relative to the following figures. 
     FIG. 1 is a flow chart that provides an overview of the steps performed in the illustrative embodiment of the present invention to categorize documents. 
     FIG. 2 illustrates the training stage and category stage of the categorization process. 
     FIG. 3 is a block diagram illustrating a computer system that is suitable for practicing the illustrative embodiment. 
     FIG. 4 illustrates functional components employed in the illustrative embodiment. 
     FIG. 5 is a flow chart illustrating steps that are performed during the training phase. 
     FIG. 6 is a flow chart illustrating steps that are performed during run time. 
     FIG. 7 illustrates functional components that are employed in an example case of categorizing a document that contains computer program instructions. 
     FIG. 8 illustrates the functional components that are employed in an example case where electronic mail messages are categorized as being SPAM or not. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The illustrative embodiment of the present invention provides an automated categorization facility for categorizing documents based upon textual content using statistical techniques. The categorization facility trains on a set of training materials, such as documents. The training materials contain textual content suited for the categories. Separate sets of training materials may be provided for each category. Statistical information is gathered from the training materials for each of the categories. This statistical information is then applied in determining the category to which an incoming document is to be categorized. 
     The tool employed in the illustrative embodiment is trained not only for application-specific categories but also for a special category that is designated as the “neutral category.” The neutral category is used as a reference for regular documents. Regular documents are those that are not supposed to fit into any of the other categories. In this regard, the neutral category serves as a “catch-all.” The neutral category is employed to help determine whether a document should be added to a particular category or instead added to the neutral category. 
     The illustrative embodiment provides a number of advantages over conventional systems. The illustrative embodiment is able to categorize documents in both intersecting categories and in non-intersecting categories. The illustrative embodiment is easily extensible in that no manual work is required to add a new category. In particular, there is no need for a manual creation of a new category having established characteristics. The illustrative embodiment is also generalizable that it may apply to a number of different applications and to a number of different domains. The discussion below will set forth two applications. The first application is the identification of undesirable email or “SPAM.” The second application is for identifying the presence of source code in a document. 
     The illustrative embodiment is highly efficient. Analysis performed by the inventors indicates a very high rate of successful categorization by the illustrative embodiment. The approach of the illustrative embodiment also produces few false hits (i.e., categorization of a document in a category that is not appropriate). 
     For purposes of clarity in the discussion below, it is helpful to define a few terms. 
     A “token” refers to a sequence of characters, such as a word or words, found in a document. 
     A “lexicon” is a list of tokens that have been chosen so that the tokens help distinguish one category from another. 
     A “document” refers to a self-contained logical unit of content. Examples of a document include a word-processing document, a hypertext document and the like. 
     A “category” refers to a logical division. 
     FIG. 1 is a flow chart that provides an overview of the steps performed in using the categorization facility of the illustrative embodiment of the present invention. Initially, a lexicon is built (step  10  in FIG.  1 ). As mentioned above, the lexicon contains a list of tokens, such as words, that have been chosen to help distinguish one category from the other. For example, for a baseball category, the lexicon might contain words such as “glove,” “bat,” and “single.” The frequency with which the words on the lexicon occur in an incoming document help to determine what document category the incoming document is to be assigned. 
     The categorization facility of the illustrative embodiment is trained using training material (step  12  in FIG.  1 ). In the illustrative embodiment, the categorization facility uses training documents. Statistical characteristics of categories are derived from these training documents. The particulars of the statistical characteristics will be described in more detail below. 
     Once the categorization facility has been trained, the categorization facility may be employed for categorization of content (step  14  in FIG.  1 ). In the illustrative embodiment, the categorization facility acts on documents containing textual content. The textual content is examined to determine which document category is appropriate for the content. 
     Moreover, the content need not be limited strictly to textual content as described by the illustrative embodiment. The statistical techniques employed within the illustrative embodiment are equally applicable to other varieties of content, including but not limited to graphical content and audio content. In such instances, the tokens are not words but rather are graphical units or audio data units. The categorization facility may categorize the content into one or more categories. These categories may be overlapping or mutually exclusive. 
     The categorization facility may be tuned to optimize the results produced by the facility (step  16  in FIG.  1 ). In particular, certain thresholds (i.e., T 1  and T 2 ) may be adjusted by the user based on empirical results to obtain superior results when employing the categorization facility. These thresholds will be described below. 
     As is apparent from the discussion above, the categorization process  18  (see FIG. 2) is a two-step process that includes a training stage  20  and a categorizing stage  22 . In the training stage  20 , statistical characteristics of categories are extracted, and in the categorizing stage  22 , the statistical characteristics are employed to incoming content to appropriately categorize the incoming content. 
     The categorization facility of the illustrative embodiment may run on a computer system  30 , such as that depicted in FIG.  3 . Those skilled in the art will appreciate that the present invention may also be practiced on other types of electronic devices, including but not limited to Internet appliances, personal digital assistants (PDAs), network computers, and other varieties of intelligent appliances. The computer system  30  may be a server that provides access to a network, such as a local area network (LAN) the Internet, and intranet, an extranet or other type of network. 
     The computer system  30  depicted in FIG. 3, includes at least one central processing unit (CPU)  32 . The CPU  32  may be implemented as any of a number of conventionally available microprocessors. The CPU  32  is responsible for executing instructions and directing activities within the computer system  30 . The computer system  30  may include a number of input/output devices. For the configuration depicted in FIG. 3, the computer system  30  includes a keyboard  34 , a video display  36  and a mouse  38 . 
     The computer system  30  need not be a stand-alone device but rather may communicate with remote computing resources. To that end, the computer system  30  may include a modem  40 . The modem may be a conventional data modem that communicates over analog telephone lines, a cable modem that communicates over cable lines or a wireless modem that communicates over wireless communication paths. The computer system  30  may also include a network adapter  42  for facilitating an interface with a computer network, such as a LAN. 
     The computer system  30  may include both primary storage  44  and secondary storage  46 . The primary storage  44  may include a copy of the categorization facility  48  for execution by the CPU  32 . A copy of the categorization facility  48  may also be held in secondary storage  46 . The secondary storage may hold the lexicon  50 , training documents  52  and categorized documents  54 . The secondary storage  46  may be implemented in a number of different fashions including as a combination of different types of devices. For example, the secondary storage may include magnetic disk drives, optical disk drives and other types of storage media. 
     It should be appreciated that a lexicon  50  need not be a monolithic lexicon but rather may be composed of multiple lexicons. 
     It should also be appreciated that the categorized documents  54  need not be stored locally at the computer system  20  but rather may be stored at remote locations as needed. 
     Those skilled in the art will appreciate that the categorization facility  48  need not be implemented solely in software but rather may be implemented in firmware, hardware or a combination of software, firmware and hardware. 
     FIG. 4 provides an overview of the operation of the categorization facility  48  in the illustrative embodiment in categorizing a document. The categorization facility  48  includes a trainer  70  that is responsible for performing the training necessary to implement the categorization. The categorization facility  48  also includes a categorizer  76 , which is responsible for determining the category or categories a document  74  is to be placed in. As can be seen in FIG. 4, the trainer  70  has document sets  60 ,  62 ,  64 ,  66  and  68  for respective categories. Each category has an associated document set that is used to appropriately train the trainer  70  so as to extract the statistical characteristics, which have been discussed above. The trainer  70  also processes documents for a neutral category  68 . As was mentioned above, the neutral category represents a normal document that does not fit into the other categories (e.g. category  1 , category  2 , category  3  or category  4 ). The statistical characteristics or data that is derived from the training by the trainer  70  is employed by the categorizer  76 . The categorizer  76  receives a document  74  and employs techniques to determine the categories in which to place the document. In the example shown in FIG. 4, the categories are the regular category  78  and the neutral category  80 . 
     As has been mentioned above, the trainer  70  must perform training on training documents in order to properly configure the categorizer  76  so the categorizer is able to categorize the incoming documents. FIG. 5 is a flow chart illustrating the steps that are performed during the training period. Initially, the trainer  70  processes each of the training documents for the associated category to calculate the average frequency of occurrence of each word in the training collection across all of the training documents for the category (step  82  in FIG.  5 ). This average frequency is designated as A k (i) and is calculated as follows:            A   k          (      )       =         ∑     1   &lt;   j   &lt;   J                         F   j   k          (     w   i     )         J                            
     where 
     k specifies the category; 
     i refers to an index of the word in the base lexicon; 
     w i  refers to the i th  word within the base lexicon; 
     J refers to the number of training document for the category; 
     j refers to the index of the training document amongst those provided for the category; and 
     F j   k (w i )refers to the frequency of occurrence of the word w i  in the j th  document used for the training category k. 
     A k (i) is calculated for each category k. For each word, this calculation specifies the average frequency of occurrence of the word in the training collection of documents. 
     The standard deviation in the frequency of each word w i  among the training documents for each category k is calculated (step  84  in FIG.  5 ). The calculation of the standard deviation is as follows.            σ   k          (      )       =           ∑     1   &lt;   j   &lt;   J                         (         F   j   k          (     w   i     )       -       A   k          (      )         )     2       J                              
     where 
     σ k (i) is the standard deviation of the frequency of the word w i  for category k across all the J training documents. 
     As is well known in statistical analysis, the standard deviation represents a measure of deviation or dispersal from an expected value. The standard deviation may be used as a measure of the volatility of a variable. 
     The lexicon W is partitioned into two partitions for each category k (step  86  in FIG.  5 ). The first partition is designated as W 1   k  and the second partition is designated as W 2   k . The first partition is specified as the intersection (i.e. Λ) of two subsets as follows. 
     
       
           W   1   k   ={w   i ;( A   k ( i )&gt;0)Λ( A   0 ( i )=0)} 
       
     
     where 
     A 0 (i) refers to the frequency that the word w i  occurs in the training documents for the neutral category. 
     The second partition is calculated as follows: 
     
       
           W   2   k   ={w   i ;( A   k ( i )&gt;0)Λ( A   0 ( i )&gt;0)} 
       
     
     Thus, the first partition W 1   k  refers to the words in the lexicon that each occur at least once in the training documents for category k but do not occur in the training documents for the neutral category. The second partition refers to words that occur at least once in the training documents for category k and at least once in the training documents for the neutral category. 
     For each word in each partition of each category, a z-score of the frequency of the word for each training document in the given category is calculated. The z-score for an item expresses how and in what direction the item deviates from its distribution&#39;s mean. The z-scores are expressed in units of the standard deviation of the distribution. In the present case, the z-score is calculated for a given word w i  and a given training document j in a category k, as follows:          Z     i   ,   j   ,   k       =           F   j   k          (     w   i     )       -       A   k          (      )             σ   k          (      )                                
     For each category, the maximum sum of all z-scores for all the words in the first partition of the category is calculated. More formally, the calculation is conducted as follows:          Z                   MAX   1   k       =       MAX     J   ∈     W   1   k              (       ∑     i   &lt;   N                       (     Z     i   ,   j   ,   k       )       )                              
     The minimum sum of all z-scores for all words in the first partition of the category is also calculated as follows.          Z                   MIN   1   k       =       MIN     J   ∈     W   1   k              (       ∑     i   &lt;   N                       (     Z     i   ,   j   ,   k       )       )                              
     In addition, the following calculations of maximum and minimum sums of z-scores for the second partition are performed.          Z                   MAX   2   k       =       MAX     J   ∈     W   2   k              (       ∑     i   &lt;   N                       (       Z     i   ,   j   ,   k       -     Z     i   ,   j   ,   0         )       )                 Z                   MIN   2   k       =       MIN     J   ∈     W   2   k              (       ∑     i   &lt;   N                       (       Z     i   ,   j   ,   k       -     Z     i   ,   j   ,   0         )       )                              
     In sum, ZMAX 1   k , ZMAX 2   k , ZMIN 1   K  and ZMIN 2   k  are calculated for each category k with partitions  1  and  2  (step  88  in FIG.  5 ). 
     In the final part of the training, thresholds are calculated for each partition (step  90  in FIG.  5 ). Threshold T 1   k  refers to a threshold for partition  1  of category k and threshold T 2   k  refers to the threshold for partition  2  of category k. The thresholds are parameters that will be used during the categorizing. These thresholds may be empirically derived and adjusted in the tuning step (see step  16  in FIG.  1 ). 
     Once training is complete, run-time categorization may be performed to process the input document  74  (FIG. 4) to determine the categories to which the input document should be placed. A z-score is calculated for the frequency of each token (e.g. word) in a document for each category (step  100  in FIG.  6 ). The z-score may be calculated as follows.            z   k          (      )       =         Freq        (       w   i     ,   Doc     )       -       A   k          (      )             σ   k          (      )                                
     The categorizer  76  then calculates deviation factors for each partition of each category (i.e., R 1   k  and R 2   k ) as follows (step  102  in FIG.  6 ).          R   1   k     =         MIN        (     100   ,           ∑     I   ∈     W   1   K                           Z   k          (      )         -     Z                   MIN   1             Z                   MAX   1       -     Z                   MIN   1             )                     and                   R   2   k       =     MIN        (     100   ,           ∑     I   ∈     W   2   K                         (         Z   k          (      )       -       z   0          (      )         )       -     Z                   MIN   2             Z                   MAX   2       -     Z                   MIN   2             )                                
     As can be seen from the above equation, the maximum and minimum sums of the z-scores that were calculated in the training stage are used to calculate the deviation factors. The z-scores that were calculated in step  100  of FIG. 6 are also employed in these calculations. 
     The resulting deviation values are then subtracted from the respective thresholds to determine whether the deviation factors are greater than the thresholds. In particular, a threshold T 1   k  is subtracted from the deviation factor from the first partition R 1   k  to determine whether the deviation factor is greater than the threshold. Similarly, the second threshold T 2   k  is subtracted from the deviation factor for the second partition R 2   k  to determine which is larger. The document is categorized into the associated category k in all instances except when both of the deviation factors are greater than their associated thresholds (step  104  in FIG.  6 ). 
     As was mentioned above, the illustrative embodiment may be used to determine whether a document contains computer program instructions for a given programming language. FIG. 7 shows an example of a system that is suitable for determining whether a document contains Java programming language instructions or C++ programming language instructions. In this case, the trainers trained using documents for a Java category  110  and documents for a C++ category  112 . Furthermore, the trainer is trained using documents for a neutral category  114 . The data drive from training  72  is used by the categorized  76  to categorize input document  74 . The input document may be categorized in a Java category  116 , a C++ category  118  or a neutral category  80  (i.e., not containing Java or C++ instructions). 
     As shown in FIG. 8, the illustrative embodiment may be used to distinguish normal electronic mail messages (email) from SPAM. In such a case, the trainer  70  is trained with documents for a SPAM category  120  and documents from a neutral category  122 . The resulting data derived from training  72  is passed to categorizer  76 . The categorizer categorizes the document  74  to either place it in the SPAM category  124  or the neutral category  126 . 
     While the present invention has been described with reference to an illustrative embodiment thereof, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the intended scope of the present invention as defined in the appended claims.