package experimental.analyzer;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public abstract class AnalyzerTrainer {
public static final String FLOAT_DICT_ = "float-dict";
protected Map<String, String> options_;
public abstract Analyzer train(Collection<AnalyzerInstance> instances);
private static final String BSLASH_SYM = "%%BSLASH%%";
private static final String COMMA_SYM = "%%COMMA%%";
private static final String SEMICOL_SYM = "%%SEMICOL%%";
public AnalyzerTrainer() {
options_= new HashMap<>();
}
public void setOptions(String options_string) {
if (options_string.equals("_"))
return;
options_string = options_string.replace("\\,", COMMA_SYM).replace("\\;", SEMICOL_SYM).replace("\\\\", BSLASH_SYM);
for (String option : options_string.split(",")) {
option = option.replace(COMMA_SYM, ",").replace(SEMICOL_SYM, ";").replace(BSLASH_SYM, "\\");
int index = option.indexOf('=');
if (index < 0) {
throw new RuntimeException(String.format("Not = in " + option));
}
String name = option.substring(0, index);
String value = option.substring(index + 1);
options_.put(name, value);
}
}
}