public override void ClearCounts() { base.ClearCounts(); inCorrect = false; prevCorrect = null; prevGuess = null; }
protected internal override void MarkBoundary() { if (inCorrect) { inCorrect = false; correctGuesses.IncrementCount(GetTypeLabel(prevCorrect)); } prevGuess = null; prevCorrect = null; }
private string GetTypeLabel(LabeledChunkIdentifier.LabelTagType tagType) { if (useLabel) { return(tagType.label); } else { return(tagType.type); } }
protected internal virtual void AddGuess(LabeledChunkIdentifier.LabelTagType guess, LabeledChunkIdentifier.LabelTagType correct, bool addUnknownLabels) { if (addUnknownLabels) { if (labelIndex == null) { labelIndex = new HashIndex <string>(); } labelIndex.Add(GetTypeLabel(guess)); labelIndex.Add(GetTypeLabel(correct)); } if (inCorrect) { bool prevCorrectEnded = LabeledChunkIdentifier.IsEndOfChunk(prevCorrect, correct); bool prevGuessEnded = LabeledChunkIdentifier.IsEndOfChunk(prevGuess, guess); if (prevCorrectEnded && prevGuessEnded && prevGuess.TypeMatches(prevCorrect)) { inCorrect = false; correctGuesses.IncrementCount(GetTypeLabel(prevCorrect)); } else { if (prevCorrectEnded != prevGuessEnded || !guess.TypeMatches(correct)) { inCorrect = false; } } } bool correctStarted = LabeledChunkIdentifier.IsStartOfChunk(prevCorrect, correct); bool guessStarted = LabeledChunkIdentifier.IsStartOfChunk(prevGuess, guess); if (correctStarted && guessStarted && guess.TypeMatches(correct)) { inCorrect = true; } if (correctStarted) { foundCorrect.IncrementCount(GetTypeLabel(correct)); } if (guessStarted) { foundGuessed.IncrementCount(GetTypeLabel(guess)); } if (chunker.IsIgnoreProvidedTag()) { if (guess.TypeMatches(correct)) { tokensCorrect++; } } else { if (guess.label.Equals(correct.label)) { tokensCorrect++; } } tokensCount++; prevGuess = guess; prevCorrect = correct; }
protected internal override void AddGuess(string guess, string trueLabel, bool addUnknownLabels) { LabeledChunkIdentifier.LabelTagType guessTagType = chunker.GetTagType(guess); LabeledChunkIdentifier.LabelTagType correctTagType = chunker.GetTagType(trueLabel); AddGuess(guessTagType, correctTagType, addUnknownLabels); }