【问题标题】:Converting CSV to ARFF将 CSV 转换为 ARFF
【发布时间】:2015-05-20 20:58:23
【问题描述】:

我的代码是:

package csvtoarff;

import java.io.File;
import weka.core.Instances;
import weka.core.converters.ArffSaver;
import weka.core.converters.CSVLoader;

public class CsvToArff {
    public static void main(String[] args) {
        try {
            String f1 = "C://Users//user//Desktop//testfold//test.csv";
            String f2 = "C://Users//user//Desktop//testfold//output.arff";

            // load the CSV file (input file)
            CSVLoader loader = new CSVLoader();
            loader.setSource(new File(f1));
            String [] options = new String[1];
            options[0]="-H";
            loader.setOptions(options);

            Instances data = loader.getDataSet();
            System.out.println(data);

            // save as an  ARFF (output file)
            ArffSaver saver = new ArffSaver();
            saver.setInstances(data);
            saver.setFile(new File(f2));
            saver.setDestination(new File(f2));
            saver.writeBatch();
        } catch(Exception e) {
        }
    }
}

错误是:

---注册Weka Editors---尝试添加数据库驱动(JDBC):jdbc.idbDriver - 错误,不在CLASSPATH中?

This related answer 没有解决我的问题。

【问题讨论】:

标签: java csv jdbc weka


【解决方案1】:

也许您应该将 InstantDB 驱动程序添加到您的类路径中,正如错误消息中提到的那样?

【讨论】:

  • 但我没有使用任何数据库。只是试图加载 .csv 文件,输出将是 .arff 文件。就是这样……
【解决方案2】:

终于找到答案了。

其实不用担心数据库的那个错误,就这样吧。 并将注释标记到该行: “ saver.setDestination(新文件(f2));”因为我使用的是较新版本的 weka,它不需要该行。

【讨论】:

  • 是的,我正要写:我可以使用 weka 3.6 运行您的代码,当然可以使用不同的输入文件。 - 您可以在异常处理程序中添加 1 行代码:e.printStackTrace();
  • 是的,你是对的。我通过打印堆栈跟踪找到了解决方案。谢谢。
猜你喜欢
  • 2017-11-24
  • 2012-05-07
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
相关资源
最近更新 更多