code: @Override
    protected SequenceLabelSample processSample(
        final SequenceLabelSample reference) {
  
      if (reference.isClearAdaptiveDataSet()) {
        this.sequenceLabeler.clearAdaptiveData();
      }
      final String[] referenceTokens = reference.getTokens();
      final Span[] predictedNames = this.sequenceLabeler.tag(referenceTokens);
      final Span[] references = reference.getSequences();
      // OPENNLP-396 When evaluating with a file in the old format
      // the type of the span is null, but must be set to default to match
      // the output of the name finder.
      for (int i = 0; i < references.length; i++) {
        if (references[i].getType() == null) {
          references[i] = new Span(references[i].getStart(),
              references[i].getEnd(), "default");
        }
      }
      if (this.corpusFormat.equalsIgnoreCase("lemmatizer")
          || this.corpusFormat.equalsIgnoreCase("tabulated")) {
        updateAccuracyScores(referenceTokens, references, predictedNames);
      }
      this.fmeasure.updateScores(references, predictedNames);
      return new SequenceLabelSample(referenceTokens, predictedNames,
          reference.isClearAdaptiveDataSet());
    }
docs: Evaluates the given reference {@link SequenceLabelSample} object.
  
  This is done by finding the sequences with the {@link SequenceLabeler} in
  the sentence from the reference {@link SequenceLabelSample}. The found
  sequences are then used to calculate and update the scores.
  
  @param reference
  the reference {@link SequenceLabelSample}.
  
  @return the predicted {@link SequenceLabelSample}.