methods and apparatus to classify text communications are disclosed. An example method includes determining a first conditional probability of a first feature occurring in a text given that the text belongs to a classification mode, wherein the first feature is included in the text, determining a second conditional probability of a second feature occurring in a text given that the text belongs to the classification mode, wherein the second feature is included in the text, determining a probability of the classification mode occurring, multiplying the first conditional probability, the second conditional probability and the probability of the classification mode to determine a product, and storing the product in a tangible memory as a score that the message belongs to the first classification mode.
|
22. An apparatus to analyze a set of electronic messages, the apparatus comprising:
a statistics generator to generate a set of probabilities that the set of messages belong to a first classification;
a tangible memory; and
an index generator to sort the set of messages based on a set of probabilities, assign a first subset of first consecutive ones of the sorted set of messages to a second bucket, determine a mean of probabilities of the first subset of messages assigned to the first bucket, store the mean in the tangible memory, and store for each one of the messages assigned to the first bucket, an indication,
wherein the index generator is further to:
move a boundary between the first bucket and the second bucket;
in response to moving the boundary, calculate a second mean of the messages assigned to the changed first bucket; and
store the second mean in the tangible memory when the deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold.
9. A method to analyze electronic messages, the method comprising:
sorting a set of messages based on a set of probabilities, the set of probabilities indicating a likelihood that the set of messages belong to a first classification;
assigning a first subset of first consecutive ones of the sorted set of messages to a first bucket;
assigning a second subset of second consecutive ones of the sorted set of messages to a second bucket;
determining a mean of probabilities of the first subset of messages assigned to the first bucket;
storing the mean in a tangible memory;
storing, for each one of the messages assigned to the first bucket, an indication that the respective message is assigned to the first bucket in the tangible memory, wherein the mean is a first mean;
moving a boundary between the first bucket and the second bucket;
in response to moving the boundary, calculating a second mean of the messages assigned to the changed first bucket; and
storing the second mean in the tangible memory when the deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold.
16. A tangible computer readable storage medium comprising instructions that, when executed, cause a machine to at least:
sort a set of messages based on a set of probabilities, the set of probabilities indicating a likelihood that the set of messages belong to a first classification;
assign a first subset of first consecutive ones of the sorted set of messages to a first bucket;
assign a second subset of second consecutive ones of the sorted set of messages to a second bucket;
determine a mean of probabilities of the first subset of messages assigned to the first bucket;
store the mean in a tangible memory;
store, for corresponding ones of the messages assigned to the first bucket, an indication that the respective message is assigned to the first bucket in the tangible memory, wherein the mean is a first mean;
move a boundary between the first bucket and the second bucket;
in response to moving the boundary, calculate a second mean of the messages assigned to the changed first bucket; and
store the second mean in the tangible memory when the deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold.
10. A tangible computer readable storage medium comprising instructions that, when executed, cause a machine to at least:
sort a set of messages based on a set of probabilities, the set of probabilities indicating a likelihood that the set of messages belong to a first classification;
assign a first subset of first consecutive ones of the sorted set of messages to a first bucket;
assign a second subset of second consecutive ones of the sorted set of messages to a second bucket, wherein a first message of the second bucket is consecutive to a last message of the first bucket with reference to the set of probabilities;
determine a mean of probabilities of the first subset of messages assigned to the first bucket;
store the mean in a tangible memory;
store, for respective ones of the messages assigned to the first bucket, an indication that the respective message is assigned to the first bucket in the tangible memory,
repeatedly (1) move a boundary between the first bucket and the second bucket and (2) recalculate the mean of probabilities of messages assigned to the first bucket in response to moving the boundary until deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold; and
store a last recalculated mean as representative of the first bucket.
17. An apparatus to analyze a set of electronic messages, the apparatus comprising:
a statistics generator to generate a set of probabilities that the set of messages belong to a first classification;
a tangible memory; and
an index generator to sort the set of messages based on a set of probabilities, assign a first subset of first consecutive ones of the sorted set of messages to a first bucket, assign a second subset of second consecutive ones of the sorted set of messages to a second bucket, a first message of the second bucket being consecutive to a last message of the first bucket with reference to the set of probabilities, determine a mean of probabilities of the first subset of messages assigned to the first bucket, store the mean in the tangible memory, and store, for each one of the messages assigned to the first bucket, an indication that the respective message is assigned to the first bucket in the tangible memory,
the index generator is further to move a boundary between the first bucket and the second bucket, recalculate the mean of probabilities of messages assigned to the first bucket in response to moving the boundary, repeatedly (1) move the boundary and (2) recalculate the mean until deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold, and store a last recalculated mean as a representative of the first bucket.
1. A method to analyze electronic messages, the method comprising:
sorting a set of messages based on a set of probabilities, the set of probabilities indicating a likelihood that the set of messages belong to a first classification;
assigning a first subset of first consecutive ones of the sorted set of messages to a first bucket;
assigning a second subset of second consecutive ones of the sorted set of messages to a second bucket, wherein a first message of the second subset of messages is consecutive to a last message of the first subset of messages with reference to the set of probabilities;
determining a mean of probabilities of the first subset of messages assigned to the first bucket;
storing the mean in a tangible memory; and
storing, for respective ones of the messages assigned to the first bucket, an indication that the respective message is assigned to the first bucket in the tangible memory,
wherein storing the mean in a tangible memory further comprises:
moving a boundary between the first bucket and the second bucket;
recalculating the mean of probabilities of messages assigned to the first bucket in response to moving the boundary;
repeatedly (1) moving the boundary and (2) recalculating the mean until deviations of the probabilities within the first bucket with respect to the mean are equal to or less than a threshold; and
storing a last recalculated mean as representative of the first bucket.
2. The method as defined in
3. The method as defined in
5. The method as defined in
6. The method as defined in
7. The method according to
8. The method according to
11. The tangible computer readable storage medium as defined in
12. The tangible computer readable storage medium as defined in
13. The tangible computer readable storage medium as defined in
14. The tangible computer readable storage medium as defined in
15. The tangible computer readable storage medium as defined in
18. The apparatus as defined in
19. The apparatus as defined in
21. The apparatus as defined in
|
This application is a non-provisional application and claims the priority of U.S. Provisional Patent Application No. 61/234,042, filed Aug. 14, 2009, entitled “METHODS AND APPARATUS TO CLASSIFY TEXT COMMUNICATIONS” the disclosure of which is incorporated by reference in its entirety.
The present disclosure pertains to classifying text and, more particularly, to methods and apparatus to classify text communications.
The use of the internet as a location for discussions has influenced the desire to analyze such communications for useful information. Example internet communication mediums include discussion forums, instant messaging services, email, etc. In particular, businesses want to know what people are saying in these forums about their business(es) and/or product(s). One way for businesses to learn this information is to assign classifications to messages. For example, messages may be classified based on the sentiment expressed in the message. Summaries of the sentiment classifications can be reviewed to better understand the overall content of the messages.
It is not feasible for a person to manually classify a large number of documents for analysis. Accordingly, computerized methods for classifying communications have been developed. These methods can be trained based on a small training set of classified messages and can apply the training to a large set of unclassified messages. Classification methods are rated based on recall and precision. Recall is the percentage of relevant documents collected out of all items and precision is the percentage of documents that are classified correctly.
The example system 100 of
The trainer 104 of the illustrated example receives an input of pre-classified documents 102 (e.g., documents that have been manually classified) and outputs a classification model to be stored in the datastore 106. As illustrated in
An example grouped feature for pronouns may be represented as: ^ pron, he, he has, he is, he will, he would, he'd, he had, he'll, he's, hes, i, i am, i had, i have, i will, i would, i'd, i'll, i'm, i've, ive, she, she had, she is, she will, she would, she'd, she'll, she's, shes, they, they are, they're, we, we are, we're, you, you are, you're, youre. An example grouped feature for comparison words may be represented as: ^comparison_words, accept for, acting like, after, ahead of alternative, any, any problem, any problems, argue, as good as, as much, as much, as well, atleast, axcept, beat, beating, before, but, compare, compared, comparison, compete, competeing, competing, eccept for, even close, even if, even though, even though, except, hardly, has it gotten, haven't noticed, havent noticed, in and out, instead, least, less, mistake, moderate, more, never, no problem, no problems, nor, otherwise, rather, reliability issue, reliability issues, should have, so notorious, suppose, supposed, though, until, vs, while, why can't, would have. An example grouped feature for recognizing when a person states that they wish that they had something may be represented as: &wishhad, wish, had (0, 2), which matches the word wish followed by exactly one word followed by the word had.
The dictionary created by the feature extractor 202 of the illustrated example includes an indication of how many times each feature occurred for each classification mode. A classification mode is a classification that may be assigned to a particular document or message. For example, classification modes identifying the sentiment expressed in a document or message may include Positive, Negative, Mixed Opinion, and No Opinion. The dictionary may include an assignment of verticals, which are code names for subject areas (e.g., customer technology, nutrition, gaming, etc.). The dictionary may also store separate occurrence counts for each vertical. For example, if there are four modes (e.g., Positive, Negative, Mixed, No Opinion), the dictionary will include one line for each feature and each line will include one number for each of the four modes. An example dictionary may include the following two entries:
TABLE 1
Example feature dictionary entries.
Mode #1
Mode #2
Mode #3
Mode #4
Feature #1
9000
500
1000
5000
Feature #2
600
3500
300
1700
After the example feature extractor 202 generates the feature dictionary, the feature selector 204 of the example trainer 104 selects a subset of the features in the feature dictionary for analysis. For example, the most significant features may be selected for analysis to reduce the size of the dictionary and to reduce the number of features that must be analyzed in a classification. The example feature selector 204 uses Shannon Information Theory to select approximately 8000 features that are most significant in differentiating between the classification modes. In other examples, any number of features may be selected and any method for choosing the features may be used. The feature selector 204 transmits the revised feature dictionary to the model generator 206.
The model generator 206 receives the feature dictionary revised by the feature selector 204 from the feature selector 204 and prepares the dictionary for use as a classification model. The model generator 206 may adjust values in the dictionary to ensure that no feature is deterministic of a classification. In the illustrated example, when any feature has an occurrence value of zero for any of the classification modes, that occurrence value is replaced with 0.5 to avoid the zero probability causing any classification mode to be statistically ruled out by a single feature. After adjusting the revised dictionary, the model generator 206 stores the dictionary to be used as a model in the datastore 106. According to the illustrated example, the dictionary is stored as a text file in the format shown in Table 1. However, any format and data structure may be used for storing the dictionary.
Returning to
The feature extractor 304 of the illustrated example analyzes each document and extracts features for each sentence in the document. The example statistics generator 306 then determines a set of probabilities, with each probability in the set indicating a likelihood of the sentence belonging to a corresponding one of the classification modes. An example process for determining the probabilities is described in conjunction with
Returning to
The datastore 106 of the illustrated example may be any type of data storage. For example, the datastore 106 may be a database, a tangible memory, a register, a data structure, or any combination of these or other data storage structures. Further, multiple data storage structures may be used to store the index, classification dictionary, or other data of the example system 100.
Flowcharts representative of example machine readable instructions that may be executed to implement some or all of the elements of the system 100 are shown in
In these examples, the machine readable instructions represented by each flowchart may be implemented by one or more programs, routines, or processes, and may be executed by: (a) a processor, such as the microprocessor 1305 shown in the example processor platform 1300 discussed below in connection with
If any of the appended claims is read to cover a purely software implementation, at least one of the trainer 104, classifier 108, search engine 112, feature extractor 202, feature selector 204, model generator 206, feature extractor 302, statistics generator 304, and index generator 308 are hereby expressly defined to include a tangible medium such as, for example, a memory, DVD, CD. Further still, the example trainer 104, classifier 108, and search engine 112 may include data structures, elements, processes and/or devices instead of, or in addition to, those illustrated in the drawings and described above, and/or may include more than one of any or all of the illustrated data structures, elements, processes and/or devices.
Further, although the example machine readable instructions] are described with reference to the flowcharts illustrated in
The conditional probability of a feature occurring in a document given to belong to a specific classification mode is calculated as:
The conditional probability of a message given that a document belongs to a specific classification mode is calculated as:
where n is the number of features in the message.
The probability score indicating how likely an analyzed message occurs in a document belonging to a particular classification is calculated using Bayes law as the joint probability: P(message∩mode)=P(message|mode)P(mode). The probability score is taken as the likelihood that a particular message belongs to a particular classification mode. The probability for a mode may be an overall probability or may be the probability for the mode in the relevant vertical.
Because there may be many features to be multiplied, the probability scores may be very small, which may make them difficult to store. Accordingly, the example statistics generator 306 uses the logarithmic space. Thus, the final probability score of a classification mode for each message is calculated as:
The above calculation is performed for each classification mode to determine each of the probability scores. At this time, a classification mode for each sentence could be determined to be the classification mode with the greatest score. Likewise, a confidence level could be determined by dividing the probability score for the selected classification mode by the probability score for the second most likely classification mode. The confidence in the selected classification mode increases as the confidence level approaches zero.
In to the illustrated example, the statistical data generated by the statistical generator 306 is transmitted to the index generator 308 for use in building an index (block 510).
While the foregoing example of
Once the buckets for each classification mode have been adjusted, a bucket number is assigned to each sentence for each classification mode (block 614). The bucket assigned sentences are then stored in an index in the datastore 106 of
For each document, the search engine 112 compares the summed probability scores of the classification modes. The classification mode with the highest probability score is selected as the classification for the document (block 712). The confidence level for each document is then calculated by dividing the probability score for the selected classification mode with the probability score of the next highest classification mode for that document (block 714). The documents are then sorted by confidence score, the smallest confidence score (i.e., more confident classifications) being listed first (block 716). The example search engine then displays the results of the query with the classification results sorted by confidence score (block 718). The search results may be displayed in any manner. For example, a listing of the results may be displayed without classification information. The classification information may, however, be displayed in response to a request from a user. For example, a graph of the number of documents in each classification mode may be presented and a user may request to view messages from a particular one of the classification modes.
When the results are displayed, a user may view summary information and/or may view classification information associated with a particular document, message, sentence, etc. When a particular document, message, or sentence is displayed with classification information, a user may have the option of correct the computed classifications. An example process for processing correction is described in conjunction with
When there are misclassifications (block 802), the search engine selects the first stored misclassification for processing (block 804). The search engine 112 decreases the feature count in the index for the classification mode that was identified as incorrect (block 806). In the illustrated example, the feature count will not be decreased lower than 0.5 to prevent any feature probability from being set to zero and statistically eliminating a classification mode. The search engine 112 then increases the feature count for the classification mode identified as the correct classification (block 808). Accordingly, the classification system will learn from the incorrect classifications by adjusting the counts stored in the index. The misclassification is removed and control returns to block 802 to determine if there are further misclassifications to process (block 810).
The example buckets 1006 may, for example, be determined by the instructions of blocks 602 to 606. The buckets 1006 are assigned such that each bucket has an equal number of member scores 1004. The mean scores may, for example, be determined by the instructions of block 608 to be the mean of the member scores 1004. Thus, the scores 1004 can be represented by the index of the bucket 1006 to which they are assigned and the index of the bucket can be translated to the representative value (e.g., the mean value).
The example buckets 1008 may, for example, be determined by the instructions of blocks 610 to 618. For example, the buckets 1008 may be determined after adjusting the bucket boundaries to make the mean values more closely representative of the scores in the buckets (e.g., by reducing the deviation of the scores from the mean of the respective bucket. As shown in the illustrated example, the boundaries of bucket 2 in the buckets 1008 has been moved so that bucket 2 only includes sentences 8 and 9 and the boundaries of bucket 3 in the buckets 1008 has been moved so that bucket 3 includes sentences 10-15. Accordingly, the mean values have been recalculated. Thus, adjusting the boundaries of the buckets 1008 has resulted in representative value (e.g., mean values) for bucket 2 that more closely reflects the scores in the bucket. For example, the total difference between the scores in bucket 2 and the mean of bucket 2 in 1006 is |5.24−5.03|+|5.12−5.03|+|4.99−5.03|+|4.76−5.03|=0.61. After the boundary adjustment to obtain 1008, the total difference in bucket 2 is 0.12. Thus, the mean of bucket 2 more closely represents the scores in bucket 2 after the move. Further adjustments could take into account the changes to bucket 1 caused by the move of the boundary for bucket 2. Of course, bucket boundaries may be adjusted for any reason. For example, bucket boundaries may be adjusted until the deviation of the scores does not exceed a threshold, to be exponential, logarithmic, etc. Alternatively, no adjustment of bucket boundaries may be performed when the initial assignment is determined to be satisfactory.
The processor platform 1300 of the example of
The processor platform 1300 also includes an interface circuit 1330. The interface circuit 1330 may be implemented by any type of interface standard, such as a USB interface, a Bluetooth interface, an external memory interface, serial port, general purpose input/output, etc. One or more input devices 1335 and one or more output devices 1340 are connected to the interface circuit 1330.
Although certain methods, apparatus, and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. To the contrary, this patent covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
Krichman, Yakir, Greitzer, Eliyahu, Eden, Tal, Fuks, Michael
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5920854, | Aug 14 1996 | GOOGLE LLC | Real-time document collection search engine with phrase indexing |
5983216, | Sep 12 1997 | GOOGLE LLC | Performing automated document collection and selection by providing a meta-index with meta-index values indentifying corresponding document collections |
6581058, | May 22 1998 | Microsoft Technology Licensing, LLC | Scalable system for clustering of large databases having mixed data attributes |
6640218, | Jun 02 2000 | HUDSON BAY MASTER FUND LTD | Estimating the usefulness of an item in a collection of information |
7802009, | Jun 26 2007 | Microsoft Technology Licensing, LLC | Automatic reverse engineering of message formats from network traces |
20040059708, | |||
20040199498, | |||
20060004622, | |||
20060195534, | |||
20060224552, | |||
20070244690, | |||
20080249764, | |||
20100257117, | |||
20100262568, | |||
20100312769, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 09 2009 | The Nielsen Company (US), LLC | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Jan 08 2016 | 4 years fee payment window open |
Jul 08 2016 | 6 months grace period start (w surcharge) |
Jan 08 2017 | patent expiry (for year 4) |
Jan 08 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 08 2020 | 8 years fee payment window open |
Jul 08 2020 | 6 months grace period start (w surcharge) |
Jan 08 2021 | patent expiry (for year 8) |
Jan 08 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 08 2024 | 12 years fee payment window open |
Jul 08 2024 | 6 months grace period start (w surcharge) |
Jan 08 2025 | patent expiry (for year 12) |
Jan 08 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |