Weka 3-7 CSVLoader不能与“;”一起使用(分号)作为字段分隔符

时间:2013-06-16 20:14:22

标签: weka loader

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

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

线程“main”中的异常java.io.IOException:number expected,read Token [1; 2],line 1     at weka.core.converters.ArffLoader $ ArffReader.errorMessage(ArffLoader.java:294)     at 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)     at weka.core.converters.ArffLoader $ ArffReader.readInstance(ArffLoader.java:430)     at weka.core.converters.ArffLoader $ ArffReader。(ArffLoader.java:202)     at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:803)     at de.tuhh.thesis.repower.pcanalysis.BinningWindSpeed.from_CSV_to_ARFF(BinningWindSpeed.java:99)     at 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();

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

a,b

1,2

我真的需要使用“;”

谢谢和问候

1 个答案:

答案 0 :(得分:2)

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

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

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