public SequencePairAlignment<Object,Object> bestOutputAlignment () { return bestOutputAlignments(1).get(0); }
public SequencePairAlignment<Object,Object> bestOutputAlignment () { return bestOutputAlignments(1).get(0); }
public SequencePairAlignment<Object,Object> bestOutputAlignment () { return bestOutputAlignments(1).get(0); }
public List<Sequence<Object>> bestOutputSequences (int n) { bestOutputAlignments(n); // ensure that outputAlignmentCache has at least size n ArrayList<Sequence<Object>> ret = new ArrayList<Sequence<Object>>(n); for (int i = 0; i < n; i++) ret.add (outputAlignmentCache.get(i).output()); return ret; // TODO consider caching this result }
public List<Sequence<Object>> bestOutputSequences (int n) { bestOutputAlignments(n); // ensure that outputAlignmentCache has at least size n ArrayList<Sequence<Object>> ret = new ArrayList<Sequence<Object>>(n); for (int i = 0; i < n && i < outputAlignmentCache.size(); i++) ret.add (outputAlignmentCache.get(i).output()); return ret; // TODO consider caching this result }
public List<Sequence<Object>> bestOutputSequences (int n) { bestOutputAlignments(n); // ensure that outputAlignmentCache has at least size n ArrayList<Sequence<Object>> ret = new ArrayList<Sequence<Object>>(n); for (int i = 0; i < n; i++) ret.add (outputAlignmentCache.get(i).output()); return ret; // TODO consider caching this result }
public double bestWeight() { return bestOutputAlignments(1).get(0).getWeight(); }
public double bestWeight() { return bestOutputAlignments(1).get(0).getWeight(); }
public Sequence<Object> bestOutputSequence () { return bestOutputAlignments(1).get(0).output(); }
public Sequence<Object> bestOutputSequence () { return bestOutputAlignments(1).get(0).output(); }
public Sequence<Object> bestOutputSequence () { return bestOutputAlignments(1).get(0).output(); }
public double bestWeight() { return bestOutputAlignments(1).get(0).getWeight(); }
/** Calculates the confidence in the tagging of an {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); //ViterbiPathNBest bestViterbis = new ViterbiPathNBest (model, (Sequence)instance.getData(), 2); //double[] costs = bestViterbis.costNBest(); MaxLatticeDefault vlat = new MaxLatticeDefault (model, (Sequence)instance.getData(), null, 2); List<SequencePairAlignment<Object,Object>> alignments = vlat.bestOutputAlignments(2); double cost1 = alignments.get(0).getWeight(); double cost2 = alignments.get(1).getWeight(); double latticeCost = lattice.getTotalWeight(); return (Math.exp (-cost1 + latticeCost) / Math.exp(-cost2 + latticeCost)); } }
/** Calculates the confidence in the tagging of an {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); //ViterbiPathNBest bestViterbis = new ViterbiPathNBest (model, (Sequence)instance.getData(), 2); //double[] costs = bestViterbis.costNBest(); MaxLatticeDefault vlat = new MaxLatticeDefault (model, (Sequence)instance.getData(), null, 2); List<SequencePairAlignment<Object,Object>> alignments = vlat.bestOutputAlignments(2); double cost1 = alignments.get(0).getWeight(); double cost2 = alignments.get(1).getWeight(); double latticeCost = lattice.getTotalWeight(); return (Math.exp (-cost1 + latticeCost) / Math.exp(-cost2 + latticeCost)); } }
/** Calculates the confidence in the tagging of an {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); //ViterbiPathNBest bestViterbis = new ViterbiPathNBest (model, (Sequence)instance.getData(), 2); //double[] costs = bestViterbis.costNBest(); MaxLatticeDefault vlat = new MaxLatticeDefault (model, (Sequence)instance.getData(), null, 2); List<SequencePairAlignment<Object,Object>> alignments = vlat.bestOutputAlignments(2); double cost1 = alignments.get(0).getWeight(); double cost2 = alignments.get(1).getWeight(); double latticeCost = lattice.getTotalWeight(); return (Math.exp (-cost1 + latticeCost) / Math.exp(-cost2 + latticeCost)); } }
/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); double[] costs = new double[N]; List<SequencePairAlignment<Object,Object>> as = new MaxLatticeDefault (model, (Sequence)instance.getData()).bestOutputAlignments(N); for (int i = 0; i < N; i++) costs[i] = as.get(i).getWeight(); double latticeCost = lattice.getTotalWeight(); double prFirstIsCorrect = Math.exp( latticeCost - costs[0] ); double prOtherIsCorrect = 0.0; for (int i=1; i < N; i++) prOtherIsCorrect += Math.exp( latticeCost - costs[i] ); return prFirstIsCorrect / prOtherIsCorrect; } }
/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); double[] costs = new double[N]; List<SequencePairAlignment<Object,Object>> as = new MaxLatticeDefault (model, (Sequence)instance.getData()).bestOutputAlignments(N); for (int i = 0; i < N; i++) costs[i] = as.get(i).getWeight(); double latticeCost = lattice.getTotalWeight(); double prFirstIsCorrect = Math.exp( latticeCost - costs[0] ); double prOtherIsCorrect = 0.0; for (int i=1; i < N; i++) prOtherIsCorrect += Math.exp( latticeCost - costs[i] ); return prFirstIsCorrect / prOtherIsCorrect; } }
/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { SumLatticeDefault lattice = new SumLatticeDefault (model, (Sequence)instance.getData()); double[] costs = new double[N]; List<SequencePairAlignment<Object,Object>> as = new MaxLatticeDefault (model, (Sequence)instance.getData()).bestOutputAlignments(N); for (int i = 0; i < N; i++) costs[i] = as.get(i).getWeight(); double latticeCost = lattice.getTotalWeight(); double prFirstIsCorrect = Math.exp( latticeCost - costs[0] ); double prOtherIsCorrect = 0.0; for (int i=1; i < N; i++) prOtherIsCorrect += Math.exp( latticeCost - costs[i] ); return prFirstIsCorrect / prOtherIsCorrect; } }