package ir.ac.iust.nlp.dependencyparser.evaluation;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author Mojtaba Khallash
*/
public class EvalSettings {
public String goldFile;
public String parseFile;
public String outputFile;
public String metrics = "LAS";
public String groupByVal = "Token";
public int minSentenceLength = -1; // all length
public int maxSentenceLength = -1; // all length
public String[] ExcludeKeys = null;
public String[] ExcludeVals = null;
public boolean useConfusionMatrix = false;
public boolean showDetails = false;
public boolean showHeaderInfo = true;
public boolean showRowInfo = true;
public boolean mergeTables = true;
public boolean useTabSeparate = false;
public String pattern = "0.000";
public String[] getParameters() {
List<String> pars = new LinkedList<>();
// gold file
pars.add("-g");
pars.add(goldFile);
// parse file
pars.add("-s");
pars.add(parseFile);
// output
pars.add("--output");
pars.add(outputFile);
// evaluation metrics
pars.add("--Metric");
pars.add(metrics);
// GroupBy
pars.add("--GroupBy");
pars.add(groupByVal);
// Sentence Length
if (minSentenceLength != -1) {
pars.add("--MinSentenceLength");
pars.add(String.valueOf(minSentenceLength));
}
if (maxSentenceLength != -1) {
pars.add("--MaxSentenceLength");
pars.add(String.valueOf(maxSentenceLength));
}
// Exclude
if (ExcludeKeys != null) {
for (int i = 0; i < ExcludeKeys.length; i++) {
pars.add("--Exclude" + ExcludeKeys[i]);
pars.add(ExcludeVals[i]);
}
}
// Confusion Matrix
pars.add("--confusion-matrix");
if (useConfusionMatrix == true) {
pars.add("1");
} else {
pars.add("0");
}
// details
pars.add("--details");
if (showDetails == true) {
pars.add("1");
} else {
pars.add("0");
}
// header info
pars.add("--header-info");
if (showHeaderInfo == true) {
pars.add("1");
} else {
pars.add("0");
}
// row header
pars.add("--row-header");
if (showRowInfo == true) {
pars.add("1");
} else {
pars.add("0");
}
// merge tables
pars.add("--merge-tables");
if (mergeTables == true) {
pars.add("1");
} else {
pars.add("0");
}
// tab separate
pars.add("--tab");
if (useTabSeparate == true) {
pars.add("1");
} else {
pars.add("0");
}
// pattern
pars.add("--pattern");
pars.add(pattern);
return pars.toArray(new String[0]);
}
}