ARFF для обработки естественного языка

Я пытаюсь взять набор обзоров и преобразовать их в формат ARFF для использования с WEKA. К сожалению, либо я совершенно не понимаю, как работает формат, либо мне придется иметь атрибут для ВСЕХ возможных слов, а затем индикатор присутствия. Кто-нибудь знает лучший способ или в идеале есть образец файла ARFF?


person Dean Barnes    schedule 28.05.2011    source источник


Ответы (2)


Если вы храните отзывы в текстовых файлах и разных папках (в вашем случае положительные и отрицательные), вы можете использовать TextDirectoryLoader.

Вы найдете это в приложении KnowledgeFlow в Weka или в командной строке. Подробнее здесь: http://weka.wikispaces.com/ARFF+files+from+Text+Collections

person zdepablo    schedule 29.05.2011
comment
Является ли формат файлов одним экземпляром, скажем, обзором, на строку в файлах txt? - person Dean Barnes; 30.05.2011

Потребовалось время, чтобы разобраться, но с этим input.arff:

@relation text_files

@attribute review string
@attribute sentiment {0, 1}

@data
"this is some text", 1
"this is some more text", 1
"different stuff", 0

И эта команда:

java -classpath "C:\\Program Files\\Weka-3-6\\weka.jar" weka.filters.unsupervised.attribute.StringToWordVector -i input.arff -o output.arff

Производится следующее:

@relation 'text_files-weka.filters.unsupervised.attribute.StringToWordVector-R1-W1000-prune-rate-1.0-N0-stemmerweka.core.stemmers.NullStemmer-M1-tokenizerweka.core.tokenizers.WordTokenizer -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\"'

@attribute sentiment {0,1}
@attribute different numeric
@attribute is numeric
@attribute more numeric
@attribute some numeric
@attribute stuff numeric
@attribute text numeric
@attribute this numeric

@data

{0 1,2 1,4 1,6 1,7 1}
{0 1,2 1,3 1,4 1,6 1,7 1}
{1 1,5 1}
person Dean Barnes    schedule 28.05.2011
comment
Знаете ли вы, что представляют кортежи типа 0 1, разделенные запятыми в {0 1,2 1,4 1,6 1,7 1}? Я думаю, что это отличается от обычного формата .arff. Удалось ли вам получить значимые результаты с WEKA? - person Zhubarb; 05.03.2014
comment
Это довольно старый пост, но насколько я помню, первая цифра в кортеже — это номер @атрибута, а вторая цифра — количество вхождений в строке. Я думаю, что в определенной степени это может означать то, что вы хотите, если вы понимаете, что означают результаты. - person Dean Barnes; 05.03.2014