Package opennlp.tools.ml.perceptron
Class PerceptronTrainer
- java.lang.Object
-
- opennlp.tools.ml.AbstractTrainer
-
- opennlp.tools.ml.AbstractEventTrainer
-
- opennlp.tools.ml.perceptron.PerceptronTrainer
-
- All Implemented Interfaces:
Trainer
,EventTrainer
public class PerceptronTrainer extends AbstractEventTrainer
Trainsmodels
using the perceptron algorithm.Each outcome is represented as a binary perceptron classifier. This supports standard (integer) weighting as well average weighting as described in:
Discriminative Training Methods for Hidden Markov Models: Theory and Experiments with the Perceptron Algorithm. Michael Collins, EMNLP 2002.
- See Also:
PerceptronModel
,AbstractEventTrainer
-
-
Field Summary
Fields Modifier and Type Field Description static String
PERCEPTRON_VALUE
static double
TOLERANCE_DEFAULT
-
Fields inherited from class opennlp.tools.ml.AbstractEventTrainer
DATA_INDEXER_ONE_PASS_REAL_VALUE, DATA_INDEXER_ONE_PASS_VALUE, DATA_INDEXER_PARAM, DATA_INDEXER_TWO_PASS_VALUE
-
Fields inherited from class opennlp.tools.ml.AbstractTrainer
ALGORITHM_PARAM, CUTOFF_DEFAULT, CUTOFF_PARAM, ITERATIONS_DEFAULT, ITERATIONS_PARAM, TRAINER_TYPE_PARAM, VERBOSE_DEFAULT, VERBOSE_PARAM
-
Fields inherited from interface opennlp.tools.ml.EventTrainer
EVENT_VALUE
-
-
Constructor Summary
Constructors Constructor Description PerceptronTrainer()
Instantiates aPerceptronTrainer
with default training parameters.PerceptronTrainer(TrainingParameters parameters)
Instantiates aPerceptronTrainer
with specificTrainingParameters
.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description AbstractModel
doTrain(DataIndexer indexer)
boolean
isSortAndMerge()
boolean
isValid()
Deprecated.Usevalidate()
instead.void
setSkippedAveraging(boolean averaging)
Enables skipped averaging, this flag changes the standard averaging to special averaging instead.void
setStepSizeDecrease(double decrease)
Enables and sets step size decrease.void
setTolerance(double tolerance)
Specifies the tolerance.AbstractModel
trainModel(int iterations, DataIndexer di, int cutoff)
Trains aPerceptronModel
with given parameters.AbstractModel
trainModel(int iterations, DataIndexer di, int cutoff, boolean useAverage)
Trains aPerceptronModel
with given parameters.void
validate()
Checks the configuredparameters
.-
Methods inherited from class opennlp.tools.ml.AbstractEventTrainer
getDataIndexer, train, train
-
Methods inherited from class opennlp.tools.ml.AbstractTrainer
getAlgorithm, getCutoff, getIterations, init, init
-
-
-
-
Field Detail
-
PERCEPTRON_VALUE
public static final String PERCEPTRON_VALUE
- See Also:
- Constant Field Values
-
TOLERANCE_DEFAULT
public static final double TOLERANCE_DEFAULT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PerceptronTrainer
public PerceptronTrainer()
Instantiates aPerceptronTrainer
with default training parameters.
-
PerceptronTrainer
public PerceptronTrainer(TrainingParameters parameters)
Instantiates aPerceptronTrainer
with specificTrainingParameters
.- Parameters:
parameters
- Theparameter
to use.
-
-
Method Detail
-
validate
public void validate()
Checks the configuredparameters
. If a subclass overrides this, it should callsuper.validate();
.- Overrides:
validate
in classAbstractEventTrainer
- Throws:
IllegalArgumentException
- Thrown if the algorithm name is not equal to {PERCEPTRON_VALUE
}.
-
isValid
@Deprecated public boolean isValid()
Deprecated.Usevalidate()
instead.- Overrides:
isValid
in classAbstractEventTrainer
- Returns:
true
if the validation of the internal configuration succeeds,false
otherwise.
-
isSortAndMerge
public boolean isSortAndMerge()
- Specified by:
isSortAndMerge
in classAbstractEventTrainer
-
doTrain
public AbstractModel doTrain(DataIndexer indexer) throws IOException
- Specified by:
doTrain
in classAbstractEventTrainer
- Throws:
IOException
-
setTolerance
public void setTolerance(double tolerance)
Specifies the tolerance. If the change in training set accuracy is less than this, stop iterating.- Parameters:
tolerance
- The level of tolerance. Must not be negative.- Throws:
IllegalArgumentException
- Thrown if parameters are invalid.
-
setStepSizeDecrease
public void setStepSizeDecrease(double decrease)
Enables and sets step size decrease. The step size is decreased every iteration by the specified value.- Parameters:
decrease
- The step size decrease in percent. Must not be negative.- Throws:
IllegalArgumentException
- Thrown if parameters are invalid.
-
setSkippedAveraging
public void setSkippedAveraging(boolean averaging)
Enables skipped averaging, this flag changes the standard averaging to special averaging instead.If we are doing averaging, and the current iteration is one of the first 20, or if it is a perfect square, then updated the summed parameters.
The reason we don't take all of them is that the parameters change less toward the end of training, so they drown out the contributions of the more volatile early iterations. The use of perfect squares allows us to sample from successively farther apart iterations.
- Parameters:
averaging
- Whether to skip 'averaging', or not.
-
trainModel
public AbstractModel trainModel(int iterations, DataIndexer di, int cutoff)
Trains aPerceptronModel
with given parameters.- Parameters:
iterations
- The number of iterations to use for training.di
- TheDataIndexer
used as data input.cutoff
- The {AbstractTrainer.CUTOFF_PARAM
} value to use for training.- Returns:
- A valid, trained
perceptron model
.
-
trainModel
public AbstractModel trainModel(int iterations, DataIndexer di, int cutoff, boolean useAverage)
Trains aPerceptronModel
with given parameters.- Parameters:
iterations
- The number of iterations to use for training.di
- TheDataIndexer
used as data input.cutoff
- The {AbstractTrainer.CUTOFF_PARAM
} value to use for training.useAverage
- Whether to use 'averaging', or not. See {setSkippedAveraging(boolean)
} for details.- Returns:
- A valid, trained
perceptron model
.
-
-