Class SimplePerceptronSequenceTrainer
java.lang.Object
opennlp.tools.ml.AbstractTrainer<opennlp.tools.util.TrainingParameters>
opennlp.tools.ml.AbstractEventModelSequenceTrainer<opennlp.tools.util.TrainingParameters>
opennlp.tools.ml.perceptron.SimplePerceptronSequenceTrainer
- All Implemented Interfaces:
opennlp.tools.commons.Trainer<opennlp.tools.util.TrainingParameters>, opennlp.tools.ml.EventModelSequenceTrainer<opennlp.tools.ml.model.Event, opennlp.tools.util.TrainingParameters>
public class SimplePerceptronSequenceTrainer
extends opennlp.tools.ml.AbstractEventModelSequenceTrainer<opennlp.tools.util.TrainingParameters>
Trains
models with sequences using the perceptron algorithm.
Each outcome is represented as a binary perceptron classifier. This supports standard (integer) weighting as well average weighting.
Sequence information is used in a simplified was to that described in: Discriminative Training Methods for Hidden Markov Models: Theory and Experiments with the Perceptron Algorithm. Michael Collins, EMNLP 2002.
Specifically only updates are applied to tokens which were incorrectly tagged by a sequence tagger rather than to all feature across the sequence which differ from the training sequence.
- See Also:
-
Field Summary
FieldsFields inherited from interface opennlp.tools.ml.EventModelSequenceTrainer
SEQUENCE_VALUE -
Constructor Summary
ConstructorsConstructorDescriptionInstantiates aSimplePerceptronSequenceTrainerwith a default configuration of training parameters. -
Method Summary
Modifier and TypeMethodDescriptionopennlp.tools.ml.model.AbstractModeldoTrain(opennlp.tools.ml.model.SequenceStream<opennlp.tools.ml.model.Event> events) voidnextIteration(int iteration) opennlp.tools.ml.model.AbstractModeltrainModel(int iterations, opennlp.tools.ml.model.SequenceStream<opennlp.tools.ml.model.Event> sequenceStream, int cutoff, boolean useAverage) Trains aPerceptronModelwith given parameters.voidvalidate()Methods inherited from class opennlp.tools.ml.AbstractEventModelSequenceTrainer
trainMethods inherited from class opennlp.tools.ml.AbstractTrainer
getAlgorithm, getCutoff, getIterations, getTrainingConfiguration, init, initMethods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface opennlp.tools.commons.Trainer
init, init
-
Field Details
-
PERCEPTRON_SEQUENCE_VALUE
- See Also:
-
-
Constructor Details
-
SimplePerceptronSequenceTrainer
public SimplePerceptronSequenceTrainer()Instantiates aSimplePerceptronSequenceTrainerwith a default configuration of training parameters.
-
-
Method Details
-
validate
public void validate()- Overrides:
validatein classopennlp.tools.ml.AbstractTrainer<opennlp.tools.util.TrainingParameters>- Throws:
IllegalArgumentException- Thrown if the algorithm name is not equal to {PERCEPTRON_SEQUENCE_VALUE}.
-
doTrain
public opennlp.tools.ml.model.AbstractModel doTrain(opennlp.tools.ml.model.SequenceStream<opennlp.tools.ml.model.Event> events) throws IOException - Specified by:
doTrainin classopennlp.tools.ml.AbstractEventModelSequenceTrainer<opennlp.tools.util.TrainingParameters>- Throws:
IOException
-
trainModel
public opennlp.tools.ml.model.AbstractModel trainModel(int iterations, opennlp.tools.ml.model.SequenceStream<opennlp.tools.ml.model.Event> sequenceStream, int cutoff, boolean useAverage) throws IOException Trains aPerceptronModelwith given parameters.- Parameters:
iterations- The number of iterations to use for training.sequenceStream- Theopennlp.tools.ml.model.SequenceStream<opennlp.tools.ml.model.Event>used as data input.cutoff- The {Parameters.CUTOFF_PARAM} value to use for training.useAverage- Whether to use 'averaging', or not.- Returns:
- A valid, trained
perceptron model. - Throws:
IOException
-
nextIteration
- Throws:
IOException
-