Author: chenpei
Date: Mon Nov  4 19:43:20 2013
New Revision: 1538735

URL: http://svn.apache.org/r1538735
Log:
CTAKES-150 - Apostrophe parsing is not thread safe because of global variable.  
Thanks Kim.

Modified:
    
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/nlp/tokenizer/ContractionsPTB.java

Modified: 
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/nlp/tokenizer/ContractionsPTB.java
URL: 
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/nlp/tokenizer/ContractionsPTB.java?rev=1538735&r1=1538734&r2=1538735&view=diff
==============================================================================
--- 
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/nlp/tokenizer/ContractionsPTB.java
 (original)
+++ 
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/nlp/tokenizer/ContractionsPTB.java
 Mon Nov  4 19:43:20 2013
@@ -30,9 +30,6 @@ import java.util.HashMap;
  * @author Mayo Clinic
  */
 public class ContractionsPTB {
-
-
-    static ContractionResult contractionResult = new ContractionResult();
     
     static String[] MultiTokenWords = { "cannot", "gonna", "gotta", "lemme", 
"wanna", "whaddya", "whatcha", };
     static int[] MultiTokenWordLenToken1 = { 3, 3, 3, 3, 3, 3, 3 };
@@ -224,10 +221,12 @@ public class ContractionsPTB {
            
            // if exact match with rest (end of sentence)
            if (s.equals("n't") && prev=='n' && 
lowerCasedText.charAt(apostrophePosition+1)=='t' && 
lowerCasedText.length()==apostrophePosition+1+1) {
-               contractionResult.setContractionTokenLen(3); // n't
+           ContractionResult contractionResult = new ContractionResult();
+           contractionResult.setContractionTokenLen(3); // n't
                contractionResult.setWordTokenLen(apostrophePosition-1 - 
position);
                return contractionResult;
            } else if (restStartingWithApostrophe.equals(s)) {
+           ContractionResult contractionResult = new ContractionResult();      
        
                contractionResult.setContractionTokenLen(s.length());
                contractionResult.setWordTokenLen(apostrophePosition - 
position);
                return contractionResult;
@@ -250,11 +249,12 @@ public class ContractionsPTB {
            }
            if (restStartingWithApostrophe.startsWith(s) && 
Character.isLetter(prev) && !Character.isLetter(after)) {
                // there was at least one letter before the apostrophe and 
after the apostrophe, and non letter after the contraction
+           ContractionResult contractionResult = new ContractionResult();      
        
                contractionResult.setContractionTokenLen(s.length());
                contractionResult.setWordTokenLen(apostrophePosition - 
position);
                return contractionResult;
            } else if (s.equals("n't") && prev=='n' && 
restStartingWithApostrophe.startsWith("'t") && !Character.isLetter(after)) {
-               
+           ContractionResult contractionResult = new ContractionResult();      
        
                contractionResult.setContractionTokenLen(3); // n't
                contractionResult.setWordTokenLen(apostrophePosition-1 - 
position);
                return contractionResult;


Reply via email to