2014-06-21 6 views
1

Я делаю разреженный файл arff, но он не будет загружаться в Weka. Я получаю ошибку, что у меня неправильное количество значений в строке класса @attribute, она ожидает 1 и отклоняет получение 12. Что я делаю неправильно? Мой файл выглядит так: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 

Любые идеи о том, что не так с моим синтаксисом? Я следовал примеру именно из книги Data Mining Виттеном/Франком/Залом. Заранее спасибо!

+0

Не могли бы вы написать об ошибке, пожалуйста? – jjmartinez

+0

Ошибка: weka.core.converters.CSVLoader не удалось загрузить файл ARFF для вопроса data.txt. Причина: неправильное количество значений. Чтение 12, ожидаемое 1, чтение токена [EOL], строка 477. – user3369920

+0

Линия 477 пуста, но строка 476 содержит строку с классом @attribute – user3369920

ответ

0

В вашем документе вы указали 5 атрибутов, но в @data вы добавляете 7 атрибутов, тогда вы должны завершить остальные значения в @data. You can see this in the manual

+0

У меня есть 469 слов в моем списке атрибутов, потому что это общее количество слов в моей сумке слов. Мой файл должен иметь редкое разнообразие. – user3369920

+0

Но вам нужно заполнить те атрибуты, которые вы не должны использовать с 0 в @data – jjmartinez

+0

. Список заполнен, я не включил весь список для краткости, я отметил это с помощью «% есть 469 атрибутов, которые представляют собой мои мешок слов "в оригинальном посте. Помогло бы увидеть весь файл? – user3369920

0

Необходимо также указать имя атрибута для значения класса экземпляра. (См Sparse ARFF file description.)

Файл:

@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} 

Должно быть:

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

проблема в разделе данных. вы должны поставить индекс атрибута класса

, например:

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

исправить это подобно Следующий

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

0
@ATTRIBUTE class string 

Попробуйте использовать это вместо

@attribute class {Odontologia_coletiva, Periodontia, Pediatria, Estomatologia, Dentistica, Ortodontia, Endodontia, Cardiologia, Terapeutica, Terapeutica_medicamentosa, Odontopediatria, Cirurgia} 
Смежные вопросы