public void TestWithNameEvaluationErrorListener() { using (var file = Tests.OpenFile("opennlp/tools/namefind/AnnotatedSentences.txt")) { var sampleStream = new NameSampleStream(new PlainTextByLineStream(file, "ISO-8859-1")); var parameters = new TrainingParameters(); parameters.Set(Parameters.Iterations, "70"); parameters.Set(Parameters.Cutoff, "1"); parameters.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEnt); var cv = new TokenNameFinderCrossValidator("en", Type, parameters, new NameEvaluationErrorListener()); cv.Evaluate(sampleStream, 2); Assert.NotNull(cv.FMeasure); } }
public override void run(string format, string[] args) { base.run(format, args); mlParams = CmdLineUtil.loadTrainingParameters(@params.Params, false); if (mlParams == null) { mlParams = ModelUtil.createTrainingParameters(@params.Iterations.Value, @params.Cutoff.Value); } sbyte[] featureGeneratorBytes = TokenNameFinderTrainerTool.openFeatureGeneratorBytes(@params.Featuregen); IDictionary <string, object> resources = TokenNameFinderTrainerTool.loadResources(@params.Resources); IList <EvaluationMonitor <NameSample> > listeners = new LinkedList <EvaluationMonitor <NameSample> >(); if (@params.Misclassified.Value) { listeners.Add(new NameEvaluationErrorListener()); } TokenNameFinderDetailedFMeasureListener detailedFListener = null; if (@params.DetailedF.Value) { detailedFListener = new TokenNameFinderDetailedFMeasureListener(); listeners.Add(detailedFListener); } TokenNameFinderCrossValidator validator; try { validator = new TokenNameFinderCrossValidator(@params.Lang, @params.Type, mlParams, featureGeneratorBytes, resources, listeners.ToArray()); validator.evaluate(sampleStream, @params.Folds.Value); } catch (IOException e) { throw new TerminateToolException(-1, "IO error while reading training data or indexing data: " + e.Message, e); } finally { try { sampleStream.close(); } catch (IOException) { // sorry that this can fail } } Console.WriteLine("done"); Console.WriteLine(); if (detailedFListener == null) { Console.WriteLine(validator.FMeasure); } else { Console.WriteLine(detailedFListener.ToString()); } }