Implements label likelihood gradient computations for batches of data, can be
easily parallelized.

The gradient computations are the same as that of
CRFOptimizableByLabelLikelihood.

*Note*: Expectations corresponding to each batch of data can be computed in
parallel. During gradient computation, the prior and the constraints are
incorporated into the expectations of the last batch (see
getBatchValue, getBatchValueGradient).
*Note*: This implementation ignores instances with infinite weights (see
getExpectationValue).

gatherConstraints(InstanceList ilist)
Set the constraints by running forward-backward with the output label
sequence provided, thus restricting it to only those paths that agree with
the label sequence.

double

getBatchValue(int batchIndex,
int[] batchAssignments)
Returns the log probability of a batch of training sequence labels and the prior over
parameters, if last batch then incorporate the prior on parameters as well.