In this post, I want to show how I use NLTK for preprocessing and tokenization, but then apply machine learning techniques (e.g. building a linear SVM using stochastic gradient descent) using Scikit-Learn.
LIBLINEAR is a linear classifier for data with millions of instances and features. It supports L2-regularized logistic regression (LR), L2-loss linear SVM, and L1-loss linear SVM.
Main features of LIBLINEAR include
* Same data format as LIBSVM, our general-purpose SVM solver, and also similar usage
* Multi-class classification: 1) one-vs-the rest, 2) Crammer & Singer
* Cross validation for model selection
* Probability estimates (logistic regression only)
* Weights for unbalanced data
* MATLAB/Octave, Java interfaces
X. Li, B. Liu, and S. Ng. Proceedings of the 2010 Conference on Empirical Methods in Natural Language Processing, page 218--228. Stroudsburg, PA, USA, Association for Computational Linguistics, (2010)
T. Joachims. Proceedings of ECML-98, 10th European Conference on Machine Learning, 1398, page 137--142. Chemnitz, DE, Springer Verlag, Heidelberg, DE, (1998)
A. Sun, E. Lim, and W. Ng. Proceedings of the 4th international workshop on Web information and data management, page 96--99. New York, NY, USA, ACM, (2002)