示例#1
0
  /**
   * Get a classification model trainer corresponding to a given outcome type and a given algorithm.
   */
  public ClassificationModelTrainer constructTrainer(Config config) {
    config.checkValid(ConfigFactory.defaultReference(), "talismane.machineLearning");
    MachineLearningAlgorithm algorithm =
        MachineLearningAlgorithm.valueOf(config.getString("talismane.machineLearning.algorithm"));
    ClassificationModelTrainer modelTrainer = null;
    switch (algorithm) {
      case MaxEnt:
        MaxentModelTrainer maxentModelTrainer = new MaxentModelTrainer();
        modelTrainer = maxentModelTrainer;
        break;
      case LinearSVM:
      case LinearSVMOneVsRest:
        LinearSVMModelTrainer linearSVMModelTrainer = new LinearSVMModelTrainer();
        modelTrainer = linearSVMModelTrainer;
        break;
      case Perceptron:
        PerceptronClassificationModelTrainer perceptronModelTrainer =
            new PerceptronClassificationModelTrainer();
        modelTrainer = perceptronModelTrainer;
        break;
      default:
        throw new JolicielException("Machine learning algorithm not yet supported: " + algorithm);
    }

    modelTrainer.setParameters(config);
    return modelTrainer;
  }