Práctica 2. Desarrollo de un sistema CBR con WEKA

MRA, 2012/13


Índice General

Descripción de la práctica

El trabajo consistirá en implementar un prototipo de una herramienta de ayuda para la gestión de noticias.

Se seguirá el esquema de los sistemas CBR para auxiliar a los usuarios en las tareas de identificar la temática de las noticias y asignarles una serie de palabras clave que las describan.

No es necesario hacer pruebas para estudiar y ajustar los distintos parámetros posibles. Sí se pide realizar una evaluación sencilla para ver como evoluciona el porcentaje de aciertos y errores a medida que se van procesando los nuevos casos.

Objetivos

Desarrollo de la práctica

Dado que se trata de un prototipo para mostrar el desarrollo de sistemas CBR, se harán una serie de simplificaciones.

Cada caso está almacenado en un fichero XML (se aporta código para su lectura y escritura).

El funcionamiento de cada una de las fases del esquema CBR se describe en las siguientes secciones.

Esquema general

Pseudocódigo del ciclo CBR:

BaseCasos baseCasos = new BaseCasos();
baseCasos.inicializar(".../base_casos");

bucle:
  CasoCBR casoResolver = new CasoCBR();
  casoResolver.cargaXML(fichero);
  
  casosSimilares = RECUPERAR(baseCasos, casoResolver);
  CasoCBR casoResuelto = REUTILIZAR(casoResolver, casosSimilares);
  CasoSBR casoRevisado = REVISAR(casoResuelto, temaReal);
  RETENER(casoRevisado, baseCasos);
fin_bucle;

Almacenamiento de la BASE DE CASOS

Inicialización de la BASE DE CASOS

 

Antes de iniciar el ciclo de CBR se deberá construir la representación en memoria de la base de casos a partir del directorio ''base_casos''.

Información sobre KDTree en WEKA: weka.core.neighboursearch.KDTree

Fase RECUPERAR

Se recuperarán los $K$ casos del KDTree que representa en memoria a la BASE DE CASOS cuyos TITULO y RESUMEN sea más similares a los del caso a resolver. Los valores de $K$ a usar serán mayores o iguales a 15.

Fase REUTILIZAR

Los $K$ casos similares recuperados se utilizarán para identificar la temática del caso a resolver y para asignarle sus palabras clave.

(a) Asignación de temática

Se usará el TEXTO COMPLETO de los $K$ casos similares para entrenar un clasificador maquina de vectores de soporte (SVM) (clase weka.classifiers.functions.SMO en WEKA). El atributo clase se construirá a partir del campo TEMA de cada uno de esos $K$ casos.

Con el TEXTO COMPLETO del caso a resolver se crea un objeto Instance. La salida que ofrezca el clasificador para esa instancia se usará para asignar el tema del caso a resolver.

(b) Asignación de palabras clave

Para implementar la asignación de palabras clave a la noticia se empleará un selector de atributos (weka.attributeSelection.AttributeSelection).

Fase REVISAR

Se simulará la revisión por parte de un usuario humano empleando la información sobre el tema del caso a resolver presente en su fichero XML.

No se contempla el proceso de revisión sobre las palabras clave propuestas, la lista propuesta se aceptará siempre como correcta.

Fase RETENER

Se implementará una aproximación inspirada en los métodos crecientes de selección de ejemplos.

Criterios para retener casos

 

En el directorio ''base_casos'' se guardará una copia del fichero XML del caso revisado con la información definitiva que se ha generado.

Los casos recordados se introducirán también en el KDTree que representa a la BASE DE CASOS en memoria.

Aclaraciones

Comentarios sobre StringToWordVector

Los filtros StringToWordVector se usan en las fases de Recuperación (con TITULO y RESUMEN) y en la Reutilización (con TEXTO COMPLETO).

Esta clase tiene varios parámetros para controlar la forma de transformar un texto en un vector de palabras y el modo de asignar valores a los atributos (palabras) resultantes.

Mas información: StringToWordVector

Herramientas y Recursos

Importante: El esquema descrito hace uso de clases que sólo están presentes en la versión 3.6.x de Weka, que a su vez require usar la versión de Java 6.0 o superior.

Normas de entrega

Práctica individual o en parejas.

Debe entregarse una memoria en papel (8-10 págs máximo) junto con el código fuente en CD o enviado por e-mail.

Memoria: Se trata de una memoria descriptiva de la implementación. No es necesario documentar aspectos teóricos. Un esquema posible es:

Fecha límite de entrega: (07/05/2013)



Santiago Fernández Lanza 2013-01-07