domingo, 26 de abril de 2009

Análisis de opinión en blogs (parte II)


En el anterior artículo se presentaba un proyecto de investigación en procesamiento de lenguaje natural consistente en la extracción de opiniones de los Blogs. En él se presentaban preliminarmente las fases en que constaría la investigación y se introducía la fase inicial en la que Corex está trabajando, la detección de Blogs de manera automática.


Para esta primera fase se ha investigado en el estado del arte de la cuestión, comprobando la falta de trabajos en la misma y las aproximaciones adhoc existentes, proponiendo una aproximación un tanto novedosa pero que hace uso de una idea introducida en 1975 por el Profesor Marvin Minsky: los frames.


Marvin Minsky ha hecho grandes contribuciones a la Inteligencia Artificial, la psicología cognitiva, las matermáticas, la lingüística computacional, la robótica, la óptica... en nuestra investigación nos hemos centrado en su aportación a la IA denominada frames (marcos en su vaga traducción al castellano) y cuyo objetivo inicial era el de superar las limitaciones de la lógica a la hora de abordar problemas como la visión artificial, la comprensión del lenguaje natural o el razonamiento de sentido común.


De su artículo (versión de 1981) se extrae la siguiente cita:


"Un frame es una estructura de datos para representar una situación estereotipada, como encontrarse en un cierto tipo de sala de estar o asistir a un cumpleaños infantil Cada frame lleva asociadas varias clases de información. Parte de esta información indica cómo usar el frame. Otra parte se refiere a lo que uno espera que suceda a continuación. Otra parte indica qué hacer cuando no se confirman tales expectativas"


Cada frame está formado por slots, a modo de campos de una tabla de bbdd, pero más ricos, pudiendo llegar a ser otros frames. La información contenida en estos slots sirve pues tanto para reconocer un frame como para predecir la existencia de otros elementos en el mismo, lo que permite la construcción de una red de activación, dónde la información recibida por un frame puede hacer que se activen otros frames y esto a su vez provoque la activación de otros frames conectados con los primeros. El objetivo es predecir y explicar la información que se va a encontrar en cada situación. Es por ello que a este tipo de reconocimiento a veces se le denomina reconocimiento descendente.


Para entender mejor lo anterior se propone un ejemplo extremadamente sencillo extraído de (Mira et al.) pero cuya idea parte del propio concepto de frame y de lo que se pretende conseguir con ellos.


Imaginemos un frame denominado casa con varios slots, algunos de los cuales podrían ser las habitaciones. Cada habitación a su vez sería un nuevo frame. El frame dormitorio por ejemplo podría tener como slots una cama y una mesita-de-noche. El frame cuarto-de-baño podría tener un slot que sería la bañera, otro que sería un lavabo... Si al entrar en un espacio cerrado detectamos varios dormitorios podemos pensar que se trata de una casa (activación del frame casa), así mismo, si lo primero que vemos es una bañera podríamos pensar en la activación del frame cuarto-de-baño. Como se puede apreciar se construye automáticamente una red de activación que va más allá de una red de clasificación e incluso que una red jerárquica.


Es más, la idea de frame permite la creación o definición de diferentes frames para describir una misma realidad, es decir, diferentes puntos de vista. Recurriendo a los ejemplos de la bibliografía citada podríamos decir que un mismo hombre puede ser profesional de la informática, padre de familia, cliente de un banco o paciende de una clínica.


En el caso de los campos de bbdd tenemos las propiedades que los definen, como tipo de dato que almacenan, valor por defecto... pues bien, en los slots tenemos las denominadas facetas y slgunas de las facetas más utilizadas son:


  • Valor por defecto, que es heredado por todas las instancias del frame

  • Multivaluado, lo que permite que en este campo coexistan varios valores simultáneamente, a diferencia de un slot univaluado, dónde la asignación de un nuevo valor desplazaría al anterior

  • Restricciones, tales como de tipo de datos (numérico, una fecha válida, un valor para una edad dentro de los rangos lógicos), o más avanzados tales como obligar que un determinado slot sea una instancia de un determinado frame. Las restricciones además pueden contener información para el tratamiento y la recuperación del error de asignación incorrecta

  • Certeza, dónde se indica la credibilidad del valor asignado al campo, similar al factor de certeza asociado a cada proposición dentro de un sistema basado en reglas

  • Facetas de interfaz, que permiten al sistema interactuar con el usuario, por ejemplo, conteniendo preguntas e instrucciones que aparecerán en la interfaz cuando se activen


Todo lo anterior no parece diferir en exceso de un diseño UML complejo, y en realidad Minsky no llegó a concretar los detalles de un cierto tipo de representación sino más bien dio un conjunto de sugerencias e ideas respecto al razonamiento por analogía, los valores por defecto, las expectativas, el conocimiento parcial sobre una entidad, el partial matching..., lo que permite, desde diferentes implementaciones, todo un mundo de posibilidades para emular el razonamiento humano.


¿Y cómo se utiliza todo esto en nuestra investigación? Pues históricamente se han utilizado los frames desde dos paradigmas diferentes aunque no opuestos:


  • Pattern Matching, infiriendo la presencia de nuevos elementos al presentarse patrones a la entrada, en un modelo de activación-reconocimiento-predicción.

  • Almacén de información, como forma estructurada de almacenar información, permitiendo desde un almacenamiento relacional similar a las BBDD de este tipo, hasta un contenedor de información y reglas similar a la POO


En nuestra investigación se han utilizado los frames desde un paradigma conceptual, dónde además de almacenar la información en los slots, estos se construyen teniendo en mente la idea del partial matching, el razonamiento por defecto y el razonamiento con información incompleta.


La idea es sencilla, una persona que haya visto varios blogs y comprenda en qué consisten sería capaz de determinar, a simple vista, e independientemente del contenido, el autor, el estilo y el idioma, que una nueva página que se presenta ante ella es o no de tipo Blog.


Esto responde básicamente a proceso cognitivo de reconocimiento de patrones aún con información incompleta (partial matching) y descendente, ya que según se observan las características que se espera observar se obtiene mayor certeza de que la página presentada es de tipo Blog, basado en un proceso previo de aprendizaje inductivo.


Pues con ello construimos un modelo de representación basado en los slots que seleccionamos como relevantes para la identificación de un Blog (frame Blog), presentamos un conjunto suficientemente representativo de ejemplos con refuerzo positivo y negativo, entrenamos un modelo de aprendizaje inductivo, en concreto un clasificador binario, guiando su entrenamiento por precisión y obteniendo finalmente el modelo de predicción.


En la siguiente entrega de este mismo artículo se presentarán los slots utilizados, el modo de obtenerlos y la implementación del modelo de representación, así como se efectuará una comparativa conceptual entre el método propuesto y otros métodos de representación de blogs como el de Google Blog Search o el del proyecto NITLE, y otros basados en contenido como el Bag Of Words.



Referencias:

Mira, J; Delgado, A. E; Boticario J. G; Díez F. J, Aspectos básicos de la Inteligencia Artificial, Sanz y Torres.

No hay comentarios:

Publicar un comentario en la entrada