2013-02-26 10 views
6

Ho bisogno di normalizzare un file CSV. I followed this article written by Jeff Heaton. Si tratta di (alcuni) del mio codice:Come si normalizza un file CSV con 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); 

L'unica differenza tra il mio codice e quello di questo articolo è questa linea:

norm.setOutputFormat(CSVFormat.ENGLISH); 

ho provato ad usarlo, ma sembra che in Encog 3.1.0, quel metodo non esiste. L'errore che ottengo è questo (sembra che il problema è con la linea 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) 

risposta

1

Ecco una funzione per farlo. ... ovviamente è necessario creare un analista

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 ... Stavo cercando questa funzione perché ho perso il progetto in cui l'avevo originariamente utilizzato. Avevo dimenticato di averlo scritto a marzo ! Ho fatto una ricerca per normalizzare un file CSV usando la libreria Encog e ho trovato il mio post ! Ho aiutato il mio io futuro ... Perfetto! Se potessi, inviterò la risposta del mio passato! –