CRFOptimizableByLabelLikelihood likelihood = new CRFOptimizableByLabelLikelihood(crf, labeled);
likelihood.setGaussianPriorVariance(gaussianPriorVariance);
CRFOptimizableByEntropyRegularization regularization = new CRFOptimizableByEntropyRegularization(crf, unlabeled);
regularization.setScalingFactor(this.entRegScalingFactor);
CRFOptimizableByGradientValues regLikelihood = new CRFOptimizableByGradientValues(crf,
new Optimizable.ByGradientValue[] { likelihood, regularization} );
this.bfgs = new LimitedMemoryBFGS(regLikelihood);
converged = false;
logger.info ("CRF about to train with "+numIterations+" iterations");
// sometimes resetting the optimizer helps to find