viernes, noviembre 16, 2007

Revisen esto!!!

Sólo alcancé a leer la introducción, pero me parece que este trabajo está MUY bueno.
El autor es Ting Liu, autor del que aún no había escuchado nada, pero que de seguro muy pronto empezaré a escuchar más.

jueves, noviembre 15, 2007

Administración de reclamos II

Siguiendo con el análisis del documento que tratamos en el post anterior, veremos la explicación de la ponderación del vector de términos. No tengo nada que agregar, por lo que sólo resumiré lo que dice.

Ponderación del vector de términos

En esta fase, se construye un vector de términos por documento, que en este momento contiene la frecuencia "bruta" de aparición del término en el documento.

La ponderación normalmente es el producto de la frecuencia del término (tf) y el inverso de la frecuencia del documento (idf).

La frecuencia ponderada pretende medir la importancia del término para caracterizar el contenido de un documento.

En el documento, tf se obtiene por una transformación logarítmica de la frecuencia original del término, lo que reduce la importancia "bruta" de tf, que es importante para colecciones de documentos de largo variable.




donde i es el número del término, j es el número de documento, y n es la frecuencia del término.

El idf considera que si la aparición de un término en un documento es más raro, más discriminante es. Aunque, el peso de un término está inversamente relacionado con el número de documentos en los que el término aparece; es decir, la frecuencia documental del término.



donde n es el número total de documentos y dfi es el número de documentos donde el término está presente.

Finalmente, el peso o penderación del término i en el documento j está dado por



donde tfij es la frecuencia del término i en el documento j, e idfi es el inverso de la frecuencia de documento para el término i.

Reducción de la dimensionalidad

La matríz de términos por documento tiene gran dimension dado los muchos corpus distintos.
Más ún, la matriz es poco poblada (tiene muchos ceros) porque no todos los documentos tienen todos los términos del corpus.
En el texto, se usa "Indexación Semántica Latente por Descompsición Singular de Valores" (SDV por sus siglas en inglés) para reducir la dimensionalidad del espacio de características.
La Indexación Semántica Latente proyecta documentos desde un espacio de términos de grandes dimensiones a un ortonormal sub espacio semántico latente agrupando aquellos términos similares en varios (k) conceptos diferente. Toda esta información textual puede ser sumarizada en estos k conceptos.
Más aún, estos k conceptos (o variables SVD) son frecuentemente usados como variables explicativas en modelos tradicionales de clasificación de textos.
Esta reducción aproxima el peso de la matriz de términos por documento a una más pequeña de orde k, lo que la hace más manejable.
No se dice cómo calcular k, pero dice que se encuentran criterios en la literatura del tema.

lunes, noviembre 12, 2007

Administración de reclamos

Hace días que tengo en mi bandeja de entrada un correo con la referencia a un paper que no había tenido tiempo de leer.

De por sí, el título es sugerente: "Improving Customer Compliant Management by Automatic Email Classification Using Linguistic Style Features as Predictors".

La base de este paper es lo más interesante. Hasta ahora buscamos clasificar documentos de textos a partir de los términos que lo conforman; pero ellos hacen una clasificación simple: es o no es el correo un reclamo, a partir de una mezcla de la información del contenido sumado con la información que entrega el estilo lingüístico del correo.

Trabajo en una empresa que comercializa productos en acero, y les digo que el tema de la administración de los reclamos no es un tema para nada menor; y donde la administración oportuna de estos hace la diferencia entre los participantes de este mercado.

Ellos aseguran que al agregar el componente lingüístico al análisis de los correos, se mejora la predicción de si se trata o no de un reclamo, por lo que se puede dar un trato más apropiado a estos mensajes, disminuyendo el esfuerzo final de la empresa y aumentando la satisfacción del cliente. La mejora se puede notar en los tiempos, pero también en la efectividad de las respuestas al poder derivar las denuncias al personal apropiado sin necesidad de preparar al personal a quien corresponde responder consultas estar preparado en todos los ámbitos.

Entre las características que destacan, está que no usa la aproximación espacio-vector por el tamaño de la matriz resultante, sino Indexación Semántica Latente por medio de Descomposición Singular de Valores, esto es, la representación de los documentos por k conceptos representativos; donde la información del estilo lingüístico se introduce como un nuevo tipo de información textual.

Aproximación Espacio Vector

La idea de incorporar el estilo lingüístico no es lo único interesante de este paper. También se da una descripción de la aproximación espacio vector que es de lo más interesante.

Primero veremos qué es lo que propone y luego lo analizamos.

En esta representación, los documentos son convertidos en vectores de característica espacial basado en el peso de sus frecuencias a fin de seleccionar aquellos que entreguen más información a partir de su presencia en un diccionario.

Todo empieza con un preproceso, en el cual, se aplica una técnica de raw text cleaning. En esta, los caracteres especiales y la puntuación del texto se separa de las palabras.
En seguida, los errores ortográficos se corrigen comparando las palabras en el documento con el diccionario de referencia.

Luego viene el proceso de tokenización, en el que el documento se divide en tokens o palabras, donde los espacios sirven de separadores.
El resto del texto es dividido en palabras convertidas en minúsculas.
Las palabras son sumarizadas en informativas y no informativas. Las no informativas son los determinantes , conjunciones, auxiliares, preposiciones, pronombres, artículos, interjecciones, nombres propios, abreviaciones y números. Los informativos son los sustantivos , verbos, adjetivos y adverbios.

En seguida, viene el proceso de lematización, en el que las distintas variaciones de las palabras se llevan a una sola forma representativa llamada stem; lo que reduce el corpus del diccionario y aumenta la performance.
Todas las variaciones morfológicas se tratan de manera natural comparándolas con el diccionario de referencia. Si el término no es reconocido, el stemmer aplica alguna decisión estandar para entregar el stem correcto.

Lo siguiente es eplicar el term filtering, que sirve para reducir el número de términos irrelevantes: primero se sacan las palabras raras, del mismo modo que se sacan aquellas que aparecen menos de tres veces.
La misma regla se aplica en las palabras muy comunes como "a", "el", etc. Estas son conocidas como stopwords, y son palabras por su altea frecuencia no son discriminativas. Estas palabras están ligadas al idioma.

Al terminar el proceso, de todas formas se revisa el resultado manualmente.

Al final se consigue una matriz de grandes dimensiones de términos por documento, donde cada celda representa la frecuencia bruta de aparición del término en el documento.

Comentarios

Hay varias cosas que me llamaron la atención de la descripción del proceso.

Lo primero es la corrección de errores ortográficos. Si bien pareciera ser demasiado evidente que puede encontrarse este tipo de errores, hasta ahora no recuerdo haber leído de técnicas para la corrección de errores ortográficos. De hecho, si se piensa, puede ser bastante aventurado hacer este tipo de correcciones de manera automática tal y como lo propone el autor. Más aún, basado en un diccionario que no sabemos si es completo.
¿Me puse demasiado quisquilloso?. Veámoslo de la siguiente manera: si encuentro un reportaje donde habla de "wena Naty", existe la probabilidad que termine corregido "wena" por "vena" y "Naty" desechado por baja frecuencia o por ser un nombre propio.

De ahí surge mi segunda observación: dice que se excluyen los nombres propios. Me parece, de modo intuitivo y aún no tengo una comprobación experimental del hecho, que los nombres propios podrían entregar tanto o más información útil para la categorización de un texto que un sustantivo o un verbo.

La tercera observación va por el lado de la decisión estándar que tomaría el stemmer cuando no encuentra una palabra en el diccionario. Al respecto, creo que tomar una decisión no asistida puede ser contraproducente; aunque claro, no da ninguna pista de qué es una decisión estándar como para poder criticar con más fundamento.

Lo del term filtering y ese número de 3 como umbral para no considerar una palabra me parece que no corresponde. La experiencia indica que ese número no es arbitrario y es producto del tunning del procedimiento. Puede que ellos lo hayan conseguido así, pero no lo dicen.

Por último dice que el proceso se revisa manualmente, lo que me parece un acierto que no siempre hacemos. La importancia de esta revisión es fundamental, sobre todo en los primeros pasos del clasificador y mientras se consigue afinarlo adecuadamente.

Por ahora voy a dejar este post hasta aquí, y terminamos de analizar en el post siguiente.

Reconocimiento de texto y caracteres

Siempre es llamativo cuando sale una nueva tecnología. En este caso, fue Xerox quien nos sorprendió con algo que quizás no tenía mucho de nuevo como idea, pero sí como implementación.

Leo en allamericanpatriot.com (no, no leo ese sitio de manera habitual, pero llegó el aviso por Google de la publicación de un artículo relacionado con categotización de textos) que Xerox habría desarrollado un software que es capaz de categorizar simultáneamente texto e imágen.

Los motivos para invertir tiempo en este tipo de desarrollos es obvio: el spam que recibimos es cada día más inteligente y el uso de imágenes es cada día más habitual como forma de evitar los filtros.

La parte simpática es que se trata de una aplicación que trabajaría on-line; por lo que las aplicaciones serían muchísimas: no sólo spam, también búsquedas en la web, organización de documentos, geografía, turismo... se me ocurren más, pero tampoco les voy a dar la tarea hecha: yo también estoy trabajando en algo.

La entrada no aporta mucha información de la implementación o la tecnología en sí, pero al menos da luces que hay gente trabajando en el tema.