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 2011/07/12 16:32:28 UTC
svn commit: r1145608 -
/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java
Author: joern
Date: Tue Jul 12 14:32:27 2011
New Revision: 1145608
URL: http://svn.apache.org/viewvc?rev=1145608&view=rev
Log:
OPENNLP-199 Added config options to param file
Modified:
incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java
Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java?rev=1145608&r1=1145607&r2=1145608&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TrainUtil.java Tue Jul 12 14:32:27 2011
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import opennlp.perceptron.PerceptronTrainer;
import opennlp.perceptron.SimplePerceptronSequenceTrainer;
public class TrainUtil {
@@ -70,6 +71,17 @@ public class TrainUtil {
return defaultValue;
}
+ private static double getDoubleParam(Map<String, String> trainParams, String key,
+ double defaultValue, Map<String, String> reportMap) {
+
+ String valueString = trainParams.get(key);
+
+ if (valueString != null)
+ return Double.parseDouble(valueString);
+ else
+ return defaultValue;
+ }
+
private static boolean getBooleanParam(Map<String, String> trainParams, String key,
boolean defaultValue, Map<String, String> reportMap) {
@@ -173,7 +185,25 @@ public class TrainUtil {
else if (PERCEPTRON_VALUE.equals(algorithmName)) {
boolean useAverage = getBooleanParam(trainParams, "UseAverage", true, reportMap);
- model = new opennlp.perceptron.PerceptronTrainer().trainModel(
+ boolean useSkippedAveraging = getBooleanParam(trainParams, "UseSkippedAveraging", false, reportMap);
+
+ // overwrite otherwise it might not work
+ if (useSkippedAveraging)
+ useAverage = true;
+
+ double stepSizeDecrease = getDoubleParam(trainParams, "StepSizeDecrease", 0, reportMap);
+
+ double tolerance = getDoubleParam(trainParams, "Tolerance", PerceptronTrainer.TOLERANCE_DEFAULT, reportMap);
+
+ opennlp.perceptron.PerceptronTrainer perceptronTrainer = new opennlp.perceptron.PerceptronTrainer();
+ perceptronTrainer.setSkippedAveraging(useSkippedAveraging);
+
+ if (stepSizeDecrease > 0)
+ perceptronTrainer.setStepSizeDecrease(stepSizeDecrease);
+
+ perceptronTrainer.setTolerance(tolerance);
+
+ model = perceptronTrainer.trainModel(
iterations, indexer, cutoff, useAverage);
}
else {