private double accuracyFor(InstanceList examples) { TokenAccuracyEvaluator teval = new TokenAccuracyEvaluator(examples, "train"); teval.evaluate(lastTrainer); return teval.getAccuracy("train"); }
public SyllTagModel train(Collection<Alignment> trainInputs, Collection<Alignment> testInputs, boolean eval) { Pipe pipe = makePipe(); InstanceList trainExamples = makeExamplesFromAlignsWithPipe(trainInputs, pipe); InstanceList testExamples = null; if (testInputs != null) { testExamples = makeExamplesFromAlignsWithPipe(testInputs, pipe); } log.info("Training test-time syll aligner on whole data..."); TransducerTrainer trainer = trainOnce(pipe, trainExamples); if (eval) { TokenAccuracyEvaluator evaler = new TokenAccuracyEvaluator(trainExamples, "traindata"); evaler.evaluate(trainer); double trainAcc = evaler.getAccuracy("traindata"); double testAcc = 0.0; if (testExamples != null) { TokenAccuracyEvaluator evaler2 = new TokenAccuracyEvaluator(testExamples, "testdata"); evaler2.evaluate(trainer); testAcc = evaler2.getAccuracy("testdata"); } log.info("Train data accuracy = " + trainAcc + ", test data accuracy = " + testAcc); } return new SyllTagModel((CRF) trainer.getTransducer()); }
public void testTokenAccuracy() { Pipe p = makeSpacePredictionPipe(); InstanceList instances = new InstanceList(p); instances.addThruPipe(new ArrayIterator(data)); InstanceList[] lists = instances.split(new Random(777), new double[] { .5, .5 }); CRF crf = new CRF(p.getDataAlphabet(), p.getTargetAlphabet()); crf.addFullyConnectedStatesForLabels(); CRFTrainerByLabelLikelihood crft = new CRFTrainerByLabelLikelihood(crf); crft.setUseSparseWeights(true); crft.trainIncremental(lists[0]); TokenAccuracyEvaluator eval = new TokenAccuracyEvaluator(lists, new String[] { "Train", "Test" }); eval.evaluateInstanceList(crft, lists[1], "Test"); assertEquals(0.9409, eval.getAccuracy("Test"), 0.001); }
public void testTokenAccuracy() { Pipe p = makeSpacePredictionPipe(); InstanceList instances = new InstanceList(p); instances.addThruPipe(new ArrayIterator(data)); InstanceList[] lists = instances.split(new Random(777), new double[] { .5, .5 }); CRF crf = new CRF(p.getDataAlphabet(), p.getTargetAlphabet()); crf.addFullyConnectedStatesForLabels(); CRFTrainerByLabelLikelihood crft = new CRFTrainerByLabelLikelihood(crf); crft.setUseSparseWeights(true); crft.trainIncremental(lists[0]); TokenAccuracyEvaluator eval = new TokenAccuracyEvaluator(lists, new String[] { "Train", "Test" }); eval.evaluateInstanceList(crft, lists[1], "Test"); assertEquals(0.9409, eval.getAccuracy("Test"), 0.001); }