Проблема разбора Java SimpleDateFormat в WEKA - PullRequest
0 голосов
/ 18 апреля 2011

Клянусь, я использую правильный формат даты, но при загрузке в WEKA получаю ошибку разбора.

"MonFeb2116:00:00+0000"
"EEEMMMddHH:mm:ssZ"

Вот пример набора данных:

@RELATION example

@ATTRIBUTE tweetid STRING 
@ATTRIBUTE timestamp DATE "EEEMMMddhh:mm:ssZ"
@ATTRIBUTE I NUMERIC
@ATTRIBUTE a NUMERIC
@ATTRIBUTE cool NUMERIC
@ATTRIBUTE foo NUMERIC
@ATTRIBUTE bar NUMERIC
@ATTRIBUTE temp NUMERIC
@ATTRIBUTE class {POS,NEG}

@DATA
39715973388828673,"MonFeb2116:00:00+0000",0,0,0,0,2,2,?
39716148329197568,"MonFeb2116:00:42+0000",0,1,0,0,0,1,?
39715973388828673,"MonFeb2116:00:51+0000",1,0,0,0,0,0,?
39723030380941312,"MonFeb2116:28:03+0000",0,0,0,0,0,0,?
39723030531944448,"MonFeb2116:28:03+0000",0,0,0,0,0,0,?
39723031433707520,"MonFeb2116:28:03+0000",0,0,0,0,0,0,?

WEKAОшибка:

unparseable date "MonFeb2116:00:00+0000, read Token[MonFeb2116:00:00+0000], line 21

Использовали документацию API для двойной проверки - что-то пропало?

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

РЕДАКТИРОВАТЬ -----------

@RELATION example

@ATTRIBUTE tweetid STRING 
@ATTRIBUTE timestamp DATE "EEE MMM dd hh:mm:ss Z"
@ATTRIBUTE I NUMERIC
@ATTRIBUTE a NUMERIC
@ATTRIBUTE cool NUMERIC
@ATTRIBUTE foo NUMERIC
@ATTRIBUTE love NUMERIC
@ATTRIBUTE temp NUMERIC
@ATTRIBUTE class {POS,NEG}

@DATA
39715973388828673,"Mon Feb 21 16:00:00 +0000",0,0,0,0,2,2,?
39716148329197568,"Mon Feb 21 16:00:42 +0000",0,1,0,0,0,1,?
39715973388828673,"Mon Feb 21 16:00:51 +0000",1,0,0,0,0,0,?
39723030380941312,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,?
39723030531944448,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,?
39723031433707520,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,?

Отформатированная дата для разделения токенов с пробелом.Все еще не играет в мяч в ВЕКА ...

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Какую локаль по умолчанию вы используете? Используя английскую локаль, строка "MonFeb2116:00:00+0000" должна анализироваться с шаблоном "EEEMMMddHH:mm:ssZ". Однако обратите внимание, что по умолчанию год будет равен 1970, если он отсутствует в шаблоне или в разобранной строке. Это, вероятно, не то, что вы действительно хотите.

1 голос
/ 18 апреля 2011

Ну, я не знаю, будет ли все разбираться или нет, но попробуйте изменить hh (12-часовой формат) на HH (24-часовой формат).Я не уверен, сможет ли он прочитать «имя дня недели / месяца» без пробелов, даже если это так ... у вас есть , чтобы получить значение в этом формате?Если бы вы могли поставить пробел после 3-го и 6-го символов, это помогло бы ...

...