public IEnumerator <string> GetEnumerator() { IEnumerable <int> indexes = _segmenter.GetBoundaryIndices(_paragraph); int prevIndex = 0; foreach (int index in indexes) { yield return(_paragraph.SubstringJava(prevIndex, index + 1).Trim()); prevIndex = index + 1; } }
public static DetailedEvaluation Evaluate(this SentenceSegmenter segmenter, string paragraph, IEnumerable <int> realBoundaryIndices) { IEnumerable <int> predictedIndices = segmenter.GetBoundaryIndices(paragraph); // ReSharper disable PossibleMultipleEnumeration IEnumerable <int> misses = realBoundaryIndices.Except(predictedIndices); IEnumerable <int> falseAlarms = predictedIndices.Except(realBoundaryIndices); IEnumerable <int> hits = realBoundaryIndices.Intersect(predictedIndices); // ReSharper restore PossibleMultipleEnumeration int eosCandidateCount = GetEosCharCount(segmenter.EosCandidates, paragraph); return(new DetailedEvaluation(hits, misses, falseAlarms, eosCandidateCount, paragraph)); }