Package opennlp.tools.ml.perceptron

## Class SimplePerceptronSequenceTrainer

- java.lang.Object
- - opennlp.tools.ml.AbstractTrainer
  - - opennlp.tools.ml.AbstractEventModelSequenceTrainer
    - - opennlp.tools.ml.perceptron.SimplePerceptronSequenceTrainer

- All Implemented Interfaces:
    `Trainer`, `EventModelSequenceTrainer<Event>`

      public class SimplePerceptronSequenceTrainer
      extends AbstractEventModelSequenceTrainer

  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:
    `PerceptronModel`, `AbstractEventModelSequenceTrainer`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `PERCEPTRON_SEQUENCE_VALUE` |

    - ### Fields inherited from class opennlp.tools.ml.AbstractTrainer

      `ALGORITHM_PARAM, CUTOFF_DEFAULT, CUTOFF_PARAM, ITERATIONS_DEFAULT, ITERATIONS_PARAM, TRAINER_TYPE_PARAM`

    - ### Fields inherited from interface opennlp.tools.ml.EventModelSequenceTrainer

      `SEQUENCE_VALUE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SimplePerceptronSequenceTrainer()` | Instantiates a `SimplePerceptronSequenceTrainer` with a default configuration of training parameters.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `AbstractModel` | `doTrain​(SequenceStream<Event> events)` |
    `boolean` | `isValid()` | Deprecated. Use `validate()` instead.
    `void` | `nextIteration​(int iteration)` |
    `AbstractModel` | `trainModel​(int iterations, SequenceStream<Event> sequenceStream, int cutoff, boolean useAverage)` | Trains a `PerceptronModel` with given parameters.
    `void` | `validate()` | Checks the configured `parameters`.

    - ### Methods inherited from class opennlp.tools.ml.AbstractEventModelSequenceTrainer

      `train`

    - ### Methods inherited from class opennlp.tools.ml.AbstractTrainer

      `getAlgorithm, getCutoff, getIterations, init, init`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface opennlp.tools.commons.Trainer

      `init`

- - ### Field Detail

    - #### PERCEPTRON_SEQUENCE_VALUE

          public static final String PERCEPTRON_SEQUENCE_VALUE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SimplePerceptronSequenceTrainer

          public SimplePerceptronSequenceTrainer()

      Instantiates a `SimplePerceptronSequenceTrainer` with a default configuration of training parameters.

  - ### Method Detail

    - #### validate

          public void validate()

      Checks the configured `parameters`. If a subclass overrides this, it should call `super.validate();`.
      Overrides:
        `validate` in class `AbstractTrainer`
      Throws:
        `IllegalArgumentException` - Thrown if the algorithm name is not equal to {`PERCEPTRON_SEQUENCE_VALUE`}.

    - #### isValid

          @Deprecated
          public boolean isValid()

      Deprecated.
      Use `validate()` instead.
      Overrides:
        `isValid` in class `AbstractTrainer`
      Returns:
        `true` if the validation of the internal configuration succeeds, `false` otherwise.

    - #### doTrain

          public AbstractModel doTrain​(SequenceStream<Event> events)
                                throws IOException

      Specified by:
        `doTrain` in class `AbstractEventModelSequenceTrainer`
      Throws:
        `IOException`

    - #### trainModel

          public AbstractModel trainModel​(int iterations,
                                          SequenceStream<Event> sequenceStream,
                                          int cutoff,
                                          boolean useAverage)
                                   throws IOException

      Trains a `PerceptronModel` with given parameters.
      Parameters:
        `iterations` - The number of iterations to use for training.
        `sequenceStream` - The `SequenceStream` used as data input.
        `cutoff` - The {`AbstractTrainer.CUTOFF_PARAM`} value to use for training.
        `useAverage` - Whether to use 'averaging', or not.
      Returns:
        A valid, trained `perceptron model`.
      Throws:
        `IOException`

    - #### nextIteration

          public void nextIteration​(int iteration)
                             throws IOException

      Throws:
        `IOException`