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 20:54:32 UTC

svn commit: r1148004 - in /incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind: TokenNameFinderCrossValidatorTool.java TokenNameFinderTrainerTool.java TrainingParameters.java TrainingParametersI.java TrainingParams.java

Author: colen
Date: Mon Jul 18 18:54:31 2011
New Revision: 1148004

URL: http://svn.apache.org/viewvc?rev=1148004&view=rev
Log:
OPENNLP-227 Updated Name Finder trainer and cv tools

Added:
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java   (contents, props changed)
      - copied, changed from r1147973, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParametersI.java
Removed:
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParameters.java
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParametersI.java
Modified:
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java?rev=1148004&r1=1148003&r2=1148004&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderCrossValidatorTool.java Mon Jul 18 18:54:31 2011
@@ -23,8 +23,8 @@ import java.nio.charset.Charset;
 import java.util.Map;
 
 import opennlp.tools.cmdline.ArgumentParser;
-import opennlp.tools.cmdline.CVParams;
 import opennlp.tools.cmdline.CLI;
+import opennlp.tools.cmdline.CVParams;
 import opennlp.tools.cmdline.CmdLineTool;
 import opennlp.tools.cmdline.CmdLineUtil;
 import opennlp.tools.cmdline.TerminateToolException;
@@ -34,7 +34,7 @@ import opennlp.tools.util.ObjectStream;
 
 public final class TokenNameFinderCrossValidatorTool implements CmdLineTool {
   
-  interface Parameters extends TrainingParametersI, CVParams{
+  interface CVToolParams extends TrainingParams, CVParams{
     
   }
 
@@ -48,17 +48,16 @@ public final class TokenNameFinderCrossV
 
   public String getHelp() {
     return "Usage: " + CLI.CMD + " " + getName() + " "
-        + TrainingParameters.getParameterUsage() + " -data trainData\n"
-        + TrainingParameters.getDescription();
+        + ArgumentParser.createUsage(CVToolParams.class);
   }
 
   public void run(String[] args) {
-    if (!ArgumentParser.validateArguments(args, Parameters.class)) {
+    if (!ArgumentParser.validateArguments(args, CVToolParams.class)) {
       System.err.println(getHelp());
       throw new TerminateToolException(1);
     }
     
-    Parameters params = ArgumentParser.parse(args, Parameters.class);
+    CVToolParams params = ArgumentParser.parse(args, CVToolParams.class);
 
     opennlp.tools.util.TrainingParameters mlParams = CmdLineUtil
         .loadTrainingParameters(params.getParams(),false);

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java?rev=1148004&r1=1148003&r2=1148004&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTrainerTool.java Mon Jul 18 18:54:31 2011
@@ -25,10 +25,12 @@ import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Map;
 
+import opennlp.tools.cmdline.ArgumentParser;
 import opennlp.tools.cmdline.CLI;
 import opennlp.tools.cmdline.CmdLineTool;
 import opennlp.tools.cmdline.CmdLineUtil;
 import opennlp.tools.cmdline.TerminateToolException;
+import opennlp.tools.cmdline.TrainingToolParams;
 import opennlp.tools.namefind.NameSample;
 import opennlp.tools.namefind.NameSampleDataStream;
 import opennlp.tools.namefind.TokenNameFinderModel;
@@ -39,6 +41,10 @@ import opennlp.tools.util.model.Artifact
 import opennlp.tools.util.model.ModelUtil;
 
 public final class TokenNameFinderTrainerTool implements CmdLineTool {
+  
+  interface TrainerToolParams extends TrainingParams, TrainingToolParams{
+
+  }
 
   public String getName() {
     return "TokenNameFinderTrainer";
@@ -49,9 +55,8 @@ public final class TokenNameFinderTraine
   }
   
   public String getHelp() {
-    return "Usage: " + CLI.CMD + " " + getName() + " " + 
-        TrainingParameters.getParameterUsage() + " -data trainingData -model model\n" +
-        TrainingParameters.getDescription();
+    return "Usage: " + CLI.CMD + " " + getName() + " "
+      + ArgumentParser.createUsage(TrainerToolParams.class);
   }
 
   static ObjectStream<NameSample> openSampleData(String sampleDataName,
@@ -162,48 +167,44 @@ public final class TokenNameFinderTraine
   
   public void run(String[] args) {
     
-    if (args.length < 8) {
-      System.out.println(getHelp());
+    if (!ArgumentParser.validateArguments(args, TrainerToolParams.class)) {
+      System.err.println(getHelp());
       throw new TerminateToolException(1);
     }
     
-    TrainingParameters parameters = new TrainingParameters(args);
-    
-    if(!parameters.isValid()) {
-      System.out.println(getHelp());
-      throw new TerminateToolException(1);
-    }
+    TrainerToolParams params = ArgumentParser.parse(args,
+        TrainerToolParams.class);
     
     opennlp.tools.util.TrainingParameters mlParams = 
-      CmdLineUtil.loadTrainingParameters(CmdLineUtil.getParameter("-params", args), true);
+      CmdLineUtil.loadTrainingParameters(params.getParams(), true);
     
-    File trainingDataInFile = new File(CmdLineUtil.getParameter("-data", args));
-    File modelOutFile = new File(CmdLineUtil.getParameter("-model", args));
+    File trainingDataInFile = params.getData();
+    File modelOutFile = params.getModel();
     
     
-    byte featureGeneratorBytes[] = openFeatureGeneratorBytes(parameters.getFeatureGenDescriptorFile());
+    byte featureGeneratorBytes[] = openFeatureGeneratorBytes(params.getFeaturegen());
     
     
     // TODO: Support Custom resources: 
     //       Must be loaded into memory, or written to tmp file until descriptor 
     //       is loaded which defines parses when model is loaded
     
-    Map<String, Object> resources = loadResources(parameters.getResourceDirectory());
+    Map<String, Object> resources = loadResources(params.getResources());
         
     CmdLineUtil.checkOutputFile("name finder model", modelOutFile);
     ObjectStream<NameSample> sampleStream = openSampleData("Training", trainingDataInFile,
-        parameters.getEncoding());
+        params.getEncoding());
 
     TokenNameFinderModel model;
     try {
       if (mlParams == null) {
-      model = opennlp.tools.namefind.NameFinderME.train(parameters.getLanguage(), parameters.getType(),
-           sampleStream, featureGeneratorBytes, resources, parameters.getNumberOfIterations(),
-           parameters.getCutoff());
+      model = opennlp.tools.namefind.NameFinderME.train(params.getLang(), params.getType(),
+           sampleStream, featureGeneratorBytes, resources, params.getIterations(),
+           params.getCutoff());
       }
       else {
         model = opennlp.tools.namefind.NameFinderME.train(
-            parameters.getLanguage(), parameters.getType(), sampleStream,
+            params.getLang(), params.getType(), sampleStream,
             mlParams, featureGeneratorBytes, resources);
       }
     } 

Copied: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java (from r1147973, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParametersI.java)
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java?p2=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java&p1=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParametersI.java&r1=1147973&r2=1148004&rev=1148004&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParametersI.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java Mon Jul 18 18:54:31 2011
@@ -28,7 +28,7 @@ import opennlp.tools.cmdline.BasicTraini
  * 
  * Note: Do not use this class, internal use only!
  */
-interface TrainingParametersI extends BasicTrainingParams {
+interface TrainingParams extends BasicTrainingParams {
   
   @ParameterDescription(valueName = "modelType", description = "The type of the token name finder model")
   @OptionalParameter(defaultValue = "default")

Propchange: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TrainingParams.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain