Ejemplo n.º 1
0
 public override void ClearCounts()
 {
     base.ClearCounts();
     inCorrect   = false;
     prevCorrect = null;
     prevGuess   = null;
 }
Ejemplo n.º 2
0
 protected internal override void MarkBoundary()
 {
     if (inCorrect)
     {
         inCorrect = false;
         correctGuesses.IncrementCount(GetTypeLabel(prevCorrect));
     }
     prevGuess   = null;
     prevCorrect = null;
 }
Ejemplo n.º 3
0
 private string GetTypeLabel(LabeledChunkIdentifier.LabelTagType tagType)
 {
     if (useLabel)
     {
         return(tagType.label);
     }
     else
     {
         return(tagType.type);
     }
 }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
 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);
 }