private void eval(TokenNameFinderModel model, File testData, LANGUAGE lang, int types, double expectedFMeasure) throws IOException { ObjectStream<NameSample> samples = new Conll02NameSampleStream( lang, new MarkableFileInputStreamFactory(testData), types); TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator(new NameFinderME(model)); evaluator.evaluate(samples); Assert.assertEquals(expectedFMeasure, evaluator.getFMeasure().getFMeasure(), 0.0001); }
@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()); }
/** * Evaluate and print the precision, recall and F measure per * named entity class. * * @throws IOException if test corpus not loaded */ public final void detailEvaluate() throws IOException { List<EvaluationMonitor<NameSample>> listeners = new LinkedList<>(); TokenNameFinderDetailedFMeasureListener detailedFListener = new TokenNameFinderDetailedFMeasureListener(); listeners.add(detailedFListener); TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator(nameFinder, listeners.toArray(new TokenNameFinderEvaluationMonitor[listeners.size()])); evaluator.evaluate(testSamples); System.out.println(detailedFListener.toString()); } /**
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners.toArray(new TokenNameFinderEvaluationMonitor[listeners.size()])); evaluator.evaluate(measuredSampleStream); } catch (IOException e) { System.err.println("failed"); System.out.println(evaluator.getFMeasure()); } else { System.out.println(detailedFListener.toString());
@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()); }
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners); evaluator.evaluate(new DocumentToNameSampleStream(trainingSampleStream.getTestSampleStream())); fmeasure.mergeInto(evaluator.getFMeasure());
@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); }
/** * Evaluate and print precision, recall and F measure. * @throws IOException if test corpus not loaded */ public final void evaluate() throws IOException { TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator(nameFinder); evaluator.evaluate(testSamples); System.out.println(evaluator.getFMeasure()); } /**
/** * 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()); }
public final TokenNameFinderModel train(final TrainingParameters params) { if (getNameClassifierFactory() == null) { throw new IllegalStateException( "Classes derived from AbstractNameFinderTrainer must create and fill the AdaptiveFeatureGenerator features!"); } TokenNameFinderModel trainedModel = null; TokenNameFinderEvaluator nerEvaluator = null; try { trainedModel = NameFinderME.train(lang, null, trainSamples, params, nameClassifierFactory); NameFinderME nerTagger = new NameFinderME(trainedModel); nerEvaluator = new TokenNameFinderEvaluator(nerTagger); nerEvaluator.evaluate(testSamples); } catch (IOException e) { System.err.println("IO error while loading traing and test sets!"); e.printStackTrace(); System.exit(1); } System.out.println("Final Result: \n" + nerEvaluator.getFMeasure()); return trainedModel; }
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator(nameFinder); evaluator.evaluate(stream); return Math.max(0, evaluator.getFMeasure().getFMeasure()); } catch (IOException e) { LOG.error("Exception during evaluating the OpenNLP Named Entity Recognizer model.", e);
TokenNameFinderEvaluator nameFinderEvaluator = new TokenNameFinderEvaluator(nameFinder); nameFinderEvaluator.evaluate(evalStream); System.out.println("Results"); System.out.println(nameFinderEvaluator.getFMeasure().toString());
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners.toArray(new TokenNameFinderEvaluationMonitor[listeners.size()])); evaluator.evaluate(measuredSampleStream); } catch (IOException e) { System.err.println("failed"); System.out.println(evaluator.getFMeasure()); } else { System.out.println(detailedFListener.toString());
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners.toArray(new TokenNameFinderEvaluationMonitor[listeners.size()])); evaluator.evaluate(measuredSampleStream); } catch (IOException e) { System.err.println("failed"); System.out.println(evaluator.getFMeasure()); } else { System.out.println(detailedFListener.toString());
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners); evaluator.evaluate(new DocumentToNameSampleStream(trainingSampleStream.getTestSampleStream())); fmeasure.mergeInto(evaluator.getFMeasure()); fmeasures.add(fmeasure);
TokenNameFinderEvaluator evaluator = new TokenNameFinderEvaluator( new NameFinderME(model), listeners); evaluator.evaluate(new DocumentToNameSampleStream(trainingSampleStream.getTestSampleStream())); fmeasure.mergeInto(evaluator.getFMeasure());