lunes, marzo 07, 2011

Retomando la categorización de textos

Hace bastante que no escribía en este blog... la verdad es que lo tenía algo de lado por mis muchas actividades; pero desde hoy lo retomaré: es una promesa.

Algunas observaciones que creo pertinentes para adentrarme nuevamente en el tema: estoy fascinado con la cantidad de publicaciones que están apareciendo respecto a la clasificación de textos. Es más, me llama profundamente la atención que están apareciendo empresas relacionadas exclusivamente con el tema. Tanto es así que hay empresas que "están llamando la atención de Gartner Inc. Al menos eso es lo que leí en este enlace, que aunque autoreferente, te muestra la existencia de empresas de Categorización de Texto, y no sólo departamentos o grupos dentro de otras empresas.

Otra cosa que me llamó la atención es la cantidad de patentes que esta empresa dice que tiene: 70 patentes. Esto me dice que estoy bastante desactualizado, por lo que tendré que ponernos al día :)


martes, diciembre 02, 2008

¿Dónde podría estar el error en mi modelo?

Con una entrada similar a esta, pero en Inglés (Where did my (linear) model go wrong?), se hace un interesante análisis de lo que puede afectar la efectividad de un modelo de categorización de textos y por qué no se puede alcanzar una efectividad del 100%.

En definitiva, habla de 4 lugares desde dónde puede provenir el error:
  1. Ruido en los datos en entrenamiento
  2. Ruido en los datos de prueba
  3. Representación insuficiente (no se han considerado las características correctas o suficientes)
  4. Ejemplos insuficientes (los datos de entrenamiento no son suficientemente densos en algunas regiones)
Los motivos no son excluyentes entre sí.

Claro, después que lo leí, se "caía de maduro"... pero no siempre es fácil verlo.

Lectura interesante y recomendada.

miércoles, mayo 14, 2008

Representación de documetos

Cada vez se hace más frecuente que me pregunten respecto de cómo representar documentos, sobre todo, porque en la mayor parte de la documentación que encuentras aparece una sola: la representación vectorial.
Hoy, dado un correo que me envió, le explicaba a una futura colega cubana mi visión del tema, el que transcribo:

"Respecto a formas de representación, sin duda la vectorial es la más simple, aunque hay que tener un par de consideraciones.

"Quizás la más obvia sea la de la frecuencia, dado que puedes colocar la ocurrencia real (mala idea), una ocurrencia binaria (está o no está el término) o una ocurrencia ponderada (que es lejos la que más me gusta).

"También hay que tener presente qué vas a considerar para contar la frecuencia. Pueden ser palabras, frases, lemas o raíces, ó n-gramas.

"Y respecto a las palabras, tampoco las miremos en menos, dado que a que también podemos hacer algo con ellas: en vez de poner todas las palabras, podemos escoger palabras representativas (puro, cigarro, pipa... todos pueden ser representados con el término tabaco)... un poco, lo que hace k-nn.

"Si el tema que te interesa son las representaciones, pues la imaginación da para mucho. En este momento se me ocurre una que quise implementar y al final no le vi el aporte mayor en comparación a la complejidad de su manejo: mi diccionario era una lista de palabras identificadas con un correlativo. Cada documento era una lista de estructuras (o nodos), donde la estructura contenía el número de la palabra, su frecuencia ponderada y el puntero al siguiente nodo. La ENORME ventaja que tenía esta forma de organización es que era muy rápida de seguir y ahorraba el tremendo espacio vacío que usa la representación vectorial. El inconveniente, difícil de manejar y alto consumo de CPU."


Sé que en ese correo hubo muchas cosas que se me pasaron por alto. También que hay otras muchas formas de representación de documentos que no recuerdo o de plano no conozco, por lo que si puedes aportar con ideas, estas son bienvenidas. Al fin y al cabo, nos sirven a todos.

viernes, mayo 09, 2008

La transferencia inductiva es aplicar el conocimiento aprendido en un conjunto de tares para mejorar la aplicación del conocimiento aprendido a nuevas tareas. La transferencia inductiva se está aplicacando en mejorar el rendimiento de la generalización en las tareas de clasificación usando los modelos aprendidos en algunas tareas relacionadas. En este artículo, mostramos un método para hacer transferencia inductiva para hacer la clasificación de texto más efectiva usando Wikipedia. Mapeamos los documentos de texto de diferentes tareas a un espacio de características usando Wikipedia, proveyendo así algún conocimiento oculto del contenido de los documentos. Se ha observado que cuando los clasificadores son construídos usando las características generadas desde Wikipedia, ellas son más efectivas en la transferencia de conocimiento. Una evaluación en las tareas diarias de clasificación en el corpus Reuters RCV1 muestra que nuestro método puede mejorar significativamente el rendimiento de la transferencia inductiva. Nuestro método superó exitósamente un obstaculo mayor observado en un trabajo reciente en una configuración similar.
Bajo esta presentación, encontré un artículo de HP que habla de esta transferencia inductiva.
La verdad es que recién estoy empezando a leer el artículo, pero debo reconocer que se ve muy interesante porque toca un tema del que soy absolutamente ignorante.
Cuando lo termine de leer publicaré mis comentarios y en lo posible una traducción o resumen.

martes, marzo 25, 2008

Más gente... nuevos proyectos

Siempre ando buscando acerca de de Categorización de Textos. En esta oportunidad encontré un post de Cesar Rodas, que habla de sus nuevos proyectos; en específico, GSoC - WP - Category Suggester - [Proposal].

En este post, Cesar habla de un desarrollo en PHP (en lo que evidentemente tiene mucha experiencia) que sugiere las categorías a un nuevo escrito mientras éste se redacta. Estaría basado en n-gramas y en post previos, desde los que aprendería las categorías.

Me llamó mucho la atención la aplicación práctica del proyecto por su originalidad, pero también llamó mi atención el uso de n-gramas, no porque sea una idea nueva, que no lo es; sino porque yo mismo tiendo a ni siquiera considerarlo pese a las enormes ventajas que tiene su uso.

Cesar hace una reseña de sus características, pero no está demás transcribirlas:

  1. Son secuencias de n letras que se usan en vez de palabras.
  2. Son independientes del idioma.
  3. No precisan de algoritmos de lematización.
  4. Son fáciles de "tokenizar" por su independencia del idioma.
  5. Son insensibles a los errores de ortografía, lo que da una notable ventaja al aprender de las categorías que surgen de la creación misma de los post.
Normalmente me complico mucho con los algoritmos de lematización. El no tener que usarlos puede ser una enorme ventaja; aunque recuerdo haber hecho alguna vez, en los albores de mi estudio sobre categorización de textos, una experiencia con n-gramas y resultó ser más lento el aprendizaje... con el tiempo, me parece que el tiempo de aprendizaje es despreciable respecto al tiempo computacional que implica la sola lematización de los textos.

La idea es interesante, por lo que recomiendo su lectura. Vamos a seguir el trabajo a ver qué resulta.

jueves, marzo 06, 2008

Mindset: Yahoo aplica máquinas de aprendizaje a las búsqudas

Bajo este título (en inglés), encontré en Digital Alchemy un interesante artículo de aplicaciones prácticas de categorización de textos, en este caso, impulsada por un gigante: Yahoo!.

La aplicación se llama Yahoo Mindset, está obviamente en pleno desarrollo y definitivamente esto promete... aunque quizás ampliando un poco más la cantidad de dimensiones del trabajo definitivamente sería un éxito; aunque no me cabe duda que lo harán.

Se trata de la utilización de máquinas de aprendizaje para definir si una página es comercial o escolástica... aunque me parece que la traducción literal no es la más afortunada, dado que en la página separa entre comercial e investigación.

La categorización tiene sólo dos posibilidades o categorías: pero usa una medida de cuán probable es que pertenezca a uno u otro grupo. De este modo ordena los resultados obtenidos de manera dinámica y pueden ser reordenada en tiempo real mediante una barra de desplazamiento.

Decir si es una aplicación de gran dificultad, es complicado. En primer lugar, todas las páginas deben ser categorizadas, lo que sabemos que implica una gran cantidad de recursos computacionales, lo que me hace pensar que el algoritmo utilizado debe ser algo así como árboles de decisión ó kNN; que todo debe estar preprocesado, que la búsqueda se realiza bajo los mismos conceptos que lo hace normalmente Yahoo y que la incorporación de máquinas de aprendizaje se limita a la ordenación de los resultados.

Puede, visto como lo expuse, que suene como que en realidad no es la gran cosa lo que ha hecho Yahoo Research, pero la verdad es que la incorporación de mejoras como esta puede hacer la diferencia en la navegación y búsqueda de información en el futuro.

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.