Another method important in the emergence and successes of statistical NLP is the support vector machine (SVM) method (Boser et al. 1992; Cortes and Vapnik 1995). The great advantage of this method is that it can in principle distinguish arbitrarily configured classes, by implicitly projecting the original vectors into a higher- (or infinite-) dimensional space, where the classes are linearly separable.  The projection is mediated by a kernel function—a similarity metric on pairs of vectors, such as a polynomial in the dot product of the two vectors. Roughly speaking, the components of the higher-dimensional vector correspond to terms of the kernel function, if it were expanded out as a sum of products of the features of the original, unexpanded pair of vectors. But no actual expansion is performed, and moreover the classification criterion obtained from a given training corpus only requires calculation of the kernel function for the given feature vector (representing the document to be classified) paired with certain special “support vectors”, and comparison of a linear combination of the resulting values to a threshold. The support vectors belong to the training corpus, and define two parallel hyperplanes that separate the classes in question as much as possible (in the expanded space). (Hence this is a “max-margin” discriminative method.) SVMs generally provide excellent accuracy, in part because they allow for nonlinear feature interaction (in the original space), and in part because the max-margin method focuses on class separation, rather than conditional probability modeling of the classes. On the other hand, MaxEnt classifiers are more quickly trainable than SVMs, and often provide satisfactory accuracy.  General references covering the classification methods we have sketched are (Duda et al. 2001; Bishop 2006). 