/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { Sequence[] predictions = new Sequence[committee.length]; for (int i = 0; i < committee.length; i++) predictions[i] = new MaxLatticeDefault (committee[i], (Sequence)instance.getData()).bestOutputSequence(); // Higher return value means higher confidence this sequence is correct. double avg = avgVoteEntropy(predictions); return -1.0 * avg; }
/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { Sequence[] predictions = new Sequence[committee.length]; for (int i = 0; i < committee.length; i++) predictions[i] = new MaxLatticeDefault (committee[i], (Sequence)instance.getData()).bestOutputSequence(); // Higher return value means higher confidence this sequence is correct. double avg = avgVoteEntropy(predictions); return -1.0 * avg; }
public double elementwiseAccuracy (Sequence referenceOutput) { int accuracy = 0; Sequence output = bestOutputSequence(); assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); if (referenceOutput.get(i).toString().equals (output.get(i).toString())) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
public double elementwiseAccuracy (Sequence referenceOutput) { int accuracy = 0; Sequence output = bestOutputSequence(); assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); if (referenceOutput.get(i).toString().equals (output.get(i).toString())) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
/** Calculates the confidence in the tagging of a {@link Instance}. */ public double estimateConfidenceFor (Instance instance, Object[] startTags, Object[] inTags) { Sequence[] predictions = new Sequence[committee.length]; for (int i = 0; i < committee.length; i++) predictions[i] = new MaxLatticeDefault (committee[i], (Sequence)instance.getData()).bestOutputSequence(); // Higher return value means higher confidence this sequence is correct. double avg = avgVoteEntropy(predictions); return -1.0 * avg; }
public double tokenAccuracy (Sequence referenceOutput, PrintWriter out) { Sequence output = bestOutputSequence(); int accuracy = 0; String testString; assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); testString = output.get(i).toString(); if (out != null) { out.println(testString); } if (referenceOutput.get(i).toString().equals (testString)) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
public double elementwiseAccuracy (Sequence referenceOutput) { int accuracy = 0; Sequence output = bestOutputSequence(); assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); if (referenceOutput.get(i).toString().equals (output.get(i).toString())) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
public double tokenAccuracy (Sequence referenceOutput, PrintWriter out) { Sequence output = bestOutputSequence(); int accuracy = 0; String testString; assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); testString = output.get(i).toString(); if (out != null) { out.println(testString); } if (referenceOutput.get(i).toString().equals (testString)) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
/** Ranks all {@link Sequences}s in this {@link InstanceList} by confidence estimate. @param ilist list of segmentation instances @param startTags represent the labels for the start states (B-) of all segments @param continueTags represent the labels for the continue state (I-) of all segments @return array of {@link InstanceWithConfidence}s ordered by non-decreasing confidence scores, as calculated by <code>estimateConfidenceFor</code> */ public InstanceWithConfidence[] rankInstancesByConfidence (InstanceList ilist, Object[] startTags, Object[] continueTags) { ArrayList confidenceList = new ArrayList (); for (int i=0; i < ilist.size(); i++) { Instance instance = ilist.get (i); Sequence predicted = new MaxLatticeDefault (model, (Sequence)instance.getData()).bestOutputSequence(); double confidence = estimateConfidenceFor (instance, startTags, continueTags); confidenceList.add (new InstanceWithConfidence ( instance, confidence, predicted)); logger.info ("instance#"+i+" confidence="+confidence); } Collections.sort (confidenceList); InstanceWithConfidence[] ret = new InstanceWithConfidence[1]; ret = (InstanceWithConfidence[]) confidenceList.toArray (ret); return ret; } }
/** Ranks all {@link Sequences}s in this {@link InstanceList} by confidence estimate. @param ilist list of segmentation instances @param startTags represent the labels for the start states (B-) of all segments @param continueTags represent the labels for the continue state (I-) of all segments @return array of {@link InstanceWithConfidence}s ordered by non-decreasing confidence scores, as calculated by <code>estimateConfidenceFor</code> */ public InstanceWithConfidence[] rankInstancesByConfidence (InstanceList ilist, Object[] startTags, Object[] continueTags) { ArrayList confidenceList = new ArrayList (); for (int i=0; i < ilist.size(); i++) { Instance instance = ilist.get (i); Sequence predicted = new MaxLatticeDefault (model, (Sequence)instance.getData()).bestOutputSequence(); double confidence = estimateConfidenceFor (instance, startTags, continueTags); confidenceList.add (new InstanceWithConfidence ( instance, confidence, predicted)); logger.info ("instance#"+i+" confidence="+confidence); } Collections.sort (confidenceList); InstanceWithConfidence[] ret = new InstanceWithConfidence[1]; ret = (InstanceWithConfidence[]) confidenceList.toArray (ret); return ret; } }
public double tokenAccuracy (Sequence referenceOutput, PrintWriter out) { Sequence output = bestOutputSequence(); int accuracy = 0; String testString; assert (referenceOutput.size() == output.size()); for (int i = 0; i < output.size(); i++) { //logger.fine("tokenAccuracy: ref: "+referenceOutput.get(i)+" viterbi: "+output.get(i)); testString = output.get(i).toString(); if (out != null) { out.println(testString); } if (referenceOutput.get(i).toString().equals (testString)) { accuracy++; } } logger.info ("Number correct: " + accuracy + " out of " + output.size()); return ((double)accuracy)/output.size(); }
/** Take input sequence from instance.data and put the output sequence in instance.data. */ public Instance transduce (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setData(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** Take input sequence from instance.data and put the output sequence in instance.target. * Like transduce(Instance), but put best output sequence into instance.target rather than instance.data. */ // TODO Consider a different method name. public Instance label (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setTarget(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** Take input sequence from instance.data and put the output sequence in instance.data. */ public Instance transduce (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setData(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** Take input sequence from instance.data and put the output sequence in instance.target. * Like transduce(Instance), but put best output sequence into instance.target rather than instance.data. */ // TODO Consider a different method name. public Instance label (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setTarget(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** Take input sequence from instance.data and put the output sequence in instance.data. */ public Instance transduce (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setData(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** Take input sequence from instance.data and put the output sequence in instance.target. * Like transduce(Instance), but put best output sequence into instance.target rather than instance.data. */ // TODO Consider a different method name. public Instance label (Instance instance) { if (inputPipe != null) instance = inputPipe.instanceFrom(instance); // TODO Use MaxLatticeFactory instead of hardcoding instance.setTarget(new MaxLatticeDefault(this, (Sequence)instance.getData()).bestOutputSequence()); if (outputPipe != null) instance = outputPipe.instanceFrom(instance); return instance; }
/** This method is deprecated. */ // But it is here as a reminder to do something about induceFeaturesFor(). */ @Deprecated public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.get(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = new MaxLatticeDefault(this, input).bestOutputSequence(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }
/** This method is deprecated. */ // But it is here as a reminder to do something about induceFeaturesFor(). */ @Deprecated public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.get(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = new MaxLatticeDefault(this, input).bestOutputSequence(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }
/** This method is deprecated. */ // But it is here as a reminder to do something about induceFeaturesFor(). */ @Deprecated public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.get(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = new MaxLatticeDefault(this, input).bestOutputSequence(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }