You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by ch...@apache.org on 2014/11/24 21:27:35 UTC

svn commit: r1641469 - in /ctakes/trunk/ctakes-constituency-parser: desc/ src/main/java/org/apache/ctakes/constituency/parser/ src/main/java/org/apache/ctakes/constituency/parser/ae/

Author: chenpei
Date: Mon Nov 24 20:27:35 2014
New Revision: 1641469

URL: http://svn.apache.org/r1641469
Log:
CTAKES-336
Allow constituency parser to allow reading of model from input stream
- Fixed modelfile param name in descriptor xml
- Removed not used usePos parameter in code
- Added static getDescriptor() factory method for uimaFit style pipeline instantiation.

Modified:
    ctakes/trunk/ctakes-constituency-parser/desc/ConstituencyParserAnnotator.xml
    ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/MaxentParserWrapper.java
    ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/ae/ConstituencyParser.java

Modified: ctakes/trunk/ctakes-constituency-parser/desc/ConstituencyParserAnnotator.xml
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-constituency-parser/desc/ConstituencyParserAnnotator.xml?rev=1641469&r1=1641468&r2=1641469&view=diff
==============================================================================
--- ctakes/trunk/ctakes-constituency-parser/desc/ConstituencyParserAnnotator.xml (original)
+++ ctakes/trunk/ctakes-constituency-parser/desc/ConstituencyParserAnnotator.xml Mon Nov 24 20:27:35 2014
@@ -30,7 +30,7 @@
     <vendor/>
     <configurationParameters>
       <configurationParameter>
-        <name>modelFilename</name>
+        <name>MODEL_FILENAME</name>
         <type>String</type>
         <multiValued>false</multiValued>
         <mandatory>true</mandatory>
@@ -38,7 +38,7 @@
     </configurationParameters>
     <configurationParameterSettings>
       <nameValuePair>
-        <name>modelFilename</name>
+        <name>MODEL_FILENAME</name>
         <value>
           <string>org/apache/ctakes/constituency/parser/models/sharpacq-3.1.bin</string>
         </value>

Modified: ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/MaxentParserWrapper.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/MaxentParserWrapper.java?rev=1641469&r1=1641468&r2=1641469&view=diff
==============================================================================
--- ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/MaxentParserWrapper.java (original)
+++ ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/MaxentParserWrapper.java Mon Nov 24 20:27:35 2014
@@ -18,48 +18,35 @@
  */
 package org.apache.ctakes.constituency.parser;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 
-import opennlp.tools.cmdline.parser.ParserTool;
 import opennlp.tools.parser.AbstractBottomUpParser;
 import opennlp.tools.parser.Parse;
 import opennlp.tools.parser.ParserModel;
 import opennlp.tools.parser.chunking.Parser;
-import opennlp.tools.util.Span;
 
 import org.apache.ctakes.constituency.parser.util.TreeUtils;
 import org.apache.ctakes.core.util.DocumentIDAnnotationUtil;
-import org.apache.ctakes.typesystem.type.syntax.TerminalTreebankNode;
 import org.apache.ctakes.typesystem.type.syntax.TopTreebankNode;
-import org.apache.ctakes.typesystem.type.syntax.TreebankNode;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.log4j.Logger;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.cas.FSArray;
-import org.apache.uima.jcas.cas.StringArray;
 
 public class MaxentParserWrapper implements ParserWrapper {
 
 	Parser parser = null;
 	private String parseStr = "";
 	Logger logger = Logger.getLogger(this.getClass().getName());
-	private boolean usePos;
-	
-	public MaxentParserWrapper(String dataDir) {
-		this(dataDir, false);
-	}
-	
-	public MaxentParserWrapper(String dataDir, boolean usePos){
+
+
+	public MaxentParserWrapper(InputStream is){
 		try {
-			File d = new File(dataDir);
-			this.usePos = usePos;
-			if (!d.isDirectory()) {
-				FileInputStream fis = new FileInputStream(d);
-				ParserModel model = new ParserModel(fis);
+			if (is!=null) {
+				ParserModel model = new ParserModel(is);
 				parser = new Parser(model, AbstractBottomUpParser.defaultBeamSize, AbstractBottomUpParser.defaultAdvancePercentage);
 			}
 		} catch (IOException e) {

Modified: ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/ae/ConstituencyParser.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/ae/ConstituencyParser.java?rev=1641469&r1=1641468&r2=1641469&view=diff
==============================================================================
--- ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/ae/ConstituencyParser.java (original)
+++ ctakes/trunk/ctakes-constituency-parser/src/main/java/org/apache/ctakes/constituency/parser/ae/ConstituencyParser.java Mon Nov 24 20:27:35 2014
@@ -25,16 +25,17 @@ import org.apache.ctakes.constituency.pa
 import org.apache.ctakes.core.resource.FileLocator;
 import org.apache.log4j.Logger;
 import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
-import org.apache.uima.jcas.JCas;
-import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
 import org.apache.uima.fit.descriptor.ConfigurationParameter;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.resource.ResourceInitializationException;
 
 
 public class ConstituencyParser extends JCasAnnotator_ImplBase {
 	public static final String PARAM_MODEL_FILENAME = "MODEL_FILENAME";
-	public static final String PARAM_USE_POS = "USE_POS";
 	
 	@ConfigurationParameter(
 			name = PARAM_MODEL_FILENAME,
@@ -43,12 +44,6 @@ public class ConstituencyParser extends 
 			defaultValue = "org/apache/ctakes/constituency/parser/models/sharpacq-3.1.bin"
 	) private String modelFilename;
 	
-	@ConfigurationParameter(
-			name = PARAM_USE_POS,
-			description = "Whether to use the POS tags generated by cTAKES pos tagger or generate our own",
-			mandatory = false,
-			defaultValue = "false"
-	) private boolean usePos;
 	
 	private ParserWrapper parser = null;
 	private Logger logger = Logger.getLogger(this.getClass());
@@ -59,7 +54,7 @@ public class ConstituencyParser extends 
 		super.initialize(aContext);
 		try {
 			logger.info("Initializing parser...");		
-			parser = new MaxentParserWrapper(FileLocator.locateFile(modelFilename).getAbsolutePath(), usePos);
+			parser = new MaxentParserWrapper(FileLocator.getAsStream(modelFilename));
 		} catch (FileNotFoundException e) {
 			e.printStackTrace();
 			logger.error("Error reading parser model file/directory: " + e.getMessage());
@@ -72,4 +67,17 @@ public class ConstituencyParser extends 
 	public void process(JCas jcas) throws AnalysisEngineProcessException {
 		parser.createAnnotations(jcas);
 	}
+	
+	  public static AnalysisEngineDescription createAnnotatorDescription(
+		      String modelPath) throws ResourceInitializationException {
+		    return AnalysisEngineFactory.createEngineDescription(
+		    		ConstituencyParser.class,
+		    		ConstituencyParser.PARAM_MODEL_FILENAME,
+		        modelPath);
+		  }
+	  public static AnalysisEngineDescription createAnnotatorDescription() 
+			  throws ResourceInitializationException {
+		    return AnalysisEngineFactory.createEngineDescription(
+		    		ConstituencyParser.class);
+		  }	  
 }