use of org.dkpro.tc.io.libsvm.LibsvmDataFormatWriter in project dkpro-tc by dkpro.
the class LiblinearDataWriterTest method dataWriterTest.
@Test
public void dataWriterTest() throws Exception {
List<Instance> fs = new ArrayList<Instance>();
List<Feature> features1 = new ArrayList<>();
features1.add(new Feature("feature1", 1.0, FeatureType.NUMERIC));
features1.add(new Feature("feature2", 0.0, FeatureType.NUMERIC));
List<Feature> features2 = new ArrayList<>();
features2.add(new Feature("feature2", 0.5, FeatureType.NUMERIC));
features2.add(new Feature("feature1", 0.5, FeatureType.NUMERIC));
Instance instance1 = new Instance(features1, "0");
Instance instance2 = new Instance(features2, "1");
fs.add(instance1);
fs.add(instance2);
File outputDirectory = folder.newFolder();
StringBuilder sb = new StringBuilder();
sb.append("feature1\n");
sb.append("feature2\n");
FileUtils.writeStringToFile(new File(outputDirectory, Constants.FILENAME_FEATURES), sb.toString(), "utf-8");
File outputFile = new File(outputDirectory, Constants.FILENAME_DATA_IN_CLASSIFIER_FORMAT);
LibsvmDataFormatWriter writer = new LibsvmDataFormatWriter();
writer.init(outputDirectory, false, Constants.LM_SINGLE_LABEL, false, new String[] { "0", "1" });
writer.writeClassifierFormat(fs);
Problem problem = Problem.readFromFile(outputFile, 1.0);
assertEquals(2, problem.l);
assertEquals(4, problem.n);
assertEquals(0.0, problem.y[0], 0.00001);
assertEquals(1.0, problem.y[1], 0.00001);
}