1. A computer-readable storage medium encoded with computer-executable instructions for causing a computer to perform steps comprising: forming a separate cluster of tokens for each possible token that can appear in training data; determining whether to combine a first cluster of tokens and a second cluster of tokens to form a new cluster of tokens using mutual information wherein the mutual information is based on the number of times tokens from the new cluster of tokens appear next to tokens from another cluster of tokens in the training data; building a decision tree by utilizing at least one of the clusters of tokens to form a question for a node in the decision tree, the question asking whether a token in an input is found within the at least one cluster; and using the decision tree to identify a leaf node of the tree based on an input.