You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by tm...@apache.org on 2017/06/28 10:51:21 UTC

svn commit: r1800149 - /ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java

Author: tmill
Date: Wed Jun 28 10:51:21 2017
New Revision: 1800149

URL: http://svn.apache.org/viewvc?rev=1800149&view=rev
Log:
Fixes Issue CTAKES-447. Force an "I" tag to become a "B" tag if it follows an "O" tag.

Modified:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java?rev=1800149&r1=1800148&r2=1800149&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/ae/SentenceDetectorAnnotatorBIO.java Wed Jun 28 10:51:21 2017
@@ -149,6 +149,12 @@ public class SentenceDetectorAnnotatorBI
             outcome = "I";
           }else{
             outcome = this.classifier.classify(feats);
+            // This shouldn't be necessary, but if the learning algorithm fails, we need to correct it so
+            // that our accounting works. Only a B or O can follow an O, if classifier predicts "I", switch
+            // it to a "B".
+            if(outcome.equals("I") && prevOutcome.equals("O")){
+              outcome = "B";
+            }
             if(outcome.equals("B")) startInd = casInd;
             else if(outcome.equals("O") && 
                 (prevOutcome.equals("I") || prevOutcome.equals("B"))){