{ FeR Martin }

viernes, junio 10, 2005

ESWC» Text Mining (I)

Buenas a to2, Hoy vamos a empezar una serie de artículos técnicos sobre diversos aspectos de la web semántica que he aprendido en el congreso que estuve hace una semana en Creta. Para aquellos de ustedes que realmente no les interese ni lo más mínimo, les voy a decir un truco: cuando lean en el título del post "ESWC» ..." es que probablemente sea otro más sobre la web semántica. ¿Qué es Text Mining? Text mining es encontrar información interesante en grandes conjuntos de datos textuales, donde interesante significa no trivial, oculto, desconocido anteriormente y potencialmente útil. Es encontrar información semántica y abstracta en la forma más superficial de los datos textuales. Como escarvar en el texto para sacar información más útil para nosotros. Ahora mismo tenemos cuatro áreas que estudian el manejo de texto, y además están muy relacionadas entre sí. Una de ellas es la web semántica (Representación del Conocimiento y Razonamiento), otra es el procesado de Lenguaje Natural (Linguística Computacional), otra es la extracción de información (Búsquedas y Bases de datos) y por último, tenemos Machine Learning Text Mining, que se centra en el análisis de datos textuales. Un Texto es fácil y dificil de manejar a la misma vez. Es dificil porque los conceptos abstractos que porta el texto son dificiles de representar en una máquina. Es fácil porque todos los textos tienen una gran cantidad de datos redundantes (muchos de los métodos se basan en esta propiedad -que es estadística a la fine). Es tambien fácil porque cualquier algoritmo medianamente simple puede obtener "buenos" resultados para tareas simples (Extraer frases "importantes", encontrar palabras relacionadas, crear resumenes de documentos, etc). ¿Cómo podemos procesar el Texto? Existen diferentes niveles para tratar con el texto: desde el nivel de palabra a palabra, frase -no usada realmente en la actualidad-, documento, conjunto de documentos, conjunto de documentos con enlaces y aplicación. Cada nivel de procesamiento nos revelará diferente información sobre el texto. 1. Nivel de Palabra Podemos procesar las palabras en base a diferentes criterios y propiedades, por ejemplo
  • Propiedades: Homónimos, polisemismo, sinónimos, hiponimia. Además, la frecuencia de aparición de las palabras se basan en una distribución de potencia (un pequeño número de palabras que se repiten mucho, y muchas palabras que se repiten muy pocas veces).
  • Stop-Words: Palabras que desde un punto de vista no-linguístico, no portan ninguna información. Lo normal es quitarlas para procesar el texto. En Español pueden ser palabras como: a, hacia, y, para, por, cuando, ...
  • Stemming: Normalmente una misma palabra se puede representar de diferentes maneras. Esto representa un problema porque se escriben diferente pero tienen un significado similar (ej. aprender, aprendía, aprendiendo,...). Stemming es el proceso de transformar una palabra en su raiz (stem, forma normalizada). Existen algoritmos muy buenos para el ingles, pero para otros idiomas el estado del arte no está tan avanzado. El Stemming en inglés, se basa en un conjunto de reglas, en las que dado un sufijo de una palabra, lo cambian por otro, por ejemplo "TIONAL"-> "TION" (ej. conditional->condition).
  • N-Grams Frecuentes: N-Gram es una secuencia de N palabras consecutivas, por ejemplo "fer martin" es un 2-Gram. N-Grams frecuentes son los que aparecen en el texto MinFreq o más veces. Los N-Grams son interesantes porque permiten extraer, mediante un algoritmo recursivo, las combinaciones de palabras más frecuentes (despues de extraer los stop-words y de aplicar stemming obviamente). Es una manera sencilla de saber por ejemplo de qué esta hablando un determinado texto; Solo viendo los mayores N-Grams frecuentes podemos tener una buena idea de lo que habla.
  • Relaciones Léxicas: En inglés, existe una base de datos muy completa -desarrollada por Princeton- con 4 bases de datos (nombres, verbos, adjetivos y adverbios) llamada WordNet. Además, cada base de datos guarda las relaciones de sinónimos entre las entradas (musician, instrumentalist, player). Las posibles relaciones que tiene son: hypernym (desayuno->comida), hyponim (comida->almuerzo), has-member (clase->alumno), member-of (copiloto->tripulación), has-part (mesa->pata), part-of (rueda->coche), antonym (arriba->abajo). Wordnet se puede bajar, o buscar en linea.
2. Nivel de Documento A nivel de documento, podemos procesar el texto de tres maneras fundamentales: La primera de ellas es el resumen, la segunda es la visualización completa del documento, y la tercera es la segmentación del documento. Entramos ahora en cada uno para ver que nos puede aportar cada uno de estos algoritmos.
  • Resumen (summarization): Se trata de producir automáticamente un documento más corto, que resuma el documento original. Para realizar esta tarea tenemos dos métodos más o menos buenos: Resumen basado en selección, y resumen basado en análisis semántico.

    • Selección: Se basa en analizar el texto fuente, determinar las unidades de texto más importantes, y preparar la salida. Casi todos los métodos de selección han adoptado un modelo de peso linear (linear weighting model), en donde para cada frase se calcula su peso según -pero no sólo- estos parámetros: Peso(U) = PosiciónEnElTexto(U) + TextoOrientativo(U)* + Estadistica(U) + PresenciaAdicional(U) *hace referencia a frases que comiencen con frases tipo "en resumen"...
    • Analisis Semántico: Para generar resumenes "de verdad" de un documento, necesitamos entender (aunque sea parcialmente) dicho documento. Analizarlo tanto semánticamente como linguísticamente nos puede ayudar a obtener un resumen de mayor calidad humana. Para esta parte, usaremos el algoritmo de 10 pasos de Leskovec, Grobelnik y Millic-Frayling que promete realmente aportar mucho valor en este área de la web semántica:
      1. Dividimos el documento de entrada en frases
      2. Con cada frase hacemos un deep-parsing
      3. Eliminamos la ambiguedad de las entidades (determinar que "Rodriguez Zapatero"=="Zapatero"=="Presidente de España" por ejemplo)
      4. Ejecutamos la resolución Anáfora (conectar pronombres con nombres; estuve toda la tarde con luis. Al final [él] compro dos libros--> él=Luis)
      5. Extraemos las tripletas Objeto-Sujeto-Predicado (luis,comprar,libros)
      6. Contruimos un grafo con las tripletas
      7. Cada tripleta en el grafo se describe con características para aprender
      8. Usamos un entrenamiento de machine-learning para clasificar las tripletas en el resumen del texto. Para hacer esto, se usa Support Vector Machine.
      9. Generamos un gráfico resumen con las tripletas seleccionadas
      10. Del gráfico resumen, generamos el resumen final del texto
  • Visualización completa del documento: ¿Por qué es dificil visualizar un solo documento de manera completa? Cuando el documento es muy grande podemos contar con las técnicas estadísticas que nos dan mucha información sobre el texto. Sin embargo, cuando tratamos con un solo documento debemos de basar nuestro análisis en la estructura sintáctica y lógica del documento. Para ello seguimos un algoritmo de seis pasos:
    1. Dividimos el texto en frases
    2. Cada frase se analiza profundamente en su forma lógica. Hacemos esto por ejemplo con el NLPWin Parser de Microsoft
    3. Realizamos la resolución Anáfora
    4. Extraemos de todas las frases las tripletas Sujeto-Predicado-Objeto (SPO)
    5. Las SPO's forman enlaces en el grafo
    6. Dibujamos el Grafo
  • Segmentación de Textos: El problema es dividir un texto que no tiene una estructura dada, en segmentos con contenido similar. Por ejemplo, las noticias habladas, o la identificación del tema en grandes bases de datos textuales no estructuradas. Una de las maneras de resolver esto es calcular la similitud entre pares de sentencias, y encontrar una secuencia de delimitadores (segmentos) para que la similitud entre las frases del mismo segmento se maximice y minimice entre los segmentos. Este tipo de problemas encajan dentro de los problemas de optimización o de ventanas deslizantes.
Queda pendiente tratar el tema de una colección de documentos (representación del texto, selección de características, similitud de documentos, representación del cambio (Latent Semantic Indexing), categorización, clustering, visualización y extracción de información), así como de una colección de documentos enlazados y el nivel de aplicación. Pero no estoy seguro si a los lectores más técnicos de este blog les gustará alcanzar este nivel, o si por contra, con esta información es suficiente para introducirse en el tema de Text Mining. En cualquier caso, un saludo a to2 y gracias por estar ahí FeR

1 Comments:

  • Joder FeR, demasiados conceptos en sólo post. Creo que deberías racionalizar la información para que el lector se enterase más de lo que lee.

    Es un texto ya de por sí, complicado, por la cantidad de información aportada, por lo que el lector puede "volverse loco", un poquito.

    Hacía tiempo que quería leer esta entrada y por fin lo he hecho, aunque es justo decir que me he enterado de poco. Lo que de verdad me interesa es ver la parte práctica de todo esto. Es lo realmente interesante y útil, no?

    Pues na neng, que ya te he dado el coñazo por hoy.

    Un besito bro...

    FoN

    By Blogger FoN, at 7/10/2005 11:35:00 AM  

Publicar un comentario en la entrada

<< Home


 
free web stats