package hu.ppke.itk.nlpg.purepos.common.lemma;
import hu.ppke.itk.nlpg.docmodel.IToken;
import hu.ppke.itk.nlpg.purepos.model.ICombiner;
import hu.ppke.itk.nlpg.purepos.model.ModelData;
import hu.ppke.itk.nlpg.purepos.model.internal.CompiledModelData;
import java.util.Comparator;
import org.apache.commons.lang3.tuple.Pair;
public class LemmaComparator implements
Comparator<Pair<IToken, ILemmaTransformation<String, Integer>>> {
/**
*
*/
protected CompiledModelData<String, Integer> compiledModelData;
protected ModelData<String, Integer> modelData;
public LemmaComparator(
CompiledModelData<String, Integer> compiledModelData,
ModelData<String, Integer> modelData) {
this.compiledModelData = compiledModelData;
this.modelData = modelData;
}
@Override
public int compare(Pair<IToken, ILemmaTransformation<String, Integer>> t1,
Pair<IToken, ILemmaTransformation<String, Integer>> t2) {
ICombiner combiner = compiledModelData.combiner;
Double finalScore1 = combiner.combine(t1.getKey(), t1.getValue(),
compiledModelData, modelData);
Double finalScore2 = combiner.combine(t2.getKey(), t2.getValue(),
compiledModelData, modelData);
return Double.compare(finalScore1, finalScore2);
}
// private Double combine(Double uniScore, Double suffixScore) {
//
// Double lambda1 = lambdas.get(0), lambda2 = lambdas.get(1);
// return uniScore * lambda1 + suffixScore * lambda2;
// }
}