/// <summary> /// Evaluates the specified chunk samples. /// </summary> /// <param name="samples">The chunk samples to be evaluated.</param> /// <param name="partitions">The partitions (folds).</param> public void Evaluate(IObjectStream <ChunkSample> samples, int partitions) { var partitioner = new CrossValidationPartitioner <ChunkSample>(samples, partitions); while (partitioner.HasNext) { var trainingSampleStream = partitioner.Next(); var model = ChunkerME.Train(languageCode, trainingSampleStream, parameters, chunkerFactory); var evaluator = new ChunkerEvaluator(new ChunkerME(model), listeners); evaluator.Evaluate(trainingSampleStream.GetTestSampleStream()); FMeasure.MergeInto(evaluator.FMeasure); } }
public void TestDummyFactory() { var model = TrainModel(new DummyChunkerFactory()); Assert.IsInstanceOf<DummyChunkerFactory>(model.Factory); Assert.IsInstanceOf<DummyChunkerFactory.DummyContextGenerator>(model.Factory.GetContextGenerator()); Assert.IsInstanceOf<DummyChunkerFactory.DummySequenceValidator>(model.Factory.GetSequenceValidator()); using (var stream = new MemoryStream()) { model.Serialize(new UnclosableStream(stream)); stream.Seek(0, SeekOrigin.Begin); var fromSerialized = new ChunkerModel(stream); Assert.IsInstanceOf<DummyChunkerFactory>(model.Factory); Assert.IsInstanceOf<DummyChunkerFactory.DummyContextGenerator>( fromSerialized.Factory.GetContextGenerator()); Assert.IsInstanceOf<DummyChunkerFactory.DummySequenceValidator>( fromSerialized.Factory.GetSequenceValidator()); } var chunker = new ChunkerME(model); String[] toks1 = { "Rockwell", "said", "the", "agreement", "calls", "for", "it", "to", "supply", "200", "additional", "so-called", "shipsets", "for", "the", "planes", "." }; String[] tags1 = { "NNP", "VBD", "DT", "NN", "VBZ", "IN", "PRP", "TO", "VB", "CD", "JJ", "JJ", "NNS", "IN", "DT", "NNS", "." }; chunker.Chunk(toks1, tags1); }
public void TestTokenProbMinScoreOpenNLP() { var model = new ChunkerModel(Tests.OpenFile("opennlp/models/en-chunker.bin")); Assert.NotNull(model); var ckr = new ChunkerME(model); Assert.NotNull(ckr); var preds = chunker.TopKSequences(toks1, tags1, -5.55); Assert.AreEqual(4, preds.Length); Assert.AreEqual(expect1.Length, preds[0].Probabilities.Count); Assert.True(expect1.SequenceEqual(preds[0].Outcomes)); Assert.False(expect1.SequenceEqual(preds[1].Outcomes)); }