listeners.add(new NameEvaluationErrorListener());
listeners.add(new NameEvaluationErrorListener());
@Test public void testNegative() { OutputStream stream = new ByteArrayOutputStream(); TokenNameFinderEvaluationMonitor listener = new NameEvaluationErrorListener(stream); Span[] pred = createSimpleNameSampleB().getNames(); TokenNameFinderEvaluator eval = new TokenNameFinderEvaluator(new DummyNameFinder(pred), listener); eval.evaluateSample(createSimpleNameSampleA()); Assert.assertEquals(0.8, eval.getFMeasure().getFMeasure(), 0.0); Assert.assertNotSame(0, stream.toString().length()); }
@Test public void testPositive() { OutputStream stream = new ByteArrayOutputStream(); TokenNameFinderEvaluationMonitor listener = new NameEvaluationErrorListener(stream); Span[] pred = createSimpleNameSampleA().getNames(); TokenNameFinderEvaluator eval = new TokenNameFinderEvaluator(new DummyNameFinder(pred), listener); eval.evaluateSample(createSimpleNameSampleA()); Assert.assertEquals(1.0, eval.getFMeasure().getFMeasure(), 0.0); Assert.assertEquals(0, stream.toString().length()); }
@Test public void testEvaluator() throws IOException, URISyntaxException { DictionaryNameFinder nameFinder = new DictionaryNameFinder( createDictionary()); TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( nameFinder, new NameEvaluationErrorListener()); ObjectStream<NameSample> sample = createSample(); evaluator.evaluate(sample); sample.close(); FMeasure fmeasure = evaluator.getFMeasure(); Assert.assertTrue(fmeasure.getFMeasure() == 1); Assert.assertTrue(fmeasure.getRecallScore() == 1); }
@Test /* * Test that tries to reproduce jira OPENNLP-466 */ public void testWithNameEvaluationErrorListener() throws Exception { InputStreamFactory in = new ResourceAsStreamFactory(getClass(), "/opennlp/tools/namefind/AnnotatedSentences.txt"); ObjectStream<NameSample> sampleStream = new NameSampleDataStream( new PlainTextByLineStream(in, StandardCharsets.ISO_8859_1)); TrainingParameters mlParams = new TrainingParameters(); mlParams.put(TrainingParameters.ITERATIONS_PARAM, 70); mlParams.put(TrainingParameters.CUTOFF_PARAM, 1); mlParams.put(TrainingParameters.ALGORITHM_PARAM, ModelType.MAXENT.toString()); ByteArrayOutputStream out = new ByteArrayOutputStream(); NameEvaluationErrorListener listener = new NameEvaluationErrorListener(out); Map<String, Object> resources = Collections.emptyMap(); TokenNameFinderCrossValidator cv = new TokenNameFinderCrossValidator("eng", TYPE, mlParams, null, resources, listener); cv.evaluate(sampleStream, 2); Assert.assertTrue(out.size() > 0); Assert.assertNotNull(cv.getFMeasure()); }
private void getEvalListeners(TrainingParameters params) { if (params.getSettings().get("EvaluationType").equalsIgnoreCase("error")) { listeners.add(new NameEvaluationErrorListener()); } if (params.getSettings().get("EvaluationType").equalsIgnoreCase("detailed")) { detailedFListener = new TokenNameFinderDetailedFMeasureListener(); listeners.add(detailedFListener); } }
/** * Evaluate and print every error. * @throws IOException if test corpus not loaded */ public final void evalError() throws IOException { List<EvaluationMonitor<NameSample>> listeners = new LinkedList<>(); listeners.add(new NameEvaluationErrorListener()); TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator(nameFinder, listeners.toArray(new TokenNameFinderEvaluationMonitor[listeners.size()])); evaluator.evaluate(testSamples); System.out.println(evaluator.getFMeasure()); }
listeners.add(new NameEvaluationErrorListener());
listeners.add(new NameEvaluationErrorListener());
listeners.add(new NameEvaluationErrorListener());
listeners.add(new NameEvaluationErrorListener());