You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2016/10/31 18:23:26 UTC

opennlp git commit: Refactor usage of deprecated training API

Repository: opennlp
Updated Branches:
  refs/heads/trunk 89be1eec8 -> 9f0d4794b


Refactor usage of deprecated training API

See issue OPENNLP-874


Project: http://git-wip-us.apache.org/repos/asf/opennlp/repo
Commit: http://git-wip-us.apache.org/repos/asf/opennlp/commit/9f0d4794
Tree: http://git-wip-us.apache.org/repos/asf/opennlp/tree/9f0d4794
Diff: http://git-wip-us.apache.org/repos/asf/opennlp/diff/9f0d4794

Branch: refs/heads/trunk
Commit: 9f0d4794b9c39f5229c90d2ec33b8f31d2a0e4ba
Parents: 89be1ee
Author: J�rn Kottmann <jo...@apache.org>
Authored: Mon Oct 31 19:21:40 2016 +0100
Committer: J�rn Kottmann <jo...@apache.org>
Committed: Mon Oct 31 19:21:40 2016 +0100

----------------------------------------------------------------------
 .../java/opennlp/tools/chunker/ChunkerME.java    | 10 ++++++----
 .../java/opennlp/tools/cmdline/CmdLineUtil.java  |  4 +++-
 .../tools/doccat/DocumentCategorizerME.java      | 19 ++++++++++++-------
 .../opennlp/tools/parser/chunking/Parser.java    |  9 ++++++---
 .../opennlp/tools/parser/treeinsert/Parser.java  | 14 ++++++++++----
 .../tools/sentdetect/SentenceDetectorME.java     |  8 +++++---
 .../java/opennlp/tools/tokenize/TokenizerME.java | 13 +++++++++----
 .../tools/ml/maxent/MaxentPrepAttachTest.java    | 10 ++++++----
 .../ml/naivebayes/NaiveBayesPrepAttachTest.java  | 10 ++++++----
 .../ml/perceptron/PerceptronPrepAttachTest.java  | 12 ++++++++----
 .../main/java/opennlp/uima/util/OpennlpUtil.java |  3 ++-
 11 files changed, 73 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkerME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkerME.java b/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkerME.java
index 2a5fbc3..11d1c3b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkerME.java
@@ -30,7 +30,6 @@ import opennlp.tools.ml.TrainerFactory.TrainerType;
 import opennlp.tools.ml.model.Event;
 import opennlp.tools.ml.model.MaxentModel;
 import opennlp.tools.ml.model.SequenceClassificationModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.Sequence;
 import opennlp.tools.util.SequenceValidator;
@@ -192,7 +191,7 @@ public class ChunkerME implements Chunker {
     return bestSequence.getProbs();
   }
 
-    public static ChunkerModel train(String lang, ObjectStream<ChunkSample> in,
+  public static ChunkerModel train(String lang, ObjectStream<ChunkSample> in,
       TrainingParameters mlParams, ChunkerFactory factory) throws IOException {
 
     String beamSizeString = mlParams.getSettings().get(BeamSearch.BEAM_SIZE_PARAMETER);
@@ -239,7 +238,7 @@ public class ChunkerME implements Chunker {
 
   /**
    * @deprecated Use
-   *             {@link train(String, ObjectStream, TrainingParameters, ChunkerFactory)}
+   *             {@link ChunkerME#train(String, ObjectStream, TrainingParameters, ChunkerFactory)}
    *             instead.
    */
   public static ChunkerModel train(String lang, ObjectStream<ChunkSample> in,
@@ -250,7 +249,10 @@ public class ChunkerME implements Chunker {
 
     ObjectStream<Event> es = new ChunkerEventStream(in, contextGenerator);
 
-    MaxentModel maxentModel = TrainUtil.train(es, mlParams.getSettings(), manifestInfoEntries);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(
+            mlParams.getSettings(), manifestInfoEntries);
+
+    MaxentModel maxentModel = trainer.train(es);
 
     return new ChunkerModel(lang, maxentModel, manifestInfoEntries);
   }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
index 64881ff..9587c6b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineUtil.java
@@ -326,7 +326,9 @@ public final class CmdLineUtil {
         throw new TerminateToolException(1, "Training parameters file '" + paramFile + "' is invalid!");
       }
 
-      if (!supportSequenceTraining && TrainerFactory.isSupportEventModelSequenceTraining(params.getSettings())) {
+      TrainerFactory.TrainerType trainerType = TrainerFactory.getTrainerType(params.getSettings());
+
+      if (!supportSequenceTraining && trainerType.equals(TrainerFactory.TrainerType.EVENT_MODEL_SEQUENCE_TRAINER)) {
         throw new TerminateToolException(1, "Sequence training is not supported!");
       }
     }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
index b1b9e6e..6ba4e08 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
@@ -26,8 +26,9 @@ import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.tokenize.SimpleTokenizer;
 import opennlp.tools.tokenize.Tokenizer;
 import opennlp.tools.util.ObjectStream;
@@ -190,9 +191,11 @@ public class DocumentCategorizerME implements DocumentCategorizer {
 
     Map<String, String> manifestInfoEntries = new HashMap<String, String>();
 
-    MaxentModel model = TrainUtil.train(
-        new DocumentCategorizerEventStream(samples, featureGenerators),
-        mlParams.getSettings(), manifestInfoEntries);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(
+            mlParams.getSettings(), manifestInfoEntries);
+
+    MaxentModel model = trainer.train(
+        new DocumentCategorizerEventStream(samples, featureGenerators));
 
     return new DoccatModel(languageCode, model, manifestInfoEntries);
   }
@@ -203,9 +206,11 @@ public class DocumentCategorizerME implements DocumentCategorizer {
 
     Map<String, String> manifestInfoEntries = new HashMap<String, String>();
 
-    MaxentModel model = TrainUtil.train(
-        new DocumentCategorizerEventStream(samples, factory.getFeatureGenerators()),
-        mlParams.getSettings(), manifestInfoEntries);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(
+         mlParams.getSettings(), manifestInfoEntries);
+
+    MaxentModel model = trainer.train(
+        new DocumentCategorizerEventStream(samples, factory.getFeatureGenerators()));
 
     return new DoccatModel(languageCode, model, manifestInfoEntries, factory);
   }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/Parser.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/Parser.java b/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/Parser.java
index 159382f..044477b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/Parser.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/Parser.java
@@ -29,10 +29,11 @@ import opennlp.tools.chunker.ChunkerME;
 import opennlp.tools.chunker.ChunkerModel;
 import opennlp.tools.dictionary.Dictionary;
 import opennlp.tools.ml.BeamSearch;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.AbstractModel;
 import opennlp.tools.ml.model.Event;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.ml.model.TwoPassDataIndexer;
 import opennlp.tools.parser.AbstractBottomUpParser;
 import opennlp.tools.parser.ChunkSampleStream;
@@ -279,7 +280,8 @@ public class Parser extends AbstractBottomUpParser {
     System.err.println("Training builder");
     ObjectStream<Event> bes = new ParserEventStream(parseSamples, rules, ParserEventTypeEnum.BUILD, mdict);
     Map<String, String> buildReportMap = new HashMap<String, String>();
-    MaxentModel buildModel = TrainUtil.train(bes, mlParams.getSettings("build"), buildReportMap);
+    EventTrainer buildTrainer = TrainerFactory.getEventTrainer(mlParams.getSettings("build"), buildReportMap);
+    MaxentModel buildModel = buildTrainer.train(bes);
     mergeReportIntoManifest(manifestInfoEntries, buildReportMap, "build");
 
     parseSamples.reset();
@@ -307,7 +309,8 @@ public class Parser extends AbstractBottomUpParser {
     System.err.println("Training checker");
     ObjectStream<Event> kes = new ParserEventStream(parseSamples, rules, ParserEventTypeEnum.CHECK);
     Map<String, String> checkReportMap = new HashMap<String, String>();
-    MaxentModel checkModel = TrainUtil.train(kes, mlParams.getSettings("check"), checkReportMap);
+    EventTrainer checkTrainer = TrainerFactory.getEventTrainer( mlParams.getSettings("check"), checkReportMap);
+    MaxentModel checkModel = checkTrainer.train(kes);
     mergeReportIntoManifest(manifestInfoEntries, checkReportMap, "check");
 
     // TODO: Remove cast for HeadRules

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java b/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java
index 53a4e5f..c1e54ca 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java
@@ -29,10 +29,11 @@ import opennlp.tools.chunker.Chunker;
 import opennlp.tools.chunker.ChunkerME;
 import opennlp.tools.chunker.ChunkerModel;
 import opennlp.tools.dictionary.Dictionary;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.AbstractModel;
 import opennlp.tools.ml.model.Event;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.ml.model.TwoPassDataIndexer;
 import opennlp.tools.parser.AbstractBottomUpParser;
 import opennlp.tools.parser.ChunkSampleStream;
@@ -457,7 +458,9 @@ public class Parser extends AbstractBottomUpParser {
     ObjectStream<Event> bes = new ParserEventStream(parseSamples, rules,
         ParserEventTypeEnum.BUILD, mdict);
     Map<String, String> buildReportMap = new HashMap<String, String>();
-    MaxentModel buildModel = TrainUtil.train(bes, mlParams.getSettings("build"), buildReportMap);
+
+    EventTrainer buildTrainer = TrainerFactory.getEventTrainer(mlParams.getSettings("build"), buildReportMap);
+    MaxentModel buildModel = buildTrainer.train(bes);
     opennlp.tools.parser.chunking.Parser.mergeReportIntoManifest(manifestInfoEntries, buildReportMap, "build");
 
     parseSamples.reset();
@@ -467,7 +470,9 @@ public class Parser extends AbstractBottomUpParser {
     ObjectStream<Event>  kes = new ParserEventStream(parseSamples, rules,
         ParserEventTypeEnum.CHECK);
     Map<String, String> checkReportMap = new HashMap<String, String>();
-    MaxentModel checkModel = TrainUtil.train(kes, mlParams.getSettings("check"), checkReportMap);
+
+    EventTrainer checkTrainer = TrainerFactory.getEventTrainer(mlParams.getSettings("check"), checkReportMap);
+    MaxentModel checkModel = checkTrainer.train(kes);
     opennlp.tools.parser.chunking.Parser.mergeReportIntoManifest(manifestInfoEntries, checkReportMap, "check");
 
     parseSamples.reset();
@@ -477,7 +482,8 @@ public class Parser extends AbstractBottomUpParser {
     ObjectStream<Event>  attachEvents = new ParserEventStream(parseSamples, rules,
         ParserEventTypeEnum.ATTACH);
     Map<String, String> attachReportMap = new HashMap<String, String>();
-    MaxentModel attachModel = TrainUtil.train(attachEvents, mlParams.getSettings("attach"), attachReportMap);
+    EventTrainer attachTrainer = TrainerFactory.getEventTrainer(mlParams.getSettings("attach"), attachReportMap);
+    MaxentModel attachModel = attachTrainer.train(attachEvents);
     opennlp.tools.parser.chunking.Parser.mergeReportIntoManifest(manifestInfoEntries, attachReportMap, "attach");
 
     // TODO: Remove cast for HeadRules

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceDetectorME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceDetectorME.java b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceDetectorME.java
index ccfba4c..fce4e52 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceDetectorME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceDetectorME.java
@@ -27,9 +27,10 @@ import java.util.Map;
 import java.util.Set;
 
 import opennlp.tools.dictionary.Dictionary;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.Event;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.sentdetect.lang.Factory;
 import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.Span;
@@ -323,8 +324,9 @@ public class SentenceDetectorME implements SentenceDetector {
     ObjectStream<Event> eventStream = new SDEventStream(samples,
         sdFactory.getSDContextGenerator(), sdFactory.getEndOfSentenceScanner());
 
-    MaxentModel sentModel = TrainUtil.train(eventStream,
-        mlParams.getSettings(), manifestInfoEntries);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(mlParams.getSettings(), manifestInfoEntries);
+
+    MaxentModel sentModel = trainer.train(eventStream);
 
     return new SentenceModel(languageCode, sentModel, manifestInfoEntries,
         sdFactory);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
index 5219182..3d03943 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
@@ -28,9 +28,10 @@ import java.util.Set;
 import java.util.regex.Pattern;
 
 import opennlp.tools.dictionary.Dictionary;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.Event;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.tokenize.lang.Factory;
 import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.Span;
@@ -246,9 +247,11 @@ public class TokenizerME extends AbstractTokenizer {
         factory.isUseAlphaNumericOptmization(),
         factory.getAlphaNumericPattern(), factory.getContextGenerator());
 
-    MaxentModel maxentModel = TrainUtil.train(eventStream,
+    EventTrainer trainer = TrainerFactory.getEventTrainer(
         mlParams.getSettings(), manifestInfoEntries);
 
+    MaxentModel maxentModel = trainer.train(eventStream);
+
     return new TokenizerModel(maxentModel, manifestInfoEntries,
         factory);
   }
@@ -309,8 +312,10 @@ public class TokenizerME extends AbstractTokenizer {
         factory.createTokenContextGenerator(languageCode,
             getAbbreviations(abbreviations)));
 
-    MaxentModel maxentModel = TrainUtil.train(eventStream,
-        mlParams.getSettings(), manifestInfoEntries);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(
+            mlParams.getSettings(), manifestInfoEntries);
+
+    MaxentModel maxentModel = trainer.train(eventStream);
 
     return new TokenizerModel(languageCode, maxentModel, abbreviations,
         useAlphaNumericOptimization, manifestInfoEntries);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/test/java/opennlp/tools/ml/maxent/MaxentPrepAttachTest.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/test/java/opennlp/tools/ml/maxent/MaxentPrepAttachTest.java b/opennlp-tools/src/test/java/opennlp/tools/ml/maxent/MaxentPrepAttachTest.java
index d7925a0..a969ede 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/ml/maxent/MaxentPrepAttachTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/ml/maxent/MaxentPrepAttachTest.java
@@ -26,9 +26,10 @@ import java.util.Map;
 
 import opennlp.tools.ml.AbstractEventTrainer;
 import opennlp.tools.ml.AbstractTrainer;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.AbstractModel;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.ml.model.TwoPassDataIndexer;
 import opennlp.tools.ml.model.UniformPrior;
 
@@ -64,7 +65,8 @@ public class MaxentPrepAttachTest {
         AbstractEventTrainer.DATA_INDEXER_TWO_PASS_VALUE);
     trainParams.put(AbstractTrainer.CUTOFF_PARAM, Integer.toString(1));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     testModel(model, 0.7997028967566229);
   }
@@ -75,9 +77,9 @@ public class MaxentPrepAttachTest {
     Map<String, String> trainParams = new HashMap<String, String>();
     trainParams.put(AbstractTrainer.ALGORITHM_PARAM, GIS.MAXENT_VALUE);
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     testModel(model, 0.8086159940579352 );
   }
-
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/test/java/opennlp/tools/ml/naivebayes/NaiveBayesPrepAttachTest.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/test/java/opennlp/tools/ml/naivebayes/NaiveBayesPrepAttachTest.java b/opennlp-tools/src/test/java/opennlp/tools/ml/naivebayes/NaiveBayesPrepAttachTest.java
index dd41a20..ef586ec 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/ml/naivebayes/NaiveBayesPrepAttachTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/ml/naivebayes/NaiveBayesPrepAttachTest.java
@@ -26,8 +26,9 @@ import java.util.HashMap;
 import java.util.Map;
 
 import opennlp.tools.ml.AbstractTrainer;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.ml.model.TwoPassDataIndexer;
 
 import org.junit.Test;
@@ -54,7 +55,8 @@ public class NaiveBayesPrepAttachTest {
     trainParams.put(AbstractTrainer.ALGORITHM_PARAM, NaiveBayesTrainer.NAIVE_BAYES_VALUE);
     trainParams.put(AbstractTrainer.CUTOFF_PARAM, Integer.toString(1));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     assertTrue(model instanceof NaiveBayesModel);
 
@@ -68,11 +70,11 @@ public class NaiveBayesPrepAttachTest {
     trainParams.put(AbstractTrainer.ALGORITHM_PARAM, NaiveBayesTrainer.NAIVE_BAYES_VALUE);
     trainParams.put(AbstractTrainer.CUTOFF_PARAM, Integer.toString(5));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     assertTrue(model instanceof NaiveBayesModel);
 
     testModel(model, 0.7945035899975241);
   }
-
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-tools/src/test/java/opennlp/tools/ml/perceptron/PerceptronPrepAttachTest.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/test/java/opennlp/tools/ml/perceptron/PerceptronPrepAttachTest.java b/opennlp-tools/src/test/java/opennlp/tools/ml/perceptron/PerceptronPrepAttachTest.java
index 5015aa7..c21b7d9 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/ml/perceptron/PerceptronPrepAttachTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/ml/perceptron/PerceptronPrepAttachTest.java
@@ -25,8 +25,9 @@ import java.util.HashMap;
 import java.util.Map;
 
 import opennlp.tools.ml.AbstractTrainer;
+import opennlp.tools.ml.EventTrainer;
+import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.ml.model.TrainUtil;
 import opennlp.tools.ml.model.TwoPassDataIndexer;
 
 import org.junit.Test;
@@ -53,7 +54,8 @@ public class PerceptronPrepAttachTest {
     trainParams.put(AbstractTrainer.CUTOFF_PARAM, Integer.toString(1));
     trainParams.put("UseSkippedAveraging", Boolean.toString(true));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     testModel(model, 0.773706362961129);
   }
@@ -67,7 +69,8 @@ public class PerceptronPrepAttachTest {
     trainParams.put(AbstractTrainer.ITERATIONS_PARAM, Integer.toString(500));
     trainParams.put("Tolerance", Double.toString(0.0001d));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     testModel(model, 0.7677642980935875);
   }
@@ -81,7 +84,8 @@ public class PerceptronPrepAttachTest {
     trainParams.put(AbstractTrainer.ITERATIONS_PARAM, Integer.toString(500));
     trainParams.put("StepSizeDecrease", Double.toString(0.06d));
 
-    MaxentModel model = TrainUtil.train(createTrainingStream(), trainParams, null);
+    EventTrainer trainer = TrainerFactory.getEventTrainer(trainParams, null);
+    MaxentModel model = trainer.train(createTrainingStream());
 
     testModel(model, 0.7791532557563754);
   }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/9f0d4794/opennlp-uima/src/main/java/opennlp/uima/util/OpennlpUtil.java
----------------------------------------------------------------------
diff --git a/opennlp-uima/src/main/java/opennlp/uima/util/OpennlpUtil.java b/opennlp-uima/src/main/java/opennlp/uima/util/OpennlpUtil.java
index ccc5241..59e8566 100644
--- a/opennlp-uima/src/main/java/opennlp/uima/util/OpennlpUtil.java
+++ b/opennlp-uima/src/main/java/opennlp/uima/util/OpennlpUtil.java
@@ -86,7 +86,8 @@ final public class OpennlpUtil {
         throw new ResourceInitializationException(new Exception("Training parameters file is invalid!"));
       }
 
-      if (!isSequenceTrainingAllowed && TrainerFactory.isSequenceTraining(params.getSettings())) {
+      TrainerFactory.TrainerType trainerType = TrainerFactory.getTrainerType(params.getSettings());
+      if (!isSequenceTrainingAllowed && TrainerFactory.TrainerType.SEQUENCE_TRAINER.equals(trainerType)) {
         throw new ResourceInitializationException(new Exception("Sequence training is not supported!"));
       }
     }