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/27 15:30:07 UTC
svn commit: r1582319 - in
/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser:
ParserTrainerTool.java TrainingParams.java
Author: joern
Date: Thu Mar 27 14:30:07 2014
New Revision: 1582319
URL: http://svn.apache.org/r1582319
Log:
OPENNLP-665 Added option to cmd line tool to specifiy head rules serializer class.
Modified:
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java
Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java?rev=1582319&r1=1582318&r2=1582319&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTrainerTool.java Thu Mar 27 14:30:07 2014
@@ -36,6 +36,8 @@ import opennlp.tools.parser.ParserModel;
import opennlp.tools.parser.ParserType;
import opennlp.tools.parser.chunking.Parser;
import opennlp.tools.util.ObjectStream;
+import opennlp.tools.util.ext.ExtensionLoader;
+import opennlp.tools.util.model.ArtifactSerializer;
import opennlp.tools.util.model.ModelUtil;
public final class ParserTrainerTool extends AbstractTrainerTool<Parse, TrainerToolParams> {
@@ -80,6 +82,31 @@ public final class ParserTrainerTool ext
return type;
}
+ static HeadRules creaeHeadRules(TrainerToolParams params) throws IOException {
+
+ ArtifactSerializer headRulesSerializer = null;
+
+ if (params.getHeadRulesSerializerImpl() != null) {
+ headRulesSerializer = ExtensionLoader.instantiateExtension(ArtifactSerializer.class,
+ params.getHeadRulesSerializerImpl());
+ }
+ else {
+ // TODO: Use default, e.g. based on language
+ // language can be specified in the params ...
+
+ headRulesSerializer = new opennlp.tools.parser.lang.en.HeadRules.HeadRulesSerializer();
+ }
+
+ Object headRulesObject = headRulesSerializer.create(new FileInputStream(params.getHeadRules()));
+
+ if (headRulesObject instanceof HeadRules) {
+ return (HeadRules) headRulesObject;
+ }
+ else {
+ throw new TerminateToolException(-1, "HeadRules Artifact Serializer must create an object of type HeadRules!");
+ }
+ }
+
// TODO: Add param to train tree insert parser
public void run(String format, String[] args) {
super.run(format, args);
@@ -117,11 +144,7 @@ public final class ParserTrainerTool ext
ParserModel model;
try {
-
- // TODO hard-coded language reference
- HeadRules rules = new opennlp.tools.parser.lang.en.HeadRules(
- new InputStreamReader(new FileInputStream(params.getHeadRules()),
- params.getEncoding()));
+ HeadRules rules = creaeHeadRules(params);
ParserType type = parseParserType(params.getParserType());
if(params.getFun()){
Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java?rev=1582319&r1=1582318&r2=1582319&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TrainingParams.java Thu Mar 27 14:30:07 2014
@@ -35,6 +35,10 @@ interface TrainingParams extends BasicTr
@OptionalParameter(defaultValue = "CHUNKING")
String getParserType();
+
+ @ParameterDescription(valueName = "className", description = "head rules artifact serializer class name")
+ @OptionalParameter
+ String getHeadRulesSerializerImpl();
@ParameterDescription(valueName = "headRulesFile", description = "head rules file.")
File getHeadRules();