// Copyright 2015 Thomas Müller // This file is part of MarMoT, which is licensed under GPLv3. package lemming.lemma.toutanova; import java.util.List; import java.util.Random; import lemming.lemma.LemmaInstance; import marmot.util.edit.EditTreeBuilder; import marmot.util.edit.EditTreeBuilderTrainer; public class EditTreeAlignerTrainer implements AlignerTrainer { private Random random_; private boolean merge_empty_input_segments_; private int num_steps_; private int max_depth_; public EditTreeAlignerTrainer(Random random, boolean merge_empty_input_segments, int num_steps, int max_depth) { random_ = random; merge_empty_input_segments_ = merge_empty_input_segments; num_steps_ = num_steps; max_depth_ = max_depth; } public EditTreeAlignerTrainer() { this(new Random(32), true, 1, -1); } @Override public Aligner train(List<LemmaInstance> instances) { EditTreeBuilder builder = new EditTreeBuilderTrainer(random_, num_steps_, max_depth_).train(instances); return new EditTreeAligner(builder, merge_empty_input_segments_); } }