Class GISTrainer
- java.lang.Object
-
- opennlp.tools.ml.AbstractTrainer
-
- opennlp.tools.ml.AbstractEventTrainer
-
- opennlp.tools.ml.maxent.GISTrainer
-
- All Implemented Interfaces:
Trainer
,EventTrainer
public class GISTrainer extends AbstractEventTrainer
An implementation of Generalized Iterative Scaling (GIS).The reference paper for this implementation was Adwait Ratnaparkhi's tech report at the University of Pennsylvania's Institute for Research in Cognitive Science, and is available at ftp://ftp.cis.upenn.edu/pub/ircs/tr/97-08.ps.Z.
The slack parameter used in the above implementation has been removed by default from the computation and a method for updating with Gaussian smoothing has been added per Investigating GIS and Smoothing for Maximum Entropy Taggers, Clark and Curran (2002). http://acl.ldc.upenn.edu/E/E03/E03-1071.pdf.
The slack parameter can be used by setting
useSlackParameter
totrue
. Gaussian smoothing can be used by settinguseGaussianSmoothing
totrue
.A
Prior
can be used to train models which converge to the distribution which minimizes the relative entropy between the distribution specified by the empirical constraints of the training data and the specified prior. By default, the uniform distribution is used as the prior.
-
-
Field Summary
Fields Modifier and Type Field Description static double
LOG_LIKELIHOOD_THRESHOLD_DEFAULT
static String
LOG_LIKELIHOOD_THRESHOLD_PARAM
static String
MAXENT_VALUE
static String
OLD_LL_THRESHOLD_PARAM
Deprecated.-
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 GISTrainer()
Initializes aGISTrainer
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MaxentModel
doTrain(DataIndexer indexer)
void
init(TrainingParameters trainingParameters, Map<String,String> reportMap)
boolean
isSortAndMerge()
void
setGaussianSigma(double sigmaValue)
Sets whether this trainer will use smoothing while training the model.void
setSmoothing(boolean smooth)
Sets whether this trainer will use smoothing while training the model.void
setSmoothingObservation(double timesSeen)
Sets whether this trainer will use smoothing while training the model.GISModel
trainModel(int iterations, DataIndexer di)
Trains a model using the GIS algorithm.GISModel
trainModel(int iterations, DataIndexer di, int threads)
Trains a model using the GIS algorithm.GISModel
trainModel(int iterations, DataIndexer di, Prior modelPrior, int threads)
Trains a model using the GIS algorithm.GISModel
trainModel(ObjectStream<Event> eventStream)
Trains a model using the GIS algorithm, assuming 100 iterations and no cutoff.GISModel
trainModel(ObjectStream<Event> eventStream, int iterations, int cutoff)
Trains a GIS model on the event in the specified event stream, using the specified number of iterations and the specified count cutoff.-
Methods inherited from class opennlp.tools.ml.AbstractEventTrainer
getDataIndexer, isValid, train, train, validate
-
Methods inherited from class opennlp.tools.ml.AbstractTrainer
getAlgorithm, getCutoff, getIterations, init
-
-
-
-
Field Detail
-
OLD_LL_THRESHOLD_PARAM
@Deprecated public static final String OLD_LL_THRESHOLD_PARAM
Deprecated.- See Also:
- Constant Field Values
-
LOG_LIKELIHOOD_THRESHOLD_PARAM
public static final String LOG_LIKELIHOOD_THRESHOLD_PARAM
- See Also:
- Constant Field Values
-
LOG_LIKELIHOOD_THRESHOLD_DEFAULT
public static final double LOG_LIKELIHOOD_THRESHOLD_DEFAULT
- See Also:
- Constant Field Values
-
MAXENT_VALUE
public static final String MAXENT_VALUE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GISTrainer
public GISTrainer()
Initializes aGISTrainer
.Note:
The resulting instance does not print progress messages about training to STDOUT.
-
-
Method Detail
-
isSortAndMerge
public boolean isSortAndMerge()
- Specified by:
isSortAndMerge
in classAbstractEventTrainer
-
init
public void init(TrainingParameters trainingParameters, Map<String,String> reportMap)
- Specified by:
init
in interfaceTrainer
- Overrides:
init
in classAbstractTrainer
- Parameters:
trainingParameters
- TheTrainingParameters
to use.reportMap
- TheMap
instance used as report map.
-
doTrain
public MaxentModel doTrain(DataIndexer indexer) throws IOException
- Specified by:
doTrain
in classAbstractEventTrainer
- Throws:
IOException
-
setSmoothing
public void setSmoothing(boolean smooth)
Sets whether this trainer will use smoothing while training the model.Note:
This can improve model accuracy, though training will potentially take longer and use more memory. Model size will also be larger.- Parameters:
smooth
-true
if smoothing is desired,false
if not.
-
setSmoothingObservation
public void setSmoothingObservation(double timesSeen)
Sets whether this trainer will use smoothing while training the model.Note:
This can improve model accuracy, though training will potentially take longer and use more memory. Model size will also be larger.- Parameters:
timesSeen
- The "number" of times we want the trainer to imagine it saw a feature that it actually didn't see
-
setGaussianSigma
public void setGaussianSigma(double sigmaValue)
Sets whether this trainer will use smoothing while training the model.Note:
This can improve model accuracy, though training will potentially take longer and use more memory. Model size will also be larger.- Parameters:
sigmaValue
- The Gaussian sigma value used for smoothing.
-
trainModel
public GISModel trainModel(ObjectStream<Event> eventStream) throws IOException
Trains a model using the GIS algorithm, assuming 100 iterations and no cutoff.- Parameters:
eventStream
- TheeventStream
holding the data on which this model will be trained.- Returns:
- A trained
GISModel
which can be used immediately or saved to disk using anGISModelWriter
. - Throws:
IOException
-
trainModel
public GISModel trainModel(ObjectStream<Event> eventStream, int iterations, int cutoff) throws IOException
Trains a GIS model on the event in the specified event stream, using the specified number of iterations and the specified count cutoff.- Parameters:
eventStream
- Astream
of all events.iterations
- The number of iterations to use for GIS.cutoff
- The number of times a feature must occur to be included.- Returns:
- A trained
GISModel
which can be used immediately or saved to disk using anGISModelWriter
. - Throws:
IOException
-
trainModel
public GISModel trainModel(int iterations, DataIndexer di)
Trains a model using the GIS algorithm.- Parameters:
iterations
- The number of GIS iterations to perform.di
- TheDataIndexer
used to compress events in memory.- Returns:
- A trained
GISModel
which can be used immediately or saved to disk using anGISModelWriter
. - Throws:
IllegalArgumentException
- Thrown if parameters were invalid.
-
trainModel
public GISModel trainModel(int iterations, DataIndexer di, int threads)
Trains a model using the GIS algorithm.- Parameters:
iterations
- The number of GIS iterations to perform.di
- TheDataIndexer
used to compress events in memory.threads
- The number of thread to train with. Must be greater than0
.- Returns:
- A trained
GISModel
which can be used immediately or saved to disk using anGISModelWriter
. - Throws:
IllegalArgumentException
- Thrown if parameters were invalid.
-
trainModel
public GISModel trainModel(int iterations, DataIndexer di, Prior modelPrior, int threads)
Trains a model using the GIS algorithm.- Parameters:
iterations
- The number of GIS iterations to perform.di
- TheDataIndexer
used to compress events in memory.modelPrior
- ThePrior
distribution used to train this model.- Returns:
- A trained
GISModel
which can be used immediately or saved to disk using anGISModelWriter
. - Throws:
IllegalArgumentException
- Thrown if parameters were invalid.
-
-