A question for anyone who has used the Java library Mallet's SimpleTagger class for Conditional Random Fields (CRF). Assume that I'm already using the multi-thread option for the maximum number of CPUs I have available (this is the case): where would I start, and would kind of things should I try if I need it to run faster?
A related question is whether there is a way to do something similar to Stochastic Gradient Descent, which would speed up the training process?
The type of training I want to do is simple:
Input:
Feature1 ... FeatureN SequenceLabel
...
Test Data:
Feature1 ... FeatureN
...
Output:
Feature1 ... FeatureN SequenceLabel
...
(Where features are the output of processing I have done on the data in my own code.)
I've had problems getting any CRF classifier other than Mallet to approximately work, but I may have to backtrack again and revisit one of the other implementations, or try a new one.