diff options
-rw-r--r-- | src/input/ARFFReader.java | 39 |
1 files changed, 39 insertions, 0 deletions
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; + } +} |