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