Está en la página 1de 28

PROCESADO LENGUAJE NATURAL

INTELIGENCIA ARTIFICIAL CESAR ALBERTO ESCRIBANO OTERO

SANTIAGO NOVILLO ROLDAN

Procesamiento del Lenguaje Natural

IA

Tabla de contenido
OBJETIVOS ..................................................................................................................................... 3 ENUNCIADO................................................................................................................................... 3 INSTALACION DE LA HERRAMIENTA KETTLE ................................................................................. 3 CREANDO LA COLECCIN DE DATOS ............................................................................................ 4 PROCESAMIENTO DE LOS ARTCULOS EN RAPID MINER .............................................................. 6 ALGORITMOS DE CLASIFICACIN .................................................................................................. 9 ALGORITMO DE REGLAS ....................................................................................................................... 9 RESULTADOS ....................................................................................................................... 10 ALGORITMO DE REGLAS VALIDACIN CRUZADA ................................................................ 12 MATRIZ DE CONFUSIN REGLAS ......................................................................................... 12 ALGORITMO DE BAYES-INGENUO .................................................................................................. 13 RESULTADOS ....................................................................................................................... 13 ALGORITMO BAYESIANO VALIDACIN CRUZADA ............................................................... 13 MATRIZ DE CONFUSIN BAYES ........................................................................................... 14 ALGORITMO DE ARBOL ID3 ............................................................................................................... 14 RESULTADOS ....................................................................................................................... 16 ALGORITMO ID3 VALIDACION CRUZADA ............................................................................ 17 ALGORITMO ID3 VALIDACION SPLIT ................................................................................... 17 ALGORITMO DE ARBOL DE DECISION C4.5 (W-J48) ................................................................ 20 RESULTADOS ....................................................................................................................... 21 ALGORITMO DE ARBOL DE DECISION C4.5 (W-J48) VALIDACION CRUZADA ...................... 22 MAQUINA DE SOPORTE VECTORIAL (SVM) ................................................................................. 22 RESULTADOS ....................................................................................................................... 24 ALGORITMO SVM VALIDACION CRUZADA .......................................................................... 24 ALGORITMO DE GENERACIN DE REGLAS RIPPER (W-JRip) ................................................ 25 RESULTADOS ....................................................................................................................... 26 RIPPER VALIDACION CRUZADA ........................................................................................... 26 EVALUACIN DE LOS RESULTADOS ............................................................................................. 26

Procesamiento del Lenguaje Natural

IA

OBJETIVOS
Conocer distintos algoritmos para el Procesado de Lenguaje Natural. Uso de una herramienta para recuperacin y procesado de datos. Para ello vamos a trabajar con la herramienta Kettle (Pentaho Data Integration).

ENUNCIADO
En esta prctica vamos a construir un sistema que, dado el texto de una noticia periodstica, sea capaz de clasificarla de forma automtica como una noticia de economa, cultura, deportes o ciencia y tecnologa. La prctica se compone de los siguientes pasos: Primero vamos a construir una coleccin de datos de noticias clasificadas temticamente. Para ello vamos a usar la herramienta Kettle (http://kettle.pentaho.com/). Crear con Kettle un proceso que descargue de internet noticias en formato RSS de al menos dos peridicos espaoles. Debe descargar cuatro categoras: cultura, deportes, economa y ciencia. Procesar los datos para que guarde el ttulo y la descripcin de las noticias de cada categora. Debe crear, para cada categora, un directorio con archivos de texto plano (.txt). Cada archivo txt debe contener el ttulo y la descripcin de una noticia (debe haber un txt para cada noticia dentro de cada categora). Una vez que tenemos la coleccin de noticias, vamos a usar Rapid Miner para procesar los documentos de texto y entrenar un clasificador. Para poder clasificar correctamente los textos, debemos aplicar algunos algoritmos de preprocesado vistos en la unidad. El proyecto Rapid Miner debe realizar los siguientes procesos con los textos antes del aprendizaje: Tokenizacin (separacin del texto en palabras). Aplicar Lista de Parada para eliminar palabras poco representativas. Extraccin de Races En este punto tendremos la coleccin con los datos preprocesados, pero el nmero de atributos ser muy grande, por lo que vamos a hacer un filtrado de atributos quedndonos con el 10% de los atributos con mayor ratio de ganancia de informacin. A continuacin probamos varios algoritmos de clasificacin y evaluamos los resultados (de forma similar a tarea de unidad 3).

INSTALACION DE LA HERRAMIENTA KETTLE


Descargamos el archivo de la siguiente pgina

Procesamiento del Lenguaje Natural

IA

Una vez obtenido el archivo descomprimimos en un directorio, y ejecutamos la aplicacin, haciendo doble click en spon.bat, dado que es un programa en java debemos tener un JRE (versin 1.5 o superior).

CREANDO LA COLECCIN DE DATOS


El primer paso una vez abierta la aplicacin es ir (en el men principal) Fichero Nuevo Transformacin con esto crearemos nuestro proyecto de transformacin en la aplicacin. Como debemos descargar noticias de internet en formato RSS, colocamos una caja de

la carpeta Entrada llamada RSS Input . En esta caja haciendo doble clic sobre ella hay que introducir las direcciones de internet donde estn alojadas las noticias en formato RSS de los peridicos. Se han introducido 3 direcciones por tipo de noticia.

En este caso introducimos las URL que contienen las noticias de cultura. Por otro lado para procesar los datos para que guarde el ttulo y la descripcin de las noticias, se indica en la pestaa Fields , lo que nos interesa guardar de cada noticia.

Procesamiento del Lenguaje Natural

IA

Una vez hecho esto, se aade una caja para la almacenar el resultado, de la carpeta salida escogemos el elemento Salida Fichero de Texto, en este caso procedemos a indicar la salida, introduciendo la ruta donde se guardarn los ficheros de texto, indicando el nombre correspondiente en cada caso para los ficheros (cultura, deportes, economa y ciencia). Es importante indicar en la pestaa Contenido en el apartado Separar cadafilas cambiar el 0 por 1, para que la salida sea de un fichero por noticia. Estos pasos hay que seguirlos para los 3 inputs restantes, una vez hecho se unen las cajas por medio de conectores y se pulsa la tecla de ejecucin para generar los ficheros para cada una de las noticias.

Podemos observar como se ha ejecutado correctamente, tenemos un resumen en los resultados de ejecucin, con los ficheros que se han creado, concretamente: 71 para cultura. 53 para deportes. 65 para economa. 75 para ciencia. Los archivos de cada tipo se alojan en una carpeta diferente, con lo cual tendremos 4 carpetas con las diferentes noticias extraidas.

Procesamiento del Lenguaje Natural

IA

Y a continuacin podemos ver un ejemplo de cmo se han recogido las noticias.

PROCESAMIENTO DE LOS ARTCULOS EN RAPID MINER


Como ya tenemos la coleccin de noticias, abrimos Rapid Miner para procesar los documentos obtenidos previamente. Ahora se trata por un lado de pre-procesar el documento y luego seleccionar los atributos que mayor ganancia de informacin tengan. El esquema que se va a utilizar para esto es el siguiente.

1) Process Documents from Files Este operador genera atributos de cada palabra a partir de la coleccin de textos almacenados en varios archivos.

Procesamiento del Lenguaje Natural

IA

Puesto que los ficheros de texto los tenemos almacenados en carpetas, este proceso se encarga de crear un conjunto de datos de entrada con todas las noticias contenidas dentro de cada carpeta. Para ello editamos los directorios haciendo clic en para aadir las carpetas que contienen las noticias, asignndoles la categora a la que pertenecen, como podemos ver en la siguiente imagen.

2) Weight by Information Gain Ratio Este operador calcula la relevancia de los atributos basados en la relacin de ganancia de informacin y asigna pesos a las mismas. Por tanto dejamos marcado, que normalice por peso, que ordene por peso y ordenamos la salida de manera descendente.

Dado que cada palabra es un atributo, tendremos una coleccin muy extensa de atributos. Por tanto lo se debe hacer es filtrar atributos para tener una coleccin ms manejable y quedarnos slo con los atributos que tengan una mayor ganancia de informacin. 3) Select by Weights Selecciona slo aquellos atributos de entrada cuyos pesos son superiores al criterio especificado, con respecto a los pesos de entrada.

Con esto estamos indicando que queremos quedarnos con el 10% de los atributos que proporcionan mayor ganancia de informacin. En algn algoritmo
Procesamiento del Lenguaje Natural

IA

vamos a cambiar el porcentaje, aunque siempre oscilar entre el 8-12%. Es una heurstica que da buenos resultados en la prctica quedarse con entorno al 10% de los trminos que obtienen mejor valor con respecto a esta mtrica. En el operador Process Documents from Files hay que indicar cmo se extraen los atributos del texto y que forma queremos que tengan esos atributos, para esto hacemos doble click sobre la caja y nos aparece una nueva vista en blanco. En esta nueva rea de trabajo aadiremos los procesos de procesamiento, para escritos en lenguaje natural. A. Tokenize (Tokenizar) divide el texto de un documento en palabras (tokens). Se ha indicado el espacio en blanco como separador de palabras. B. Transform Case trasforma todo el texto a letras maysculas o minsculas, en nuestro caso a minsculas. C. Filter Stopwords (Filtrar palabras comunes) aplica una lista de parada para eliminar aquellas palabras muy comunes (artculos, determinantes, etc). Este documento se ha elaborado con el contenido de 2 listas de internet, a la que se le han aadido las preposiciones. D. Filter Tokens filtrado de los tokens por su longitud(es decir el nmero de caracteres que contiene) por si nos interesara eliminar palabras muy cortas o muy largas. En nuestro caso se establece el mnimo en 4 caracteres y el mximo en 25. E. Stem(Snowball) Para extraer lexemas, separa cada palabra en razdesinencia y nos quedamos solo con la raz. Esto se hace porque no nos importa el gnero, el nmero o el tiempo verbal de las palabras de cara a clasificar. Proporciona distintos tipos de algoritmos para una lengua determinada. Se indica el idioma (Espaol en nuestro caso). NOTA: Se ha probado con Stem(Dictionary) extrado de la pgina web : http://snowball.tartarus.org/algorithms/spanish/stemmer.html pero los resultados no han mejorado los resultados que proporciona Stem(Snowball). Tambin se ha probado el operador replace tokens, pero los resultados no han sido los esperados, quizs por no realizar bien las sustituciones.

Procesamiento del Lenguaje Natural

IA

ALGORITMOS DE CLASIFICACIN
ALGORITMO DE REGLAS
Este algoritmo construye una regla que cubre un subconjunto de datos. Siempre intenta maximizar la efectividad o porcentaje de acierto de la regla. El procedimiento trata cada valor posible de cada atributo y selecciona la condicin con mayor ganancia de informacin. PARMETROS Criterio Especifica el criterio para la seleccin de atributos. Con 2 valores: o Information_gain La entropa de todos los atributos se calcula, esto tiene un sesgo hacia la seleccin de atributos con un gran nmero de valores. o Acuracy (precisin) maximiza la precisin del conjunto de reglas. Va a ser el elegido en nuestro caso. Sample ratio Especifica la relacin de muestra de los datos de entrenamiento utilizados para el cultivo y poda. Probamos con 1 y con 0.1 Pureness indica la pureza deseada, la proporcin mnima de la clase principal en un subconjunto cubierto a fin de considerar el subconjunto puro. Con 0.9. Minimal prune benefit especifica la cantidad mnima de beneficio que debe ser excedido durante el desarrollo. Se utiliza 0.5, como valor ptimo. Use local random seed indica si se utiliza una semilla local para la aleatorizacin.

Como los resultados deben proporcionar informacin para cada palabra, elijo el criterio acuracy, ofreciendo dos versiones de resultados con un sample ratio de 0,1 y de 1, el

Procesamiento del Lenguaje Natural

IA

parmetro minimal prune benefit lo sito en el 0.5 en ambos casos, no utilizo semilla en ningn caso. RESULTADOS Con sample ratio = 1 RuleModel
if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if cientif > 0.035 then Ciencia (0 / 13 / 0 / 0) beb > 0.088 then Cultura (0 / 0 / 8 / 0) chipr > 0.055 then Economia (0 / 0 / 0 / 27) director > 0.124 then Cultura (0 / 0 / 6 / 0) univers > 0.044 then Ciencia (0 / 6 / 0 / 0) escritor > 0.092 then Cultura (0 / 0 / 6 / 0) desarroll > 0.081 then Ciencia (0 / 4 / 0 / 0) escuch > 0.092 then Deportes (5 / 0 / 0 / 0) mision > 0.040 then Ciencia (0 / 4 / 0 / 0) cin > 0.087 then Cultura (0 / 0 / 4 / 0) madr > 0.180 then Deportes (4 / 0 / 0 / 0) objet > 0.049 then Ciencia (0 / 4 / 0 / 0) oscar > 0.107 then Cultura (0 / 0 / 4 / 0) tecnic > 0.178 then Deportes (4 / 0 / 0 / 0) parec > 0.051 then Ciencia (0 / 4 / 0 / 0) artist > 0.222 then Cultura (0 / 0 / 3 / 0) lesion > 0.164 then Deportes (3 / 0 / 0 / 0) descubiert > 0.050 then Ciencia (0 / 3 / 0 / 0) novel > 0.108 then Cultura (0 / 0 / 3 / 0) celebr > 0.153 then Deportes (2 / 0 / 0 / 0) preferent > 0.082 then Economia (0 / 0 / 0 / 8) esta > 0.167 then Deportes (2 / 0 / 0 / 0) marin > 0.085 then Ciencia (0 / 3 / 0 / 0) premi > 0.270 then Cultura (0 / 0 / 3 / 0) imagen > 0.365 then Deportes (2 / 0 / 0 / 0) roc > 0.100 then Ciencia (0 / 3 / 0 / 0) esta > 0.143 then Cultura (0 / 0 / 2 / 0) blanc > 0.137 then Deportes (2 / 0 / 0 / 0) muse > 0.107 then Cultura (0 / 0 / 2 / 0) irlandes > 0.239 then Deportes (2 / 0 / 0 / 0) matemat > 0.110 then Ciencia (0 / 2 / 0 / 0) music > 0.110 then Cultura (0 / 0 / 2 / 0) ahorr > 0.052 then Economia (0 / 0 / 0 / 4) marc > 0.255 then Deportes (2 / 0 / 0 / 0) sistem > 0.045 then Ciencia (0 / 2 / 0 / 0) paul > 0.118 then Cultura (0 / 0 / 2 / 0) ultim > 0.155 then Deportes (2 / 0 / 0 / 0) artist > 0.110 then Ciencia (0 / 1 / 0 / 0) blanc > 0.048 then Ciencia (0 / 1 / 0 / 0) agradec > 0.111 then Cultura (0 / 0 / 1 / 0) habl > 0.106 then Economia (0 / 0 / 0 / 4) escuch > 0.082 then Deportes (4 / 0 / 0 / 0) britan > 0.101 then Ciencia (0 / 1 / 0 / 0) busc > 0.130 then Cultura (0 / 0 / 1 / 0) busc > 0.043 then Ciencia (0 / 1 / 0 / 0) estren > 0.111 then Cultura (0 / 0 / 1 / 0) cienci > 0.122 then Ciencia (0 / 1 / 0 / 0) evit > 0.106 then Cultura (0 / 0 / 1 / 0) econom > 0.511 then Ciencia (0 / 1 / 0 / 0) gobiern > 0.120 then Cultura (0 / 0 / 1 / 0) econom > 0.045 then Economia (0 / 0 / 0 / 3) baj > 0.218 then Deportes (1 / 0 / 0 / 0) exig > 0.143 then Ciencia (0 / 1 / 0 / 0) escuch > 0.076 then Cultura (0 / 0 / 1 / 0) escuch > 0.075 then Deportes (3 / 0 / 0 / 0) investig > 0.090 then Ciencia (0 / 1 / 0 / 0)

Procesamiento del Lenguaje Natural

IA

10

if derrot > 0.115 then Cultura (0 / 0 / 1 / 0) if lun > 0.092 then Ciencia (0 / 1 / 0 / 0) if latin > 0.116 then Cultura (0 / 0 / 1 / 0) if pag > 0.047 then Economia (0 / 0 / 0 / 3) if esta > 0.033 then Ciencia (0 / 1 / 0 / 0) if leer > 0.069 then Cultura (0 / 0 / 1 / 0) if caj > 0.234 then Deportes (1 / 0 / 0 / 0) if leer > 0.060 then Ciencia (0 / 1 / 0 / 0) if caj > 0.113 then Cultura (0 / 0 / 1 / 0) if segund > 0.251 then Deportes (1 / 0 / 0 / 0) if millon > 0.070 and millon 0.216 then Ciencia (0 / 2 / 0 / 0) if part > 0.154 then Cultura (0 / 0 / 1 / 0) if comision > 0.052 then Economia (0 / 0 / 0 / 2) if part > 0.101 then Deportes (1 / 0 / 0 / 0) if pelicul > 0.119 then Cultura (0 / 0 / 1 / 0) if escuch > 0.072 and crec 0.121 then Deportes (2 / 0 / 0 / 0) else Ciencia (13 / 15 / 15 / 15) correct: 227 out of 270 training examples.

Con sample ratio =0.1 RuleModel


if cientif > 0.039 then Ciencia (0 / 13 / 0 / 0) if escritor > 0.095 then Cultura (0 / 0 / 6 / 0) if alfombr > 0.304 then Cultura (0 / 0 / 3 / 0) if eur > 0.080 then Economia (1 / 0 / 0 / 12) if crec > 0.104 then Ciencia (1 / 1 / 0 / 2) if artist > 0.120 then Cultura (0 / 1 / 4 / 0) if cost > 0.093 then Ciencia (2 / 1 / 0 / 2) if univers > 0.085 then Ciencia (0 / 6 / 1 / 0) if beb > 0.100 then Cultura (0 / 0 / 7 / 0) if cienci > 0.122 then Ciencia (0 / 1 / 0 / 0) if desarroll > 0.107 then Ciencia (0 / 4 / 0 / 0) if escuch > 0.077 then Deportes (13 / 1 / 0 / 4) if pelicul > 0.093 then Cultura (0 / 0 / 5 / 0) if millon > 0.037 then Ciencia (0 / 3 / 0 / 6) if cin > 0.099 then Cultura (0 / 0 / 2 / 0) if matemat > 0.110 then Ciencia (0 / 2 / 0 / 0) if escuch > 0.076 then Cultura (1 / 0 / 1 / 1) if blanc > 0.097 then Ciencia (1 / 2 / 0 / 0) if escuch > 0.034 and albicelest 0.143 then Cultura 11) if baj > 0.051 then Ciencia (1 / 1 / 0 / 0) if sistem > 0.045 then Ciencia (0 / 3 / 0 / 1) if descubiert > 0.125 then Ciencia (0 / 1 / 0 / 0) if evit > 0.154 then Cultura (0 / 0 / 1 / 2) if ayud > 0.046 then Ciencia (0 / 2 / 0 / 1) if latin > 0.116 then Cultura (0 / 0 / 1 / 0) if debut > 0.116 then Cultura (1 / 0 / 1 / 0) if empres > 0.102 then Ciencia (0 / 3 / 0 / 2) if derrot > 0.115 then Cultura (0 / 0 / 1 / 0) if gobiern > 0.074 then Cultura (0 / 0 / 1 / 3) if caj > 0.113 then Cultura (1 / 0 / 1 / 0) if cienci > 0.045 then Ciencia (0 / 1 / 0 / 0) if busc > 0.124 then Cultura (0 / 0 / 1 / 0) else Deportes (2 / 2 / 2 / 1) correct: 116 out of 180 training examples.

(8 / 4 / 10 /

Procesamiento del Lenguaje Natural

IA

11

ALGORITMO DE REGLAS VALIDACIN CRUZADA Se realiza la validacin cruzada del algoritmo de reglas con el siguiente esquema.

El entrenamiento en la evaluacin cruzada se realiza de la siguiente manera.

MATRIZ DE CONFUSIN REGLAS

Procesamiento del Lenguaje Natural

IA

12

ALGORITMO DE BAYES-INGENUO
Este algoritmo asume independencia estadstica entre los atributos. En trminos simples, un clasificador bayesiano es un mero clasificador probabilstico basado en la aplicacin del teorema de Bayes. PARMETROS Laplace correction este parmetro indica si la correccin de Laplace se debe utilizar para evitar la influencia alta de probalidad 0. Lo dejamos marcado.

RESULTADOS

SimpleDistribution
Distribution model for label attribute label

Class Deportes (0.207) 316 distributions Class Ciencia (0.281) 316 distributions Class Cultura (0.267) 316 distributions Class Economia (0.244) 316 distributions

ALGORITMO BAYESIANO VALIDACIN CRUZADA

Procesamiento del Lenguaje Natural

IA

13

Se procede ahora a la validacin cruzada del algoritmo bayesiano, para ello se introduce un operador de validacin cruzada con esta conformacin.

Se ha incrementado a 20 el nmero de validaciones para incrementar en algunos casos el porcentaje de acierto en la prediccin. MATRIZ DE CONFUSIN BAYES

ALGORITMO DE ARBOL ID3


En el caso del rbol de decisin ID3 se construye a partir de un conjunto fijo de ejemplos. El rbol resultante se utiliza para clasificar las muestras futuras. Esto se puede sincretizar en que el algoritmo selecciona un atributo para el cual el criterio de seleccin tiene el mejor valor, el que mejor separa los ejemplos dados, si lo encuentra se detiene si no funciona recursivamente para encontrarlo. Por tanto utiliza una bsqueda codiciosa, ya que elige el mejor atributo y nunca mira hacia atrs. Se introduce un operador Discretize . PARMETROS Criterion (criterio) valores: Especifica el criterio para la seleccin de atributos. Con 4

Procesamiento del Lenguaje Natural

IA

14

Information_gain La entropa de todos los atributos se calcula, esto tiene un sesgo hacia la seleccin de atributos con un gran nmero de valores. o Gain_ratio es una variante de information_gain, se ajusta la ganancia de informacin para cada atributo, para permitir la amplitud y uniformidad del atributo. Va a ser el elegido en nuestro caso. Para que la informacin nos la proporcione casi por cada atributo . o Gini_index Es una medida de impureza de los datos. Acuracy (precisin) maximiza la precisin del conjunto de reglas. Minimal size por Split(tamao mnimo para la divisin) Solo los nodos se dividen cuando su tamao es igual o mayor que este dato. Minimal leaf size(tamao de hoja mnimo) Equivale al nmero de ejemplos del subconjunto. El rbol se genera de tal manera que cada subconjunto nodo hoja tiene al menos el nmero mnimo tamao de la hoja de instancias. Para obtener unos resultados legibles y entendibles a simple viste se ha incrementado este parmetro hasta 200. Minimal gain (ganancia mnima) la ganancia de un nodo se calcula antes de su divisin. El nodo se divide si su ganancia es mayor que la ganancia mnima. Cuando se introduce un valor alto tendremos un rbol ms pequeo. Por tanto ms manejable y acorde con nuestros intereses, as que se introducen valores hasta obtener un rbol que proporcione unos resultados aceptables. Se termina con un valor igual a 1.0. o

Procesamiento del Lenguaje Natural

IA

15

RESULTADOS

Procesamiento del Lenguaje Natural

IA

16

ALGORITMO ID3 VALIDACION CRUZADA La validacin cruzada del algoritmo ID3.

Nos ofrece los siguientes resultados:

Dado que la validacin cruzada no ofrece muy buenos resultados, se decide probar con otro tipo de validaciones, por ver si otro tipo de validaciones nos ofrecen otras lecturas del algoritmo, o por el contrario confirman los datos. ALGORITMO ID3 VALIDACION SPLIT Con la validacin Split de ID3 se ha probado variando parmetros, tanto el porcentaje de entrenamiento y prueba del operador de validacin, como variaciones en los parmetros del operador ID3, todo orientado a mejorar el porcentaje de aciertos en la matriz de confusin. Se ha de comentar que en cualquier caso los resultados obtenidos no han sido demasiado satisfactorios.

Procesamiento del Lenguaje Natural

IA

17

En cuanto al parmetro de la validacin cruzada sampling tipe se pueden utilizar varios tipos de muestreo para la construccin de los subconjuntos. Teniendo las siguientes opciones disponibles: Linear sampling (muestreo lineal) divide los casos de ejemplo en particiones sin cambiar el orden de los ejemplos, crea subconjuntos con ejemplos consecutivos. Shuffled sampling (muestreo barajado) mezcla el muestreo construye subconjuntos aleatorios de los ejemplos, por tanto estos son seleccionados al azar para la construccin de subconjuntos. Stratified sampling (muestreo estratificado) construye subconjuntos al azar, asegurndose de que la distribucin de clase en los subconjuntos es la misma que en los datos de ejemplo.

Despus de probar con cada una de las opciones disponibles se elije shuffled sampling como la mejor construccin de los subconjuntos, ya que ofrece una mayor precisin. 1. VALIDACIN CON SPLIT RATIO (proporcin de la divisin) = 0.7 Lo que significa que se utiliza el 70% de los datos como entrenamiento y el 30% restante para validar el algoritmo obtenido con el entrenamiento. A. Operador ID3 criterion minimal size for split minimal leaf size minimal gain accuracy 4 2 0.1

B. Operador ID3 criterion minimal size for split minimal leaf size minimal gain Information_gain 4 2 0.1

Procesamiento del Lenguaje Natural

IA

18

C. Operador ID3 criterion minimal size for split minimal leaf size minimal gain gini_index 4 2 0.1

D. Operador ID3 criterion minimal size for split minimal leaf size minimal gain gain_ratio 4 2 0.1

Por tanto comprobamos que el mejor criterio es el de accuracy (precisin), con lo que para prximas pruebas mantenemos este criterio.

2. VALIDACIN CON SPLIT RATIO (proporcin de la divisin) = 0.9 Lo que significa que se utiliza el 90% de los datos como entrenamiento y solo el 10% restante para validar el algoritmo obtenido con el entrenamiento. A. Operador ID3 criterion minimal size for split minimal leaf size minimal gain accuracy 4 2 0.1

3. VALIDACIN CON SPLIT RATIO (proporcin de la divisin) = 0.3 Lo que significa que se utiliza el 30% de los datos como entrenamiento y el 70% restante para validar el algoritmo obtenido con el entrenamiento.

Procesamiento del Lenguaje Natural

IA

19

A. Operador ID3 criterion minimal size for split minimal leaf size minimal gain accuracy 4 2 0.1

Dado que los resultados con ID3 no son demasiado buenos, se decide implementar otro rbol de decisin ms representativo para la Categorizacin Automtica de Textos (CAT), se trata del algoritmo C4.5.

NOTA: Para tener disponible este algoritmo hay que instalar la extensin Weka, en RapidMiner, esta extensin se instala fcilmente desde Help Manage Extensions. Una vez instalada se busca el algoritmo en cuestin que aparece con el nombre W-J48

ALGORITMO DE ARBOL DE DECISION C4.5 (W-J48)


Este algoritmo se puede generar un rbol de decisin podado o sin podar y tiene como parmetros: U: Usar un rbol sin podar. Por defecto falso. C: Umbral de confianza para la poda. Por defecto 0.25 M: Establecer el nmero mnimo de instancias por hoja. Por defecto 2. R: Utilice poda error reducido. Por defecto falso. N: nmero de pliegues Set para la poda error reducido. Unas veces es utilizado como set de poda. (por defecto 3) . B: Uso binario se divide solamente. Por defecto falso. S: No lleve a cabo recaudacin de subrbol. Por defecto falso. L: No limpiar despus de que el rbol ha sido construido. Por defecto falso. A: Laplace suavizado las probabilidades predichas. Por defecto falso. Q: Semillas para barajar al azar de datos (por defecto 1).

Procesamiento del Lenguaje Natural

IA

20

RESULTADOS
J48 pruned tree -----------------chipr <= 0 | preferent <= 0 | | cientif <= 0 | | | music <= 0 | | | | univers <= 0 | | | | | bar <= 0 | | | | | | fond <= 0.074539 | | | | | | | sistem <= 0 | | | | | | | | europe <= 0 | | | | | | | | | millon <= 0 | | | | | | | | | | tecnic <= 0 | | | | | | | | | | | escuch <= 0.073775 | | | | | | | | | | | | rossi <= 0 | | | | | | | | | | | | | banc <= 0 | | | | | | | | | | | | | | madr <= 0.077425 | | | | | | | | | | | | | | | messi <= 0 | | | | | | | | | | | | | | | | grand <= 0.117914 | | | | | | | | | | | | | | | | | desarroll <= 0 | | | | | | | | | | | | | | | | | | estad <= 0 | | | | | | | | | | | | | | | | | | | lun <= 0 | | | | | | | | | | | | | | | | | | | | marin <= 0 | | | | | | | | | | | | | | | | | | | | | blanc <= 0 | | | | | | | | | | | | | | | | | | | | | | emple <= 0 | | | | | | | | | | | | | | | | | | | | | | | med <= 0 | | | | | | | | | | | | | | | | | | | | | | | | defens <= 0 | | | | | | | | | | | | | | | | | | | | | | | | | genet <= 0 | | | | | | | | | | | | | | | | | | | | | | | | | | matemat <= 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | segund <= 0.09716 | | | | | | | | | | | | | | | | | | | | | | | | | | | | empres <= 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | public <= 0.153578: Cultura (102.0/39.0) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | public > 0.153578: Ciencia (2.0/1.0) | | | | | | | | | | | | | | | | | | | | | | | | | | | | empres > 0: Ciencia (3.0) | | | | | | | | | | | | | | | | | | | | | | | | | | | segund > 0.09716: Deportes (2.0/1.0) | | | | | | | | | | | | | | | | | | | | | | | | | | matemat > 0: Ciencia (2.0) | | | | | | | | | | | | | | | | | | | | | | | | | genet > 0: Ciencia (2.0) | | | | | | | | | | | | | | | | | | | | | | | | defens > 0: Deportes (2.0/1.0) | | | | | | | | | | | | | | | | | | | | | | | med > 0: Economia (2.0) | | | | | | | | | | | | | | | | | | | | | | emple > 0: Economia (2.0) | | | | | | | | | | | | | | | | | | | | | blanc > 0: Ciencia (3.0/1.0) | | | | | | | | | | | | | | | | | | | | marin > 0: Ciencia (3.0) | | | | | | | | | | | | | | | | | | | lun > 0: Ciencia (3.0) | | | | | | | | | | | | | | | | | | estad > 0: Ciencia (3.0) | | | | | | | | | | | | | | | | | desarroll > 0: Ciencia (3.0) | | | | | | | | | | | | | | | | grand > 0.117914: Economia (3.0/1.0) | | | | | | | | | | | | | | | messi > 0: Deportes (3.0) | | | | | | | | | | | | | | madr > 0.077425 | | | | | | | | | | | | | | | britan <= 0: Deportes (4.0) | | | | | | | | | | | | | | | britan > 0: Economia (2.0) | | | | | | | | | | | | | banc > 0: Economia (4.0/1.0) | | | | | | | | | | | | rossi > 0: Deportes (4.0) | | | | | | | | | | | escuch > 0.073775 | | | | | | | | | | | | dic <= 0: Deportes (23.0/5.0) | | | | | | | | | | | | dic > 0: Economia (2.0) | | | | | | | | | | tecnic > 0: Deportes (5.0/1.0) | | | | | | | | | millon > 0 | | | | | | | | | | millon <= 0.143116: Ciencia (2.0) | | | | | | | | | | millon > 0.143116: Economia (3.0/1.0) | | | | | | | | europe > 0 | | | | | | | | | objet <= 0.097953: Economia (3.0/1.0) | | | | | | | | | objet > 0.097953: Ciencia (2.0) | | | | | | | sistem > 0: Ciencia (5.0/1.0) | | | | | | fond > 0.074539 | | | | | | | mision <= 0: Economia (3.0) | | | | | | | mision > 0: Ciencia (2.0) | | | | | bar > 0: Deportes (5.0) | | | | univers > 0: Ciencia (7.0/1.0) | | | music > 0: Cultura (6.0) | | cientif > 0: Ciencia (13.0) | preferent > 0: Economia (8.0) chipr > 0: Economia (27.0) Number of Leaves Size of the tree : : 36 71

Procesamiento del Lenguaje Natural

IA

21

ALGORITMO DE ARBOL DE DECISION C4.5 (W-J48) VALIDACION CRUZADA

Probamos algunas variaciones de los parmetros del algoritmo para ver si incrementamos la precisin. Nos quedamos con esta:

MAQUINA DE SOPORTE VECTORIAL (SVM)


Este algoritmo proporciona un mtodo de aprendizaje bueno y se puede utilizar tanto para regresin como para clasificacin. Proporciona un algoritmo rpido y buenos resultados para muchas tareas de aprendizaje, entre ellos la CAT.

Procesamiento del Lenguaje Natural

IA

22

El estndar SVM toma un conjunto de datos de entrada y predice, para cada entrada dada, a que clase pertenece, convirtiendo a la SVM en un clasificador binario no probabilstico lineal.

Se incluye en el modelo un operador llamado Classification by Regression para posibilitar una clasificacin polinomial. Dentro de este operador es donde metemos el SVM.

Procesamiento del Lenguaje Natural

IA

23

RESULTADOS

Nos proporciona un modelo analizando todos los tokens, este modelo puede aplicarse a nuevos datos de una manera fcil. ALGORITMO SVM VALIDACION CRUZADA Se introducen alguna variacin en los parmetros, para probar los resultados, primero se analizan los parmetros que he probado de SVM: PARMETROS Kernel type Se selecciona el tipo de kernel o ncleo, entre los que destaco. o Dot se define por k (x,y)=x*y, es el producto interno de x e y. o Radial se define por exp (-g||xy||^2) donde g es la gamma, que se debe ajustar cuidadosamente, ya que desempea un papel fundamental en el rendimiento del kernel. o Polynomial se define por k(x,y)=(x*y+1)^d donde d es el grado del polinomio, es el adecuado para problemas donde estn normalizados los datos de entrenamiento. C es la constante de complejidad SVM que establece la tolerancia a errores de clasificacin, donde los valores ms altos para permitir lmites ms suaves y los valores ms bajos crean lmites ms fuertes. Una constante de complejidad demasiado grande puede conducir a exceso de ajuste, y demasiado baja puede dar lugar a una generalizacin.

Procesamiento del Lenguaje Natural

IA

24

1. Kernel type = Dot

Se cambia la constante de complejidad C=1.0

Con C=10.0

2. Kernel type = Radial

3. Kernel type = Polynomial

ALGORITMO DE GENERACIN DE REGLAS RIPPER (W-JRip)


Probamos con un generador de reglas ms, puesto que son los que ofrecen una mejor lectura de los resultados y se ha optado por Ripper, implementado con el operador de Weka W-JRip.

Procesamiento del Lenguaje Natural

IA

25

RESULTADOS

RIPPER VALIDACION CRUZADA

EVALUACIN DE LOS RESULTADOS

Procesamiento del Lenguaje Natural

IA

26

Las mtricas de efectividad ms habituales en este mbito difieren levemente de las usadas en el Aprendizaje Automtico, aunque se sigue usando el concepto de tabla o matriz de confusin o contingencia. Dada la matriz mostrada en la figura. Matriz o tabla de confusin o contingencia para las tareas RI y CAT

Clasificados como:

Clase, relevantes TP FP

No en la clase, no relevantes FN TN

Clasificaciones reales

Clase, relevantes No en la clase, no relevantes

Las mtricas ms habituales en la clasificacin de texto son la cobertura (recall, R), la precisin (P) y la medida F de van Rijsbergen, que se calculan del modo siguiente:

Por tanto hacemos una recopilacin de las matrices de contingencia obtenidas. 1) ALGORITMO DE REGLAS

2) ALGORITMO DE BAYES INGENUO

3) ARBOL DE DECISION ID3

4) ARBOL DE DECISION C4.5 (W-J48)

Procesamiento del Lenguaje Natural

IA

27

5) MAQUINA DE SOPORTE VECTORIAL (SVM)

6) RIPPER

Por tanto si ordenamos por cualquiera de las medidas expuestas antes cobertura, precisin o medida F, tendremos los mismos resultados. Los algoritmos que mejor resultados obtienen son: 1) 2) 3) 4) 5) 6) SVM. BAYES INGENUO. ALGORITMO DE REGLAS. ARBOL DE DECISION C4.5 ALGORITMO DE REGLAS RIPPER ARBOL ID3

En conclusin, los algoritmos que mejor resultado dan para CAT, son los SVM y los clasificadores probabilsticos, como bayes ingenuo. Los algoritmos de reglas tienen unos resultados mediocres para CAT, aunque obtenemos un modelo que es muy entendible con un simple vistazo, por tanto tambin aportan informacin muy til a la hora de tener que explicarle a alguien los resultados obtenidos. Sin duda, que esta tarea se facilita enormemente en el caso de algoritmos de reglas, por el contrario, esto los tendramos mucho ms complicado en el caso de Naive Bayes y SVM. Dentro de los resultados medios tenemos un rbol de decisin que probablemente sea el mejor rbol para CAT, se trata del rbol C4.5. Que supone obtener una validacin aceptable y unos resultados aceptablemente entendibles. Por ltimo tenemos a ID3 que no es nada recomendable para CAT, y con el que se obtienen unos malos resultados.
Procesamiento del Lenguaje Natural

IA

28