2014-06-21 6 views
1

Je crée un fichier arff clairsemé mais il ne sera pas chargé dans Weka. Je reçois l'erreur que j'ai le mauvais nombre de valeurs dans la ligne de classe @attribute, il attend 1 et refuse de recevoir 12. Que fais-je tort? Mon fichier ressemble à ceci:weka sparse arff file

%ARFF file for questions data 
% 

@relation brazilquestions 

@attribute att0 numeric 
@attribute att1 numeric 
@attribute att2 numeric 
@attribute att3 numeric 
%there are 469 attributes which represent my bag of words 
@attribute class {Odontologia_coletiva, Periodontia, Pediatria, Estomatologia, 
Dentistica, Ortodontia, Endodontia, Cardiologia, Terapeutica, 
Terapeutica_medicamentosa, Odontopediatria, Cirurgia} 


@data 
{126 1, 147 1, 199 1, 56 1, 367 1, 400 1 , Estomatologia} 
{155 1, 76 1, 126 1, 78 1, 341 1, 148 1, Odontopediatria} 
%and then 81 more instances of data 

Des idées sur ce qui ne va pas avec ma syntaxe? J'ai suivi l'exemple exactement du livre Data Mining de Witten/Frank/Hall. Merci d'avance!

+0

Pourriez-vous écrire l'erreur? – jjmartinez

+0

L'erreur se lit comme suit: weka.core.converters.CSVLoaderfailed pour charger le fichier 'ARFF pour question data.txt'. Raison: un mauvais nombre de valeurs. Lire 12, attendu 1, lire Token [EOL], ligne 477. – user3369920

+0

La ligne 477 est vide, mais la ligne 476 contient la ligne avec la classe @attribute – user3369920

Répondre

0

Dans votre document, vous avez déclaré 5 attributs, mais dans @data vous ajoutez 7 attributs, vous devez alors compléter le reste des valeurs dans @data. You can see this in the manual

+0

J'ai 469 mots dans ma liste d'attribut parce que c'est le nombre total de mots dans mon sac de mots. Mon dossier est censé être de la variété clairsemée. – user3369920

+0

Mais vous devez compléter les attributs que vous n'utilisez pas avec 0 dans la @data – jjmartinez

+0

La liste est complète, je n'ai pas inclus toute la liste pour la brièveté, je l'ai noté avec "% il y a 469 attributs qui représentent mon sac de mots "dans le message original. Cela aiderait-il à voir le fichier entier? – user3369920

0

Le nom de l'attribut pour la valeur de la classe d'instance doit également être répertorié. (Voir la Sparse ARFF file description.)

Votre fichier:

@attribute myclass {Odontologia_coletiva, Periodontia, Pediatria, Estomatologia, 
Dentistica, Ortodontia, Endodontia, Cardiologia, Terapeutica, 
Terapeutica_medicamentosa, Odontopediatria, Cirurgia} 

@data 
{126 1, 147 1, 199 1, 56 1, 367 1, 400 1 , Estomatologia} 

devrait être:

@data 
{126 1, 147 1, 199 1, 56 1, 367 1, 400 1 , myclass Estomatologia} 
1

le problème dans la section de données. vous devez mettre l'index de l'attribut class

par exemple:

{126 1 147 1 199 1, 56 1, 367 1, 400 1, Estomatologia}

corriger comme la suivant

{126 1, 147 1, 199 1, 56 1, 367 1, 400 1, 470 Estomatologia}

0
@ATTRIBUTE class string 

Essayez d'utiliser à la place de

@attribute class {Odontologia_coletiva, Periodontia, Pediatria, Estomatologia, Dentistica, Ortodontia, Endodontia, Cardiologia, Terapeutica, Terapeutica_medicamentosa, Odontopediatria, Cirurgia} 
Questions connexes