2011-11-29 20 views
7

¿Podrías decirme cómo representar el atributo o clase para la clasificación de texto en weka? ¿Usando qué atributo puedo hacer la clasificación? ¿Frecuencia de palabra o solo palabra? ¿Cuál sería la estructura posible del formato ARFF? ¿Puedes darme varias líneas de ejemplo de esa estructura?¿Cómo se representa el texto para la clasificación en weka?

Muchas gracias de antemano.

Respuesta

11

Una de las alternativas más fáciles es comenzar con un archivo ARFF para un problema de dos clases como:

 
@relation corpus 

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

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

El texto se representa como un tipo de cuerda y la clase es un nominal con dos valores.

Posteriormente, se podría aplicar dos filtros:

  1. StringToWordVector que transforma el texto en una representación vectorial palabra. El filtro usa un atributo para cada palabra. Puede modificar los parámetros para elegir representación binaria/frecuencia, derivación o palabras vacías. La mejor representación depende del problema. Si el texto no es largo, generalmente la representación binaria es suficiente.
  2. Reordenar para mover el atributo de clase a la última posición, Weka supone que está allí.

Puede encontrar más información y otros enfoques para transformar los datos en esta página wiki Weka: http://weka.wikispaces.com/Text+categorization+with+WEKA

0

En weka, usted puede elegir su propio atributo. En este ejemplo, solo tenemos 2 clases y todas las palabras únicas se usan como atributos. Si elige la frecuencia de las palabras como su atributo, entonces asigna '2' si esa palabra aparece dos veces en su texto, y '0' si no, o '1' si esa palabra aparece solo una vez.

Aquí está el ejemplo del formato .arff.

@RELATION anyrelation 

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

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