views:

132

answers:

2

We need to decide between Support Vector Machines and Fast Artificial Neural Network for some text processing project.

It includes Contextual Spelling Correction and then tagging the text to certain phrases and their synonyms.

Which will be the right approach? Or is there an alternate to both of these... Something more appropriate than FANN as well as SVM?

+3  A: 

I think you'll get a competitive results from both of the algorithms, so you should aggregate the results... think about ensemble learning.

Update:
I don't know if this is specific enough: use Bayes Optimal Classifier to combine the prediction from each algorithm. You have to train both of your algorithms, then you have to train the Bayes Optimal Classifier to use your algorithms and make optimal predictions based on the input of the algorithms.

Separate your training data in 3:

  • 1st data set will be used to train the (Artificial) Neural Network and the Support Vector Machines.
  • 2nd data set will be used to train the Bayes Optimal Classifier by taking the raw predictions from the ANN and SVM.
  • 3rd data set will be your qualification data set where you will test your trained Bayes Optimal Classifier.
Lirik
Can you help me little more on what all to use exactly?
Arkid
@Akrid I've updated my comment... does that help or do you need more info?
Lirik
Thanks a lot Lirik
Arkid
+3  A: 

You might want to also take a look at maxent classifiers (/log linear models).

They're really popular for NLP problems. Modern implementations, which use quasi-newton methods for optimization rather than the slower iterative scaling algorithms, train more quickly than SVMs. They also seem to be less sensitive to the exact value of the regularization hyperparameter. You should probably only prefer SVMs over maxent, if you'd like to use a kernel to get feature conjunctions for free.

As for SVMs vs. neural networks, using SVMs would probably be better than using ANNs. Like maxent models, training SVMs is a convex optimization problem. This means, given a data set and a particular classifier configuration, SVMs will consistently find the same solution. When training multilayer neural networks, the system can converge to various local minima. So, you'll get better or worse solutions depending on what weights you use to initialize the model. With ANNs, you'll need to perform multiple training runs in order to evaluate how good or bad a given model configuration is.

dmcer
While I love Hal's blog, a drawing made in MS Paint isn't really evidence that logistic regression is less sensitive to hyperparameter selection than SVMs. Very good answer otherwise, though.
StompChicken