public virtual Edu.Stanford.Nlp.IE.Crf.FloatFactorTable SumOutEnd() { Edu.Stanford.Nlp.IE.Crf.FloatFactorTable ft = new Edu.Stanford.Nlp.IE.Crf.FloatFactorTable(numClasses, windowSize - 1); for (int i = 0; i < table.Length; i++) { ft.LogIncrementValue(i / numClasses, table[i]); } return(ft); }
public virtual void MultiplyInEnd(Edu.Stanford.Nlp.IE.Crf.FloatFactorTable other) { int divisor = SloppyMath.IntPow(numClasses, other.WindowSize()); for (int i = 0; i < table.Length; i++) { table[i] += other.GetValue(i % divisor); } }
public virtual void DivideBy(Edu.Stanford.Nlp.IE.Crf.FloatFactorTable other) { for (int i = 0; i < table.Length; i++) { if (table[i] != float.NegativeInfinity || other.table[i] != float.NegativeInfinity) { table[i] -= other.table[i]; } } }
public virtual Edu.Stanford.Nlp.IE.Crf.FloatFactorTable SumOutFront() { Edu.Stanford.Nlp.IE.Crf.FloatFactorTable ft = new Edu.Stanford.Nlp.IE.Crf.FloatFactorTable(numClasses, windowSize - 1); int mod = SloppyMath.IntPow(numClasses, windowSize - 1); for (int i = 0; i < table.Length; i++) { ft.LogIncrementValue(i % mod, table[i]); } return(ft); }
public static void Main(string[] args) { Edu.Stanford.Nlp.IE.Crf.FloatFactorTable ft = new Edu.Stanford.Nlp.IE.Crf.FloatFactorTable(6, 3); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { for (int k = 0; k < 6; k++) { int[] b = new int[] { i, j, k }; ft.SetValue(b, (i * 4) + (j * 2) + k); } } } //System.out.println(ft); //System.out.println(ft.sumOutFront()); Edu.Stanford.Nlp.IE.Crf.FloatFactorTable ft2 = new Edu.Stanford.Nlp.IE.Crf.FloatFactorTable(6, 2); for (int i_1 = 0; i_1 < 6; i_1++) { for (int j = 0; j < 6; j++) { int[] b = new int[] { i_1, j }; ft2.SetValue(b, i_1 * 6 + j); } } System.Console.Out.WriteLine(ft); //FloatFactorTable ft3 = ft2.sumOutFront(); //System.out.println(ft3); for (int i_2 = 0; i_2 < 6; i_2++) { for (int j = 0; j < 6; j++) { int[] b = new int[] { i_2, j }; float t = 0; for (int k = 0; k < 6; k++) { t += System.Math.Exp(ft.ConditionalLogProb(b, k)); log.Info(k + "|" + i_2 + "," + j + " : " + System.Math.Exp(ft.ConditionalLogProb(b, k))); } System.Console.Out.WriteLine(t); } } }