package edu.stanford.nlp.ie.crf; /** * @author Mengqiu Wang */ public class LinearCliquePotentialFunction implements CliquePotentialFunction { private final double[][] weights; LinearCliquePotentialFunction(double[][] weights) { this.weights = weights; } @Override public double computeCliquePotential(int cliqueSize, int labelIndex, int[] cliqueFeatures, double[] featureVal, int posInSent) { double output = 0.0; for (int m = 0; m < cliqueFeatures.length; m++) { double dotProd = weights[cliqueFeatures[m]][labelIndex]; if (featureVal != null) { dotProd *= featureVal[m]; } output += dotProd; } return output; } }