Как представить текст для классификации в weka? - PullRequest
8 голосов
/ 29 ноября 2011

Подскажите, пожалуйста, как представить атрибут или класс для классификации текста в weka. Используя какой атрибут я могу сделать классификацию? частота слов или просто слово? Какая будет возможная структура формата ARFF? Можете ли вы привести несколько примеров этой структуры?

Большое спасибо заранее.

Ответы [ 2 ]

11 голосов
/ 30 ноября 2011

Одна из самых простых альтернатив - начать с файла ARFF для задачи двух классов, такой как:

@relation corpus 

@attribute text string
@attribute class {pos,neg}

@data
'long text with words ... ',pos

Текст представлен в виде типа String, а класс является именным с двумя значениями.

Тогда вы можете применить два фильтра:

  1. StringToWordVector , который преобразует тексты в векторное представление слова. Фильтр использует атрибут для каждого слова. Вы можете настроить параметры, чтобы выбрать двоичное / частотное представление, основание или стоп-слова. Лучшее представление зависит от проблемы. Если текст не длинный, обычно достаточно двоичного представления.
  2. Переупорядочить , чтобы переместить атрибут класса в последнюю позицию, Века предполагает, что он там.

Вы можете найти больше информации и других подходов для преобразования ваших данных на этой вики-странице Weka: http://weka.wikispaces.com/Text+categorization+with+WEKA

0 голосов
/ 15 июля 2015

В weka вы можете выбрать свой собственный атрибут. В этом примере у нас есть только 2 класса, и все уникальные слова используются в качестве атрибутов. Если в качестве атрибута вы выбираете частоту слов, вы назначаете «2», если это слово встречается в вашем тексте дважды, и «0», если нет, или «1», если это слово встречается только один раз.

Вот пример .arff формата.

@RELATION anyrelation

@ATTRIBUTE word1
@ATTRIBUTE word2
...
@ATTRIBUTE wordn
@ATTRIBUTE class {class1, class2}

@DATA
1,2,....,0,class1
0,3,....,1,class2
...