Lenient (overlap) evaluation. Only works when evaluating one instancelist
Usage:
CRFTrainerByThreadedLabelLikelihood trainer = new CRFTrainerByThreadedLabelLikelihood(
crf, 4);
String[] tags = new String[] { "I" }; // *I*nside, *O*utside
String[] continueTags = tags; // same
trainer.train(trainingSet);
MultiSegmentationEvaluator evalOrig = new MultiSegmentationEvaluator(
new InstanceList[] { testingSet },//
new String[] { "thetest" }, tags, continueTags);
evalOrig.evaluate(trainer); // eval at end of training
MyLenientMultiSegmentationEvaluator evalLenient = new MyLenientMultiSegmentationEvaluator(
new InstanceList[] { testingSet },//
new String[] { "thelenienttest" }, tags, continueTags, true);
evalLenient.evaluate(trainer);
System.out.println("Strict eval:" + eval + ", lenient eval:" + evalLenient);