2

我认为我在 weka 3.7 中发现了一个错误,

当我尝试使用带有分隔符“;”的 weka.core.converters.CSVLoader 加载 csv 文件时,出现以下错误:

线程“主”java.io.IOException 中的异常:预期数字,读取 Token[1;2],weka.core.converters.ArffLoader$ArffReader.errorMessage(ArffLoader.java:294) 的第 1 行 weka.core.converters .ArffLoader$ArffReader.getInstanceFull(ArffLoader.java:656) at weka.core.converters.ArffLoader$ArffReader.getInstance(ArffLoader.java:477) at weka.core.converters.ArffLoader$ArffReader.readInstance(ArffLoader.java:445 )在 weka.core.converters.ArffLoader$ArffReader.readInstance(ArffLoader.java:430) 在 weka.core.converters.ArffLoader$ArffReader.(ArffLoader.java:202) 在 weka.core.converters.CSVLoader.getDataSet(CSVLoader .java:803) 在 de.tuhh.thesis.repower.pcanalysis.BinningWindSpeed.from_CSV_to_ARFF(BinningWindSpeed.java:99) 在 de.tuhh.thesis.repower.pcanalysis.Main.main(Main.java:49)

我的 csv 文件是:

a;b

1;2

我的代码是:

CSVLoader loader = new CSVLoader();
File inputFile = new File(csvFileName);
loader.setSource(inputFile);
loader.setFieldSeparator(";");      
data = loader.getDataSet();

如果我尝试相同的代码但更改“;” for "," 并使用以下文件,程序成功

一,乙

1,2

我真的需要使用“;”

谢谢并恭祝安康

4

1 回答 1

2

(至少现在)有一个选项可以设置字段分隔符:

CSVLoader loader = new CSVLoader();
loader.setFieldSeparator(";");

以防万一其他人偶然发现这个问题..

于 2017-01-10T17:03:55.627 回答