package rainbownlp.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class ConfigurationUtil { public static final String RuleSureCorpus = "RuleSure"; public static boolean SaveInGetInstance = true; static Properties configFile = new Properties(); static boolean loadedRNLPConfig = false; public enum OperationMode { TRIGGER, EDGE, ARTIFACT } public static OperationMode Mode = OperationMode.TRIGGER; public static boolean TrainingMode = true; // This switch between using Development set or Test set for evaluation, set to true if you want to generate test submission files public static boolean ReleaseMode = false; public static int NotTriggerNumericValue = 10; public static int NotEdgeNumericValue = 9; public static int MinInstancePerLeaf; public static Double SVMCostParameter; public static Double SVMPolyCParameter; public static enum SVMKernels { Linear, //0: linear (default) Polynomial, //1: polynomial (s a*b+c)^d Radial, //2: radial basis function exp(-gamma ||a-b||^2) SigmoidTanh //3: sigmoid tanh(s a*b + c) }; public static SVMKernels SVMKernel; public static boolean batchMode = false; public static int crossValidationFold; public static int crossFoldCurrent = 0; public static String[] getArrayValues(String key) { if(getValue(key)==null) return null; String[] arrayValues = getValue(key).split("\\|"); return arrayValues; } public static void init() { if(!loadedRNLPConfig){ Properties rnlpConfigFile = new Properties(); try { InputStream config_file = ConfigurationUtil.class.getClassLoader(). getResourceAsStream("configuration.conf");// //Configuration.class.getClassLoader().getResourceAsStream("/configuration.properties"); rnlpConfigFile.load(config_file); configFile.putAll(rnlpConfigFile); MinInstancePerLeaf = Integer.parseInt(configFile.getProperty("MinInstancePerLeaf")); SVMCostParameter = Double.parseDouble(configFile.getProperty("SVMCostParameter")); SVMPolyCParameter = Double.parseDouble(configFile.getProperty("SVMPolyCParameter")); ReleaseMode = Boolean.parseBoolean(configFile.getProperty("ReleaseMode")); SVMKernel = SVMKernels.values()[Integer.parseInt(configFile.getProperty("SVMKernel"))]; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void init(String configurationFileName) throws IOException { init(); configFile = new Properties(); InputStream config_file = ConfigurationUtil.class.getClassLoader(). getResourceAsStream(configurationFileName);// //Configuration.class.getClassLoader().getResourceAsStream("/configuration.properties"); configFile.load(config_file); } public static void init(String configurationFileName, String hibernateConfigFile) throws IOException { init(configurationFileName); HibernateUtil.initialize("hibernate-oss.cfg.xml"); } public static String getValue(String key){ init(); return configFile.getProperty(key); } public static int getValueInteger(String key) { String val = getValue(key); if(val==null) return 0; int result = Integer.parseInt(val); return result; } public static String getResourcePath(String resourceName) { return ConfigurationUtil.class.getClassLoader().getResource(resourceName).getPath(); } public static InputStream getResourceStream(String resourceName) { return ConfigurationUtil.class.getClassLoader().getResourceAsStream(resourceName); } }