docs: public static <I, O> FactorGraphSequenceTagger<I, O> trainSequenceModel(
        ParametricFactorGraph sequenceModelFamily, List<Example<DynamicAssignment, DynamicAssignment>> examples,
        Class<O> outputClass, FeatureVectorGenerator<LocalContext<I>> featureGen, 
        Function<? super LocalContext<I>, ? extends Object> inputGen, I startInput, O startLabel,
        GradientOptimizer optimizer, boolean useMaxMargin) {
  
      // Generate the training data and estimate parameters.
      SufficientStatistics parameters = estimateParameters(sequenceModelFamily, examples,
          optimizer, useMaxMargin);
  
      DynamicFactorGraph factorGraph = sequenceModelFamily.getModelFromParameters(parameters);
      return new FactorGraphSequenceTagger<I, O>(sequenceModelFamily, parameters,
          factorGraph, featureGen, inputGen, outputClass, new JunctionTree(), new JunctionTree(true), 
          startInput, startLabel);
    }