I am working on a text classification problem, the objective is to classify news articles to their corresponding categories, but in this case the categories are not very broad like, politics, sports, economics, etc., but are very closely related and in some cases even partially overlapping. This is a single category classification problem and not multi-class classification. Below is the details of the method I used.
Data Preparation -
- Broke the documents in list of words.
- Removed stop words, punctuations.
- Performed stemming.
- Replaced numerical values with '#num#' to reduce vocabulary size.
- Transformed the documents into TF-IDF vectors.
- Sorted all words based on their TF-IDF value and selected the top 20K words, these will be used a feature list for the classification algorithm.
- Used SVM.
I have 4,500 categorized documents with 17 categories, and I used 80:20 ration for training and test dataset. I used Sklearn python library.
The best classification accuracy I have managed to get is 61% and I need it to be at least 85%.
Any help on how I can improve the accuracy would be greatly appreciated. Thanks a lot. Please let me know if you need any more details.