// Copyright 2015 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package lemming.lemma;
import java.util.List;
import lemming.lemma.toutanova.EditTreeAligner;
import marmot.util.FeatUtil;
import marmot.util.SymbolTable;
import marmot.util.edit.EditTree;
import marmot.util.edit.EditTreeBuilder;
public class LemmaCandidate {
private double score_;
private int[] feature_indexes_;
private short[] lemma_chars_;
private List<Integer> alignment_;
private Integer tree_index_;
public void setScore(double score) {
score_ = score;
}
public double getScore() {
return score_;
}
public int[] getFeatureIndexes() {
return feature_indexes_;
}
public void setFeatureIndexes(int[] feature_indexes) {
feature_indexes_ = feature_indexes;
}
public short[] getLemmaChars(SymbolTable<Character> char_table, String lemma, boolean insert) {
if (lemma_chars_ == null) {
lemma_chars_ = FeatUtil.getCharIndexes(lemma, char_table, insert);
}
return lemma_chars_;
}
public List<Integer> getAlignment(EditTreeAligner aligner, String form, String lemma) {
if (alignment_ == null) {
alignment_ = aligner.align(form, lemma);
}
return alignment_;
}
public Integer getTreeIndex(EditTreeBuilder builder, String form, String lemma, SymbolTable<EditTree> tree_table, boolean insert) {
if (tree_index_ == null) {
EditTree tree = builder.build(form, lemma);
tree_index_ = tree_table.toIndex(tree, -1, insert);
}
return tree_index_;
}
}