From 6618b269933a363af1b73714df8a07832cdcc2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Kottmann?= Date: Sun, 29 Jan 2017 11:44:48 +0100 Subject: [PATCH] OPENNLP-371: Throw an exception if training data only has one outcome --- .../main/java/opennlp/tools/ml/AbstractEventTrainer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/AbstractEventTrainer.java b/opennlp-tools/src/main/java/opennlp/tools/ml/AbstractEventTrainer.java index b73df3717..c465f889c 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/ml/AbstractEventTrainer.java +++ b/opennlp-tools/src/main/java/opennlp/tools/ml/AbstractEventTrainer.java @@ -25,6 +25,7 @@ import opennlp.tools.ml.model.Event; import opennlp.tools.ml.model.HashSumEventStream; import opennlp.tools.ml.model.MaxentModel; +import opennlp.tools.util.InsufficientTrainingDataException; import opennlp.tools.util.ObjectStream; import opennlp.tools.util.TrainingParameters; @@ -68,6 +69,11 @@ public final MaxentModel train(DataIndexer indexer) throws IOException { if (!isValid()) { throw new IllegalArgumentException("trainParams are not valid!"); } + + if (indexer.getOutcomeLabels().length <= 1) { + throw new InsufficientTrainingDataException("Training data must contain more than one outcome"); + } + MaxentModel model = doTrain(indexer); addToReport(AbstractTrainer.TRAINER_TYPE_PARAM, EventTrainer.EVENT_VALUE); return model;