在android中转换ARFF中的CSV

时间:2016-05-22 11:04:51

标签: java android csv weka arff

我有一个cvs文件,我想以arff格式转换。

我在构建路径和libs /中添加了这个外部jar: WEKA-3.6.6-的android.jar

我的cvs文件没有标题行,它是这样的:

0.56024569272995,0.34556102752685547,0.4986509583393733,0.025362752945036676,0.4992934039810014,0.56024569272995,0.34556102752685547,0.4986509583393733,0.025362752945036676,0.4992934039810014,0.56024569272995,0.34556102752685547,0.0,0.500127645839251,0.4992934039810014
0.5616480112075806,0.33134251832962036,0.48604997404442984,0.024514018315056698,0.48666570100992756,0.5616480112075806,0.33134251832962036,0.48604997404442984,0.024514018315056698,0.48666570100992756,0.5616480112075806,0.33134251832962036,0.0,0.4874815703186685,0.48666570100992756
0.6170566082000732,0.3362383246421814,0.48836380223366727,0.026372415937359308,0.4890729818269294,0.6170566082000732,0.3362383246421814,0.48836380223366727,0.026372415937359308,0.4890729818269294,0.6170566082000732,0.3362383246421814,0.0,0.4898928868146426,0.4890729818269294

根据weka网站,此代码将cvs转换为arff:

public void convertCSVtoArff(String activity){

    try {
    String file_source = activity + ".csv";
    String file_dest = activity + ".arff";

    // load CSV
    CSVLoader loader = new CSVLoader();
    loader.setSource(new File(file_path + "samples/" + file_source));
    String[] options = {"-H"};
    loader.setOptions(options);

    Instances data = loader.getDataSet();

    // save ARFF
    ArffSaver saver = new ArffSaver();
    saver.setInstances(data);
    saver.setFile(new File(file_path + "samples/" + file_dest));
    saver.setDestination(new File(file_path + "samples/" + file_dest));
    saver.writeBatch();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

当我运行Android应用程序时,LogCat给了我这个错误:

E/AndroidRuntime(23492): FATAL EXCEPTION: main
E/AndroidRuntime(23492):     
java.lang.ExceptionInInitializerError
E/AndroidRuntime(23492):at  
weka.core.converters.CSVLoader.readHeader(CSVLoader.java:882)
E/AndroidRuntime(23492):at   
weka.core.converters.CSVLoader.readStructure(CSVLoader.java:534)
E/AndroidRuntime(23492):at   
weka.core.converters.CSVLoader.getStructure(CSVLoader.java:519)
E/AndroidRuntime(23492):at 
weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:552)
E/AndroidRuntime(23492):at 
com.unipa.file.FileOperation.convertCSVtoArff(FileOperation.java:151)
E/AndroidRuntime(23492):at   
      .
      .
      .
E/AndroidRuntime(23492): Caused by: java.lang.NullPointerException
E/AndroidRuntime(23492):    at weka.core.converters.ConverterUtils.<clinit>  
(ConverterUtils.java:741)
E/AndroidRuntime(23492):    ... 19 more

我不明白这是什么问题。

可以帮我解决这个问题吗?

提前致谢并抱歉我的英语。

0 个答案:

没有答案