From c4e0e363115ec831847fa46c7370baf7415face6 Mon Sep 17 00:00:00 2001 From: Hai Liu Date: Fri, 25 Mar 2016 09:51:09 +0800 Subject: Add data input processor code JIRA: PREDICTION-37 Change-Id: I5d8b6b651bf0459587f2a01626cc786851717681 Signed-off-by: Hai Liu --- src/input/ARFFReader.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/input/ARFFReader.java diff --git a/src/input/ARFFReader.java b/src/input/ARFFReader.java new file mode 100644 index 0000000..13fbf38 --- /dev/null +++ b/src/input/ARFFReader.java @@ -0,0 +1,39 @@ +package input; + +import java.io.File; + +import org.apache.log4j.*; + +import weka.core.Instances; +import weka.core.converters.ConverterUtils.DataSource; + + + +public class ARFFReader { + protected static Logger logger = Logger.getLogger(ARFFReader.class); + + public static Instances read(String path) throws Exception { + Instances instances = null; + + if (path.length() == 0) { + logger.error("Empty file path"); + throw new Exception("Empty file path"); + } + if (!(new File(path)).exists()) { + logger.error("File not found"); + throw new Exception("File not found"); + } + try { + DataSource source = new DataSource(path); + instances = source.getDataSet(); + if (instances.classIndex() == -1) { + instances.setClassIndex(instances.numAttributes() - 1); + } + } catch (Exception e) { + logger.error(e.toString()); + throw e; + } + + return instances; + } +} -- cgit 1.2.3-korg