code: public static GISModel trainModel(int iterations, DataIndexer indexer, boolean printMessagesWhileTraining, boolean smoothing) {
        GISTrainer trainer = new GISTrainer(printMessagesWhileTraining);
        trainer.setSmoothing(smoothing);
        trainer.setSmoothingObservation(SMOOTHING_OBSERVATION);
        return trainer.trainModel(iterations, indexer);
      }
docs: Train a model using the GIS algorithm.
  @param iterations The number of GIS iterations to perform.
  @param indexer The object which will be used for event compilation.
  @param printMessagesWhileTraining Determines whether training status messages are written to STDOUT.
  @param smoothing Defines whether the created trainer will use smoothing while training the model.
  @return The newly trained model, which can be used immediately or saved
  to disk using an opennlp.maxent.io.GISModelWriter object.