1
我试图复制csv到arff指令here。我的代码复制到下面。所产生的arff正确地打印属性部分。然而,没有什么了 “@data” 部分:Weka ArffSaver没有写数据
代码:
public class CsvToArff {
/**
* takes 2 arguments:
* - CSV input file
* - ARFF output file
*/
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("\nUsage: CSV2Arff <input.csv> <output.arff>\n");
System.exit(1);
}
// load CSV
CSVLoader loader = new CSVLoader();
loader.setFieldSeparator(";");
loader.setNominalAttributes("2,5,8,10");
loader.setNoHeaderRowPresent(false);
loader.setSource(new File(args[0]));
loader.getStructure();
Instances data = loader.getDataSet();
// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(data);
saver.setFile(new File(args[1]));
saver.setDestination(new File(args[1]));
saver.writeBatch();
}
}
CSV文件:
PrevPause;PrevPOS;PrevLength;WordPause;WordPOS;WordLength;NextPause;NextPOS;NextLength;Location
625;"JJ";4;156;"NN";4;1234;"FW";1;"OUT"
156;"NN";4;1234;"FW";1;187;"NN";4;"OUT"
1234;"FW";1;187;"NN";4;188;"VBD";3;"OUT"
合力ARFF:
@relation mwe_pred_debug
@attribute PrevPause numeric
@attribute PrevPOS {JJ,NN,FW}
@attribute PrevLength numeric
@attribute WordPause numeric
@attribute WordPOS {NN,FW}
@attribute WordLength numeric
@attribute NextPause numeric
@attribute NextPOS {FW,NN,VBD}
@attribute NextLength numeric
@attribute Location {OUT}
@data
任何想法,为什么最后一节是空白的?
谢谢!你能解释为什么,如果这些方法可以从我的weka.jar访问,它们不可用? – 2014-09-30 11:48:35
它们可用,但不在当前的稳定版本中。我仅仅指出由于这些更改可能存在未记录的问题,但我试图转换您的数据,并且通过了很好的处理。至少这可以作为一个短期的解决方案,但你可能会提出与Weka开发团队的问题。 – 2014-09-30 11:53:16
明白了。谢谢。它对我使用逗号很有帮助,并且摆脱了其他方法。再次感谢你。 – 2014-09-30 19:41:50