org.maltparser.MaltConsoleEngine Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of maltparser Show documentation
Show all versions of maltparser Show documentation
MaltParser is a system for data-driven dependency parsing, which can be used to induce a parsing model from treebank data and to parse new data using an induced model.
package org.maltparser;
import java.io.File;
import java.util.Date;
import org.maltparser.core.exception.MaltChainedException;
import org.maltparser.core.helper.SystemInfo;
import org.maltparser.core.helper.SystemLogger;
import org.maltparser.core.options.OptionManager;
import org.maltparser.core.plugin.PluginLoader;
/**
* MaltConsoleEngine controls the MaltParser system using the console version.
*
* @author Johan Hall
* @since 1.0
**/
public class MaltConsoleEngine {
public static final int OPTION_CONTAINER = 0;
/**
* Creates a MaltConsoleEngine object
*
*/
public MaltConsoleEngine() {
try {
/* Option and Plug-in management */
OptionManager.instance().loadOptionDescriptionFile();
// if (SystemInfo.getMaltJarPath() != null) {
// PluginLoader.instance().loadPlugins(new File(SystemInfo.getMaltJarPath().getParent()+"/plugin"));
// }
OptionManager.instance().generateMaps();
} catch (MaltChainedException e) {
if (SystemLogger.logger().isDebugEnabled()) {
SystemLogger.logger().debug("",e);
} else {
SystemLogger.logger().error(e.getMessageChain());
}
System.exit(1);
}
}
/**
* Starts the console engine.
*
* @param args command-line arguments
*/
public void startEngine(String[] args) {
try {
final OptionManager om = OptionManager.instance();
final boolean hasArg = om.parseCommandLine(args,OPTION_CONTAINER);
/* Update the verbosity level according to the verbosity option */
String verbosity = null;
if (hasArg) {
verbosity = (String)OptionManager.instance().getOptionValue(OPTION_CONTAINER,"system", "verbosity");
} else {
verbosity = (String)OptionManager.instance().getOptionDefaultValue("system", "verbosity");
}
if (verbosity != null) {
SystemLogger.instance().setSystemVerbosityLevel(verbosity.toUpperCase());
}
/* Help or reading the option file */
if (!hasArg || om.getNumberOfOptionValues(OPTION_CONTAINER) == 0) {
SystemLogger.logger().info(SystemInfo.header());
SystemLogger.logger().info(SystemInfo.shortHelp());
return;
} else if (om.getOptionValue(OPTION_CONTAINER,"system", "help") != null) {
SystemLogger.logger().info(SystemInfo.header());
SystemLogger.logger().info(om.getOptionDescriptions());
return;
} else {
if (om.getOptionValue(OPTION_CONTAINER,"system", "option_file") != null && om.getOptionValue(0,"system", "option_file").toString().length() > 0) {
om.parseOptionInstanceXMLfile((String)om.getOptionValue(OPTION_CONTAINER,"system", "option_file"));
}
}
maltParser();
} catch (MaltChainedException e) {
if (SystemLogger.logger().isDebugEnabled()) {
SystemLogger.logger().debug("",e);
} else {
SystemLogger.logger().error(e.getMessageChain());
}
System.exit(1);
}
}
/**
* Creates and executes a MaltParser configuration
*
* @throws MaltChainedException
*/
private void maltParser() throws MaltChainedException {
if (SystemLogger.logger() != null && SystemLogger.logger().isInfoEnabled()) {
SystemLogger.logger().info(SystemInfo.header() +"\n");
SystemLogger.logger().info("Started: " + new Date(System.currentTimeMillis()) +"\n");
}
Engine engine = new Engine();
engine.initialize(OPTION_CONTAINER);
engine.process(OPTION_CONTAINER);
engine.terminate(OPTION_CONTAINER);
if (SystemLogger.logger().isInfoEnabled()) {
SystemLogger.logger().info("Finished: " + new Date(System.currentTimeMillis())+"\n");
}
}
}