package hu.ppke.itk.nlpg.purepos.model.internal;
import hu.ppke.itk.nlpg.purepos.common.Util;
import hu.ppke.itk.nlpg.purepos.model.ICombiner;
import java.util.List;
public abstract class LogLinearCombiner implements ICombiner {
/**
*
*/
private static final long serialVersionUID = -3056205583251836854L;
protected List<Double> lambdas;
@Override
public List<Double> getParameters() {
return lambdas;
}
public Double smooth(Double val) {
if (val == null || val == Double.NEGATIVE_INFINITY) {
return Util.UNKOWN_VALUE;
}
return val;
}
@Override
public Double combine(Double... logProbs) {
Double lambda1 = lambdas.get(0), lambda2 = lambdas.get(1);
Double mp1 = logProbs[0], mp2 = logProbs[1];
return mp1 * lambda1 + mp2 * lambda2;
}
}