9. A system comprising: a memory comprising instructions executable by one or more processors; and the one or more processors coupled to the memory and operable to execute the instructions, the one or more processors being operable when executing the instructions to: construct a classifier based on a plurality of training keywords, wherein: each training keyword comprises one or more words and has a corresponding training keyword document, and construct the classifier comprises: for each training keyword of the plurality of training keywords, annotate the training keyword with one or more labels of a plurality of labels, each label having a corresponding label document; and for each label annotating the training keyword, determine a correctness of the label; calculate a first index-wise product between a word count vector of the training keyword document corresponding to the training keyword and a word count vector of the label document corresponding to the label; and form a pair of the correctness and the first index-wise product; and train the classifier using one or more pairs of the correctness and the first index-wise product; and for each keyword of a plurality of keywords, the keyword being annotated with one or more labels of the plurality of labels, for each label annotating the keyword, calculate a second index-wise product between a word count vector of the keyword document corresponding to the keyword and a word count vector of the label document corresponding to the label; and predict whether the label annotating the keyword is correct using the classifier with the second index-wise product as an input to the classifier.
9. A system comprising: a memory comprising instructions executable by one or more processors; and the one or more processors coupled to the memory and operable to execute the instructions, the one or more processors being operable when executing the instructions to: construct a classifier based on a plurality of training keywords, wherein: each training keyword comprises one or more words and has a corresponding training keyword document, and construct the classifier comprises: for each training keyword of the plurality of training keywords, annotate the training keyword with one or more labels of a plurality of labels, each label having a corresponding label document; and for each label annotating the training keyword, determine a correctness of the label; calculate a first index-wise product between a word count vector of the training keyword document corresponding to the training keyword and a word count vector of the label document corresponding to the label; and form a pair of the correctness and the first index-wise product; and train the classifier using one or more pairs of the correctness and the first index-wise product; and for each keyword of a plurality of keywords, the keyword being annotated with one or more labels of the plurality of labels, for each label annotating the keyword, calculate a second index-wise product between a word count vector of the keyword document corresponding to the keyword and a word count vector of the label document corresponding to the label; and predict whether the label annotating the keyword is correct using the classifier with the second index-wise product as an input to the classifier. 12. The system of claim 9 , wherein the one or more processors are further operable when executing the instructions to: define a plurality of categories, each category being identified by one or more labels of the plurality of labels; and for each category, define a plurality of subcategories, each subcategory being identified by one or more labels of the plurality of labels; generate one or more keywords of the plurality of keywords; and for each keyword generated for the category, annotate the keyword with the one or more labels identifying the category; and annotate the keyword with one of the one or more labels identifying each subcategory in the category.