test accuracy of text classification is too less
You should try to perform cross-validation using all your datasets. Maybe your test set has a completely different distribution than your training set (with such a small number of samples out of all possible subtitles, it is likely). Did you create this dataset?

What is the size of the final input vectors you are using and what size of vocabulary are you using for this?


At least in the case of the SVM, it seems that your model is overfitting and you need to increase the regularization. 
More training data will always help.
Not sure what are your options here.
There are a lot of options based on the small number of samples, you can try using clustering (KNN, K-Mean).