/**
* Retrieves the non-projective corpus from pseudo-projective one.
*/
package edu.stanford.nlp.parser.ensemble.utils;
import java.io.*;
import org.maltparser.core.exception.MaltChainedException;
/**
*
* @author Mojtaba Khallash
*/
public class DeprojectivizeCorpus {
public static PrintStream out = System.out;
public static void Deprojectivize(String workingDirectory, String input,
String Output, String model)
throws MaltChainedException, IOException {
// args for malt
String params = makeMaltEngineParameters(workingDirectory, input,
Output, model);
// run malt
Process p = Runtime.getRuntime().exec("java -Xmx2048m -jar lib" + File.separator + "maltParser.jar " + params);
BufferedReader stdError = new BufferedReader(new InputStreamReader(
p.getErrorStream()));
String s;
while ((s = stdError.readLine()) != null) {
out.println(s);
}
}
private static String makeMaltEngineParameters(String workingDirectory,
String input, String Output, String model) {
StringBuilder pars = new StringBuilder();
// Config Name = Pseudo-Projectivity
pars.append("-c ");
pars.append(model);
// Processing Mode = Deprojectivize
pars.append(" -m ");
pars.append("deproj");
// Input Config [file path - format]
pars.append(" -i ");
pars.append(workingDirectory).append(File.separator).append(input);
// Output Config [file path - format]
pars.append(" -o ");
pars.append(workingDirectory).append(File.separator).append(Output);
// Working Directory Path
pars.append(" -w ");
pars.append(workingDirectory);
return pars.toString();
}
}