2013-02-26 11 views
6

Ich muss eine CSV-Datei normalisieren. I followed this article written by Jeff Heaton. Dies ist (etwas) von meinem Code:Wie normalisiere ich eine CSV-Datei mit Encog?

File sourceFile = new File("Book1.csv"); 
File targetFile = new File("Book1_norm.csv"); 
EncogAnalyst analyst = new EncogAnalyst(); 
AnalystWizard wizard = new AnalystWizard(analyst); 
wizard.wizard(sourceFile, true, AnalystFileFormat.DECPNT_COMMA); 
final AnalystNormalizeCSV norm = new AnalystNormalizeCSV(); 
norm.analyze(sourceFile, false, CSVFormat.ENGLISH, analyst); 
norm.setProduceOutputHeaders(false); 
norm.normalize(targetFile); 

Der einzige Unterschied zwischen meinem Code und der des Artikels ist diese Linie:

norm.setOutputFormat(CSVFormat.ENGLISH); 

Ich habe versucht, es zu benutzen, aber es scheint, dass in Encog 3.1.0, diese Methode existiert nicht. Der Fehler, den ich bekommen, ist dies ein (es sieht aus wie das Problem mit der Linie ist norm.normalize(targetFile):

Exception in thread "main" org.encog.app.analyst.AnalystError: Can't find column: 11700 
    at org.encog.app.analyst.util.CSVHeaders.find(CSVHeaders.java:187) 
    at org.encog.app.analyst.csv.normalize.AnalystNormalizeCSV.extractFields(AnalystNormalizeCSV.java:77) 
    at org.encog.app.analyst.csv.normalize.AnalystNormalizeCSV.normalize(AnalystNormalizeCSV.java:192) 
    at IEinSoftware.main(IEinSoftware.java:55) 

Antwort

1

Hier ist eine Funktion, es zu tun. ... natürlich müssen Sie einen Analyst

private EncogAnalyst _analyst; 

public void NormalizeFile(FileInfo SourceDataFile, FileInfo NormalizedDataFile) 
{ 
    var wizard = new AnalystWizard(_analyst); 
    wizard.Wizard(SourceDataFile, _useHeaders, AnalystFileFormat.DecpntComma); 
    var norm = new AnalystNormalizeCSV(); 
    norm.Analyze(SourceDataFile, _useHeaders, CSVFormat.English, _analyst); 
    norm.ProduceOutputHeaders = _useHeaders; 
    norm.Normalize(NormalizedDataFile); 
} 
+2

wow ... Ich suchte nach dieser Funktion, da ich das Projekt verlor, in dem ich es ursprünglich verwendet hatte. Ich hatte vergessen, dass ich das zurück im März schrieb Ich habe eine Suche nach der Normalisierung einer CSV-Datei mit der Encog-Bibliothek durchgeführt und dabei meinen eigenen Beitrag gefunden ! Ich half meinem zukünftigen Selbst ... Perfekt! Wenn ich könnte, würde ich die Antwort meiner Vergangenheit selbst auffrischen! –

Verwandte Themen