package ir.ac.iust.nlp.dependencyparser.utility.parsing;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author Mojtaba Khallash
*/
public class MSTSettings extends Settings {
// CONLL|MST
public String FileType = "CONLL";
public String DecodeType = "non-proj";
public String LossType = "punc";
public int Order = 2;
public int TrainingK = 1;
public int Iteration = 10;
// Separate Labling
public boolean UseSeparateLabling = false;
public int SeparateLablingCutoff;
public boolean ComposeFeaturesWithPos = false;
public MSTSettings() {}
public MSTSettings(MSTSettings settings) {
super(settings);
this.FileType = settings.FileType;
this.DecodeType = settings.DecodeType;
this.LossType = settings.LossType;
this.Order = settings.Order;
this.TrainingK = settings.TrainingK;
this.Iteration = settings.Iteration;
this.UseSeparateLabling = settings.UseSeparateLabling;
this.SeparateLablingCutoff = settings.SeparateLablingCutoff;
this.ComposeFeaturesWithPos = settings.ComposeFeaturesWithPos;
}
@Override
protected String[] getTrainParameters() {
List<String> pars = new LinkedList<>();
pars.add("format:" + FileType);
pars.add("train");
pars.add("train-file:" + Input);
pars.add("model-name:" + Model);
pars.add("iters:" + Iteration);
pars.add("decode-type:" + DecodeType);
pars.add("training-k:" + TrainingK);
pars.add("loss-type:" + LossType);
pars.add("order:" + Order);
if (UseSeparateLabling == true) {
pars.add("separate-lab");
pars.add("separate-lab-cutoff:" + SeparateLablingCutoff);
}
if (ComposeFeaturesWithPos == true) {
pars.add("compose-features-with-pos");
}
return pars.toArray(new String[0]);
}
@Override
protected String[] getTestParameters() {
List<String> pars = new LinkedList<>();
pars.add("format:" + FileType);
pars.add("test");
pars.add("test-file:" + Input);
pars.add("output-file:" + Output);
pars.add("model-name:" + Model);
pars.add("decode-type:" + DecodeType);
pars.add("order:" + Order);
if (UseSeparateLabling == true) {
pars.add("separate-lab");
}
return pars.toArray(new String[0]);
}
}