final int start = (new Integer(offset[0])).intValue(); final int stop = (new Integer(offset[1])).intValue(); final Segment seg = new Segment(input, output, output, start, stop, entLabel, entLabel);
final int start = (new Integer(offset[0])).intValue(); final int stop = (new Integer(offset[1])).intValue(); final Segment seg = new Segment(input, output, output, start, stop, entLabel, entLabel);
/** Iterate over segments in one labeled sequence */ public SegmentIterator (Sequence input, Sequence predicted, Sequence truth, Object[] startTags, Object[] inTags) { segments = new ArrayList (); if (input.size() != truth.size () || predicted.size () != truth.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + truth.size () + " predicted: " + predicted.size ()); // find predicted segments for (int n=0; n < predicted.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predicted.get (n))) { // found start tag int j=n+1; while (j < predicted.size() && inTags[s].equals (predicted.get (j))) // find end tag j++; segments.add (new Segment (input, predicted, truth, n, j-1, startTags[s], inTags[s])); } } } this.subIterator = segments.iterator(); }
/** Iterate over segments in one labeled sequence */ public SegmentIterator (Sequence input, Sequence predicted, Sequence truth, Object[] startTags, Object[] inTags) { segments = new ArrayList (); if (input.size() != truth.size () || predicted.size () != truth.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + truth.size () + " predicted: " + predicted.size ()); // find predicted segments for (int n=0; n < predicted.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predicted.get (n))) { // found start tag int j=n+1; while (j < predicted.size() && inTags[s].equals (predicted.get (j))) // find end tag j++; segments.add (new Segment (input, predicted, truth, n, j-1, startTags[s], inTags[s])); } } } this.subIterator = segments.iterator(); }
/** Iterate over segments in one labeled sequence */ public SegmentIterator (Sequence input, Sequence predicted, Sequence truth, Object[] startTags, Object[] inTags) { segments = new ArrayList (); if (input.size() != truth.size () || predicted.size () != truth.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + truth.size () + " predicted: " + predicted.size ()); // find predicted segments for (int n=0; n < predicted.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predicted.get (n))) { // found start tag int j=n+1; while (j < predicted.size() && inTags[s].equals (predicted.get (j))) // find end tag j++; segments.add (new Segment (input, predicted, truth, n, j-1, startTags[s], inTags[s])); } } } this.subIterator = segments.iterator(); }
private void setSubIterator (Transducer model, InstanceList ilist, Object[] segmentStartTags, Object[] segmentContinueTags) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); while (iter.hasNext ()) { Instance instance = (Instance) iter.next (); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = new MaxLatticeDefault (model, input).bestOutputSequence(); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int i=0; i < predOutput.size (); i++) { for (int s=0; s < segmentStartTags.length; s++) { if (segmentStartTags[s].equals (predOutput.get (i))) { // found start tag int j=i+1; while (j < predOutput.size() && segmentContinueTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, i, j-1, segmentStartTags[s], segmentContinueTags[s])); } } } } this.subIterator = segments.iterator (); } // The PipeInputIterator interface
private void setSubIterator (Transducer model, InstanceList ilist, Object[] segmentStartTags, Object[] segmentContinueTags) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); while (iter.hasNext ()) { Instance instance = (Instance) iter.next (); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = new MaxLatticeDefault (model, input).bestOutputSequence(); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int i=0; i < predOutput.size (); i++) { for (int s=0; s < segmentStartTags.length; s++) { if (segmentStartTags[s].equals (predOutput.get (i))) { // found start tag int j=i+1; while (j < predOutput.size() && segmentContinueTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, i, j-1, segmentStartTags[s], segmentContinueTags[s])); } } } } this.subIterator = segments.iterator (); } // The PipeInputIterator interface
private void setSubIterator (Transducer model, InstanceList ilist, Object[] segmentStartTags, Object[] segmentContinueTags) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); while (iter.hasNext ()) { Instance instance = (Instance) iter.next (); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = new MaxLatticeDefault (model, input).bestOutputSequence(); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int i=0; i < predOutput.size (); i++) { for (int s=0; s < segmentStartTags.length; s++) { if (segmentStartTags[s].equals (predOutput.get (i))) { // found start tag int j=i+1; while (j < predOutput.size() && segmentContinueTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, i, j-1, segmentStartTags[s], segmentContinueTags[s])); } } } } this.subIterator = segments.iterator (); } // The PipeInputIterator interface
private void setSubIterator (InstanceList ilist, Object[] startTags, Object[] inTags, ArrayList predictions) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); for (int i=0; i < ilist.size(); i++) { Instance instance = (Instance) ilist.get (i); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = (Sequence) predictions.get (i); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int n=0; n < predOutput.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predOutput.get (n))) { // found start tag int j=n+1; while (j < predOutput.size() && inTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, n, j-1, startTags[s], inTags[s])); } } } } this.subIterator = segments.iterator (); }
private void setSubIterator (InstanceList ilist, Object[] startTags, Object[] inTags, ArrayList predictions) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); for (int i=0; i < ilist.size(); i++) { Instance instance = (Instance) ilist.get (i); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = (Sequence) predictions.get (i); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int n=0; n < predOutput.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predOutput.get (n))) { // found start tag int j=n+1; while (j < predOutput.size() && inTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, n, j-1, startTags[s], inTags[s])); } } } } this.subIterator = segments.iterator (); }
private void setSubIterator (InstanceList ilist, Object[] startTags, Object[] inTags, ArrayList predictions) { segments = new ArrayList (); // stores predicted <code>Segment</code>s Iterator iter = ilist.iterator (); for (int i=0; i < ilist.size(); i++) { Instance instance = (Instance) ilist.get (i); Sequence input = (Sequence) instance.getData (); Sequence trueOutput = (Sequence) instance.getTarget (); Sequence predOutput = (Sequence) predictions.get (i); if (input.size() != trueOutput.size () || predOutput.size () != trueOutput.size ()) throw new IllegalStateException ("sequence lengths not equal. input: " + input.size () + " true: " + trueOutput.size () + " predicted: " + predOutput.size ()); // find predicted segments for (int n=0; n < predOutput.size (); n++) { for (int s=0; s < startTags.length; s++) { if (startTags[s].equals (predOutput.get (n))) { // found start tag int j=n+1; while (j < predOutput.size() && inTags[s].equals (predOutput.get (j))) // find end tag j++; segments.add (new Segment (input, predOutput, trueOutput, n, j-1, startTags[s], inTags[s])); } } } } this.subIterator = segments.iterator (); }
public void estimateConfidence (DocumentExtraction documentExtraction) { Tokenization input = documentExtraction.getInput(); // WARNING: input Tokenization will likely already have many // features appended from the last time it was passed through a // featurePipe. To avoid a redundant calculation of features, the // caller may want to set this.featurePipe = // TokenSequence2FeatureVectorSequence Instance carrier = this.featurePipe.pipe(new Instance(input, null, null, null)); Sequence pipedInput = (Sequence) carrier.getData(); Sequence prediction = documentExtraction.getPredictedLabels(); LabeledSpans labeledSpans = documentExtraction.getExtractedSpans(); SumLatticeDefault lattice = new SumLatticeDefault (this.confidenceEstimator.getTransducer(), pipedInput); for (int i=0; i < labeledSpans.size(); i++) { LabeledSpan span = labeledSpans.getLabeledSpan(i); if (span.isBackground()) continue; int[] segmentBoundaries = getSegmentBoundaries(input, span); Segment segment = new Segment(pipedInput, prediction, prediction, segmentBoundaries[0], segmentBoundaries[1], null, null); span.setConfidence(confidenceEstimator.estimateConfidenceFor(segment, lattice)); } }
public void estimateConfidence (DocumentExtraction documentExtraction) { Tokenization input = documentExtraction.getInput(); // WARNING: input Tokenization will likely already have many // features appended from the last time it was passed through a // featurePipe. To avoid a redundant calculation of features, the // caller may want to set this.featurePipe = // TokenSequence2FeatureVectorSequence Instance carrier = this.featurePipe.pipe(new Instance(input, null, null, null)); Sequence pipedInput = (Sequence) carrier.getData(); Sequence prediction = documentExtraction.getPredictedLabels(); LabeledSpans labeledSpans = documentExtraction.getExtractedSpans(); SumLatticeDefault lattice = new SumLatticeDefault (this.confidenceEstimator.getTransducer(), pipedInput); for (int i=0; i < labeledSpans.size(); i++) { LabeledSpan span = labeledSpans.getLabeledSpan(i); if (span.isBackground()) continue; int[] segmentBoundaries = getSegmentBoundaries(input, span); Segment segment = new Segment(pipedInput, prediction, prediction, segmentBoundaries[0], segmentBoundaries[1], null, null); span.setConfidence(confidenceEstimator.estimateConfidenceFor(segment, lattice)); } }
public void estimateConfidence (DocumentExtraction documentExtraction) { Tokenization input = documentExtraction.getInput(); // WARNING: input Tokenization will likely already have many // features appended from the last time it was passed through a // featurePipe. To avoid a redundant calculation of features, the // caller may want to set this.featurePipe = // TokenSequence2FeatureVectorSequence Instance carrier = this.featurePipe.pipe(new Instance(input, null, null, null)); Sequence pipedInput = (Sequence) carrier.getData(); Sequence prediction = documentExtraction.getPredictedLabels(); LabeledSpans labeledSpans = documentExtraction.getExtractedSpans(); SumLatticeDefault lattice = new SumLatticeDefault (this.confidenceEstimator.getTransducer(), pipedInput); for (int i=0; i < labeledSpans.size(); i++) { LabeledSpan span = labeledSpans.getLabeledSpan(i); if (span.isBackground()) continue; int[] segmentBoundaries = getSegmentBoundaries(input, span); Segment segment = new Segment(pipedInput, prediction, prediction, segmentBoundaries[0], segmentBoundaries[1], null, null); span.setConfidence(confidenceEstimator.estimateConfidenceFor(segment, lattice)); } }