You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by co...@apache.org on 2011/07/18 23:44:07 UTC

svn commit: r1148065 - in /incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser: BuildModelUpdaterTool.java CheckModelUpdaterTool.java ModelUpdaterTool.java

Author: colen
Date: Mon Jul 18 21:44:06 2011
New Revision: 1148065

URL: http://svn.apache.org/viewvc?rev=1148065&view=rev
Log:
OPENNLP-227 Updated Parser ModelUpdater tool

Modified:
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/BuildModelUpdaterTool.java
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/BuildModelUpdaterTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/BuildModelUpdaterTool.java?rev=1148065&r1=1148064&r2=1148065&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/BuildModelUpdaterTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/BuildModelUpdaterTool.java Mon Jul 18 21:44:06 2011
@@ -20,7 +20,6 @@ package opennlp.tools.cmdline.parser;
 import java.io.IOException;
 
 import opennlp.model.AbstractModel;
-import opennlp.tools.cmdline.BasicTrainingParameters;
 import opennlp.tools.dictionary.Dictionary;
 import opennlp.tools.parser.Parse;
 import opennlp.tools.parser.ParserEventTypeEnum;
@@ -41,7 +40,7 @@ public final class BuildModelUpdaterTool
   
   @Override
   protected ParserModel trainAndUpdate(ParserModel originalModel,
-      ObjectStream<Parse> parseSamples, BasicTrainingParameters parameters)
+      ObjectStream<Parse> parseSamples, ModelUpdaterParams parameters)
       throws IOException {
     
       Dictionary mdict = ParserTrainerTool.buildDictionary(parseSamples, originalModel.getHeadRules(), parameters.getCutoff());
@@ -54,7 +53,7 @@ public final class BuildModelUpdaterTool
       opennlp.model.EventStream bes = new ParserEventStream(parseSamples, 
           originalModel.getHeadRules(), ParserEventTypeEnum.BUILD, mdict);
       AbstractModel buildModel = Parser.train(bes, 
-          parameters.getNumberOfIterations(), parameters.getCutoff());
+          parameters.getIterations(), parameters.getCutoff());
       
       parseSamples.close();
       

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java?rev=1148065&r1=1148064&r2=1148065&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/CheckModelUpdaterTool.java Mon Jul 18 21:44:06 2011
@@ -20,7 +20,6 @@ package opennlp.tools.cmdline.parser;
 import java.io.IOException;
 
 import opennlp.model.AbstractModel;
-import opennlp.tools.cmdline.BasicTrainingParameters;
 import opennlp.tools.dictionary.Dictionary;
 import opennlp.tools.parser.Parse;
 import opennlp.tools.parser.ParserEventTypeEnum;
@@ -42,7 +41,7 @@ public final class CheckModelUpdaterTool
   
   @Override
   protected ParserModel trainAndUpdate(ParserModel originalModel,
-      ObjectStream<Parse> parseSamples, BasicTrainingParameters parameters)
+      ObjectStream<Parse> parseSamples, ModelUpdaterParams parameters)
       throws IOException {
     
       Dictionary mdict = ParserTrainerTool.buildDictionary(parseSamples, originalModel.getHeadRules(), parameters.getCutoff());
@@ -55,7 +54,7 @@ public final class CheckModelUpdaterTool
       opennlp.model.EventStream bes = new ParserEventStream(parseSamples, 
           originalModel.getHeadRules(), ParserEventTypeEnum.CHECK, mdict);
       AbstractModel checkModel = Parser.train(bes, 
-          parameters.getNumberOfIterations(), parameters.getCutoff());
+          parameters.getIterations(), parameters.getCutoff());
       
       parseSamples.close();
       

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java?rev=1148065&r1=1148064&r2=1148065&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java Mon Jul 18 21:44:06 2011
@@ -20,7 +20,9 @@ package opennlp.tools.cmdline.parser;
 import java.io.File;
 import java.io.IOException;
 
-import opennlp.tools.cmdline.BasicTrainingParameters;
+import opennlp.tools.cmdline.ArgumentParser;
+import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
+import opennlp.tools.cmdline.BasicTrainingParams;
 import opennlp.tools.cmdline.CLI;
 import opennlp.tools.cmdline.CmdLineTool;
 import opennlp.tools.cmdline.CmdLineUtil;
@@ -33,35 +35,44 @@ import opennlp.tools.util.ObjectStream;
  * Abstract base class for tools which update the parser model.
  */
 abstract class ModelUpdaterTool implements CmdLineTool {
+  
+  interface ModelUpdaterParams extends BasicTrainingParams {
+    
+    @ParameterDescription(valueName = "modelFile", description = "the model file to be updated")
+    File getModel();
+
+  }
 
   protected abstract ParserModel trainAndUpdate(ParserModel originalModel,
-      ObjectStream<Parse> parseSamples, BasicTrainingParameters parameters)
+      ObjectStream<Parse> parseSamples, ModelUpdaterParams parameters)
       throws IOException;
 
   public String getHelp() {
-    return "Usage: " + CLI.CMD + " " + getName() + " -data training.file -model parser.model";
+    return "Usage: " + CLI.CMD + " " + getName() + " "
+      + ArgumentParser.createUsage(ModelUpdaterParams.class);
   }
   
   public final void run(String[] args) {
 
-    if (args.length < 8) {
-      System.out.println(getHelp());
+    if (!ArgumentParser.validateArguments(args, ModelUpdaterParams.class)) {
+      System.err.println(getHelp());
       throw new TerminateToolException(1);
     }
     
-    BasicTrainingParameters parameters = new BasicTrainingParameters(args);
+    ModelUpdaterParams params = ArgumentParser.parse(args,
+        ModelUpdaterParams.class);
     
     // Load model to be updated
-    File modelFile = new File(CmdLineUtil.getParameter("-model", args));
+    File modelFile = params.getModel();
     ParserModel originalParserModel = new ParserModelLoader().load(modelFile);
 
-    ObjectStream<Parse> parseSamples = ParserTrainerTool.openTrainingData(new File(CmdLineUtil.getParameter("-data", args)), 
-        parameters.getEncoding());
+    ObjectStream<Parse> parseSamples = ParserTrainerTool.openTrainingData(params.getData(), 
+        params.getEncoding());
     
     ParserModel updatedParserModel;
     try {
       updatedParserModel = trainAndUpdate(originalParserModel,
-          parseSamples, parameters);
+          parseSamples, params);
     }
     catch (IOException e) {
       CmdLineUtil.printTrainingIoError(e);