You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2014/03/21 11:05:02 UTC

svn commit: r1579910 - in /opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser: ParserModel.java lang/en/HeadRules.java lang/es/AncoraSpanishHeadRules.java

Author: joern
Date: Fri Mar 21 10:05:02 2014
New Revision: 1579910

URL: http://svn.apache.org/r1579910
Log:
OPENNLP-665 Updated the ParserModel to work with all Head Rule implementations

Modified:
    opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/ParserModel.java
    opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java
    opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java

Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/ParserModel.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/ParserModel.java?rev=1579910&r1=1579909&r2=1579910&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/ParserModel.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/ParserModel.java Fri Mar 21 10:05:02 2014
@@ -69,19 +69,6 @@ public class ParserModel extends BaseMod
     }
   }
   
-  private static class HeadRulesSerializer implements ArtifactSerializer<opennlp.tools.parser.lang.en.HeadRules> {
-
-    public opennlp.tools.parser.lang.en.HeadRules create(InputStream in) throws IOException,
-        InvalidFormatException {
-      return new opennlp.tools.parser.lang.en.HeadRules(new BufferedReader(new InputStreamReader(in, "UTF-8")));
-    }
-
-    public void serialize(opennlp.tools.parser.lang.en.HeadRules artifact, OutputStream out)
-        throws IOException {
-      artifact.serialize(new OutputStreamWriter(out, "UTF-8"));
-    }
-  }
-  
   private static final String COMPONENT_NAME = "Parser";
   
   private static final String BUILD_MODEL_ENTRY_NAME = "build.model";
@@ -100,7 +87,7 @@ public class ParserModel extends BaseMod
   
   public ParserModel(String languageCode, MaxentModel buildModel, MaxentModel checkModel, 
       MaxentModel attachModel, POSModel parserTagger,
-      ChunkerModel chunkerTagger, opennlp.tools.parser.lang.en.HeadRules headRules,
+      ChunkerModel chunkerTagger, opennlp.tools.parser.HeadRules headRules,
       ParserType modelType, Map<String, String> manifestInfoEntries) {
 
     super(COMPONENT_NAME, languageCode, manifestInfoEntries);
@@ -135,7 +122,7 @@ public class ParserModel extends BaseMod
 
   public ParserModel(String languageCode, MaxentModel buildModel, MaxentModel checkModel, 
       MaxentModel attachModel, POSModel parserTagger,
-      ChunkerModel chunkerTagger, opennlp.tools.parser.lang.en.HeadRules headRules,
+      ChunkerModel chunkerTagger, opennlp.tools.parser.HeadRules headRules,
       ParserType modelType) {
     this (languageCode, buildModel, checkModel, attachModel, parserTagger,
         chunkerTagger, headRules, modelType, null);
@@ -143,7 +130,7 @@ public class ParserModel extends BaseMod
   
   public ParserModel(String languageCode, MaxentModel buildModel, MaxentModel checkModel, 
       POSModel parserTagger, ChunkerModel chunkerTagger, 
-      opennlp.tools.parser.lang.en.HeadRules headRules, ParserType type,
+      opennlp.tools.parser.HeadRules headRules, ParserType type,
       Map<String, String> manifestInfoEntries) {
     this (languageCode, buildModel, checkModel, null, parserTagger, 
         chunkerTagger, headRules, type, manifestInfoEntries);
@@ -169,8 +156,6 @@ public class ParserModel extends BaseMod
     
     serializers.put("postagger", new POSModelSerializer());
     serializers.put("chunker", new ChunkerModelSerializer());
-    serializers.put("headrules", new HeadRulesSerializer());
-    
   }
   
   public ParserType getParserType () {
@@ -197,8 +182,8 @@ public class ParserModel extends BaseMod
     return (ChunkerModel) artifactMap.get(CHUNKER_TAGGER_MODEL_ENTRY_NAME);
   }
 
-  public opennlp.tools.parser.lang.en.HeadRules getHeadRules() {
-    return (opennlp.tools.parser.lang.en.HeadRules) 
+  public opennlp.tools.parser.HeadRules getHeadRules() {
+    return (opennlp.tools.parser.HeadRules) 
         artifactMap.get(HEAD_RULES_MODEL_ENTRY_NAME);
   }
 

Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java?rev=1579910&r1=1579909&r2=1579910&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java Fri Mar 21 10:05:02 2014
@@ -21,6 +21,10 @@ package opennlp.tools.parser.lang.en;
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.Writer;
 import java.util.Arrays;
@@ -35,12 +39,28 @@ import opennlp.tools.parser.Constituent;
 import opennlp.tools.parser.GapLabeler;
 import opennlp.tools.parser.Parse;
 import opennlp.tools.parser.chunking.Parser;
+import opennlp.tools.util.InvalidFormatException;
+import opennlp.tools.util.model.ArtifactSerializer;
+import opennlp.tools.util.model.SerializableArtifact;
 
 /**
  * Class for storing the English head rules associated with parsing.
  */
-public class HeadRules implements opennlp.tools.parser.HeadRules, GapLabeler {
+public class HeadRules implements opennlp.tools.parser.HeadRules, GapLabeler, SerializableArtifact {
 
+  public static class HeadRulesSerializer implements ArtifactSerializer<opennlp.tools.parser.lang.en.HeadRules> {
+
+    public opennlp.tools.parser.lang.en.HeadRules create(InputStream in) throws IOException,
+        InvalidFormatException {
+      return new opennlp.tools.parser.lang.en.HeadRules(new BufferedReader(new InputStreamReader(in, "UTF-8")));
+    }
+
+    public void serialize(opennlp.tools.parser.lang.en.HeadRules artifact, OutputStream out)
+        throws IOException {
+      artifact.serialize(new OutputStreamWriter(out, "UTF-8"));
+    }
+  }
+  
   private static class HeadRule {
     public boolean leftToRight;
     public String[] tags;
@@ -275,4 +295,9 @@ public class HeadRules implements opennl
       return false;
     }
   }
+
+  @Override
+  public Class<?> getArtifactSerializerClass() {
+    return HeadRulesSerializer.class;
+  }
 }

Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java?rev=1579910&r1=1579909&r2=1579910&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java Fri Mar 21 10:05:02 2014
@@ -20,6 +20,10 @@ package opennlp.tools.parser.lang.es;
 
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.Writer;
 import java.util.Arrays;
@@ -34,6 +38,9 @@ import opennlp.tools.parser.Constituent;
 import opennlp.tools.parser.GapLabeler;
 import opennlp.tools.parser.Parse;
 import opennlp.tools.parser.chunking.Parser;
+import opennlp.tools.util.InvalidFormatException;
+import opennlp.tools.util.model.ArtifactSerializer;
+import opennlp.tools.util.model.SerializableArtifact;
 
 /**
  * Class for storing the Ancora Spanish head rules associated with parsing. The headrules
@@ -49,8 +56,20 @@ import opennlp.tools.parser.chunking.Par
  * Other changes include removal of deprecated methods we do not need to use. 
  * 
  */
-public class AncoraSpanishHeadRules implements opennlp.tools.parser.HeadRules, GapLabeler {
+public class AncoraSpanishHeadRules implements opennlp.tools.parser.HeadRules, GapLabeler, SerializableArtifact {
 
+  public static class HeadRulesSerializer implements ArtifactSerializer<opennlp.tools.parser.lang.es.AncoraSpanishHeadRules> {
+
+    public opennlp.tools.parser.lang.es.AncoraSpanishHeadRules create(InputStream in) throws IOException,
+        InvalidFormatException {
+      return new opennlp.tools.parser.lang.es.AncoraSpanishHeadRules(new BufferedReader(new InputStreamReader(in, "UTF-8")));
+    }
+
+    public void serialize(opennlp.tools.parser.lang.es.AncoraSpanishHeadRules artifact, OutputStream out)
+        throws IOException {
+      artifact.serialize(new OutputStreamWriter(out, "UTF-8"));
+    }
+  }
   private static class HeadRule {
     public boolean leftToRight;
     public String[] tags;
@@ -276,4 +295,9 @@ public class AncoraSpanishHeadRules impl
       return false;
     }
   }
+
+  @Override
+  public Class<?> getArtifactSerializerClass() {
+    return HeadRulesSerializer.class;
+  }
 }