Nota: Esta entrada fue migrada a mi nuevo sitio de Programación Java.
La clasificación de textos puede ser muy útil para varias tareas. Tomemos, por ejemplo, la tarea de distinguir entre distintos sitios de internet cuáles son interesantes para mí o identificar a qué categoría (éstas podrían ser: policiales, deportes, internacionales, etc) pertenece un determinado texto.
Antispam
Para este pequeñíiiiiiiiisimo (y muy simple) ejemplo, vamos a utilizar Näive Bayes (NB) como algoritmo de clasificación por ser uno de los métodos de aprendizaje más fáciles de implementar y uno de los más efectivos para clasificación de textos.
La herramienta para llevar a cabo la clasificación será Weka
Para este caso particular vamos a asumir que hay independencia entre las palabras cosa que NO es cierta. En nuestro caso, este clasificador dará como iguales las frases "no quiero, no quiero, no quiero" y "quiero! quiero! quiero! no! no! no!".
Codificación de ejemplos:
Set de entrenamiento (training-set.csv):
text,class
'hey, buy this from me!',SPAM
'do you want to buy?',SPAM
'I have a party tonight!',NO_SPAM
'today it is a nice weather',NO_SPAM
'you are best',SPAM
'I have a horse',NO_SPAM
'you are my friend',NO_SPAM
'buy, buy, buy',SPAM
'it is spring in the air',NO_SPAM
'do you want to come?',NO_SPAM
Set de pruebas (test-set.csv):
text,class
'you want to buy from me?',?
'usually I run in stairs',?
'buy it now!',?
'buy, buy, buy!',?
'you are the best, buy!',?
'it is spring in the air',?
Filtros:
Abrimos el Weka.
En Filter, presionamos "Choose" y seleccionamos "Miltifilter", ahí mismo, seleccionamos dos filtros más que irán combinados por acción del primero: NominalToString y StringToWordVector.
No voy a explicar mucho este último filtro y lo voy a utilizar con su configuración estándar, pero jueguen con él y prueben distintas cosas.
Den "Apply" para aplicar el filtro.
Clasificación
Una vez hecho esto, vamos a la solapa de "Classify".
Seleccionanos "Naive Bayes" como clasificador (weka -> classifiers -> bayes -> Naive Bayes).
Seleccionamos "Use training set" y "(Nom) class", para que clasifique en función de ese atributo (que es la clase).
100%. Bueno, ya tenemos la primera parte =P.
CONTINUARÁ...
Referencia:
El ejemplo lo saqué de http://www.hakank.org/weka/.
martes, 6 de enero de 2009
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario