2013-03-12 4 views
10

Sto provando a convertire un CSV in ARFF utilizzando il CSVLoader di Weka dalla GUI. Nelle opzioni ho impostato il carattere del contenitore per le stringhe da ", sebbene non ci siano virgolette nel mio file. ottengo il seguente errore:Weka CSVLoader numero di valori errato. Leggi 2, atteso 23

weka.core.converters.CSVLoaderfailed to lead <my file> 
Reason: 
wrong number of values. Read 2, expected 23, read Token[EOL], line 1763 

Qui ci sono linee 1762-1764:

450c787001b004af69428e267c7a4ca1,I_need need_to to_go go_back back_to to_my my_live live_food food_diet diet_PPP PPP_Not Not_90% 90%_like like_before before_CCC CCC_but but_I I_bet bet_I I_could could_do do_75% 75%_without without_losing losing_too too_much much_weight weight_PPP PPP_PPP,2.30,3.50,4.50,2.85,4.50,n,y,y,n,y,AM,297,41728.8,95.58,0.03,42826,0.49,0.17,-12.5611111111,0.248945147679,0.0595238095238 
450c787001b004af69428e267c7a4ca1,It's_ugly ugly_here here_PPP PPP_But But_there there_are are_sparks sparks_PPP PPP_PPP PPP_PPPmoments PPPmoments_PPP PPP_Love Love_PPP,2.30,3.50,4.50,2.85,4.50,n,y,y,n,y,AM,297,41728.8,95.58,0.03,42826,0.49,0.17,-15.91,0.299242424242,0.1 
450c787001b004af69428e267c7a4ca1,I_guess guess_it it_all all_depends depends_on on_your your_mood mood_PPP PPP_PPP PPP_PPPwhy PPPwhy_can't can't_these these_meds meds_be be_any any_damn damn_good good_QQQ,2.30,3.50,4.50,2.85,4.50,n,y,y,n,y,AM,297,41728.8,95.58,0.03,42826,0.49,0.17,-12.9970588235,0.0,0.0344827586207 

Tutte le idee? Non riesco a trovare l'errore.

EDIT--- 

Naturalmente, subito dopo che ho postato ho trovato il "errore" Il CSVLoader non piace i caratteri%. Quindi, ho cambiato la mia domanda: qualcuno sa perché questo è o quali altri personaggi non sono apprezzati da questo?

+1

è un peccato che la gente di weka non possa rendere il lavoro di lettura dei file. – OneSolitaryNoob

risposta

13

questi caratteri solito causano problemi se utilizzati come dati

, = " '* + -%

2

L'errore è causato dal apostrofo in linea 1763.

4

uso questo codice in R lingua e modifica del file risolverà il tuo problema 100%

mydata=read.csv("train.csv",header=TRUE) 
library("foreign") 
write.arff(x =mydata ,file= "train.arff")