domingo, 20 de mayo de 2012

Human vision: saccades and fixations

Human vision explores an image by fixations in some specific regions and fast movements or saccades from one region to another. Long saccades are, in general, less frequent. Depending on the task to be performed and depending on the image complexity, as we found in [Bonev, Chuang, Escolano 2012], the need for a long saccade may vary.
In the following slow-motion video we show an example of the behaviour of human saccades.


[Bonev, Chuang, Escolano, 2012] B. Bonev, L.L. Chuang, F. Escolano. "How do image complexity, task demands and looking biases influence human gaze behavior?" Pattern Recognition Letters 2012.

viernes, 18 de mayo de 2012

Entropy will find the way

The most awesome measure in Information Theory is entropy. It is widely used in pattern recognition [Escolano,Suau,Bonev 2009] because it quantifies the expected value of the information contained in a message.
As far as I remember the first application I gave to entropy was to help a robot to find its way in a semi-structured environment using only vision [Bonev,Cazorla,Escolano 2007]. Not in terms of high-level knowledge, but just to go where there seem to be things in the distance. If people have a walk they don't get stuck by trying to go against a building. Instead, they see something in the end of a street and they start to walk that way. 
In an image representing 360º of the environment that "something in the end of a street" is visually perceived as a more entropic region:
To avoid ambiguities I forced to have only two most entropic regions at a time: the two ends of a corridor or a street. A Fourier approximation results in the following map: for each moment in the time line we have only to hot regions in the angle axis. The robot should head to one of them: the one which grees with its current heading.
This simplistic approach had to be aided by another vision-based mechanism to avoid obstacles. I refer to it as visual sonars, but no range sensors and no GPS are used in the following video, only vision:


[Escolano, Suau, Bonev 2009] F. Escolano, P. Suau, B. Bonev. "Information Theory in Computer Vision and Pattern Recognition". (Hardcover) Springer, 2009
[Bonev, Cazorla, Escolano 2007] B. Bonev, M. A. Cazorla, F. Escolano. "Robot Navigation Behaviors based on Omnidirectional Vision and Information Theory". Journal of Physical Agents - September 2007

jueves, 17 de mayo de 2012

Análisis de sentimientos

En procesamiento del lenguaje natural (NLP) el término Sentiment analysis no se refiere a un análisis psicológico de un texto (todavía no nos estamos planteando quitarle el trabajo a los psicólogos). Sentiment analysis se refiere a extraer información subjetiva de un texto. 
Durante los últimos meses he estado trabajando en una aplicación de análisis de sentimiento que consiste en clasificar opiniones de usuarios en positivas y negativas. Se llama Opinum [Bonev et al, 2012] y se puede entrenar para cualquier contexto si uno cuenta con un conjunto de datos (etiquetados) para entrenarlo. Los idiomas para los que se podría entrenar son la mayoría de los europeos.

Un ejemplo de su funcionamiento. Las dos frases siguientes comparten casi las mismas palabras pero en orden diferente:
“Al tener la web, no pierdes el tiempo por teléfono.” [Reconocida como: positiva]
“En el teléfono os hacen perder el tiempo y no tienen web.” [Reconocida como: negativa]
Muchos analizadores tradicionales se basan en contar palabras clave que se consideran positivas y negativas, pero en Opinum lo que importa es la secuencia.

La primera prueba con Opinum está hecha con opiniones del ámbito financiero: bancos, cajas, productos financieros... un tema bonito. (Hablando de ironía, Opinum no está preparado para opiniones irónicas, aunque sí que hay trabajos en análisis del sentimiento que abordan este tema). Podéis probar esta versión on-line, en http://aplica.prompsit.com/es/opinum. Se trata de introducir una opinión completa, no sólo unas palabras o una frase:

¿Cómo funciona? Se entrenan dos modelos: uno para las opiniones positivas y otro para las negativas. Los modelos están basados en n-gramas, capturando la información de secuencia. 
¿Cuál es la dificultad? Para construir este tipo de modelos hace falta una cantidad enorme de texto, y no suele haber corpus tan grandes de opiniones etiquetadas.
¿Cómo se supera el problema? Simplificando los textos simplificamos el modelo de lengua, de manera que con los datos que contamos es factible entrenarlos. 

La simplificación consiste en eliminar (casi) toda la morfología de los textos: desaparecen singulares, plurales, tiempos verbales, personas. La esencia del texto permanece, pero la complejidad se reduce drásticamente. Así, las frases siguientes serían equivalentes:
Me di cuenta de mi error cuando hablé con la directora.
Te darás cuenta de tus errores cuando hables con el director.
Os daríais cuenta de vuestro error cuando hablarais con los directores.
 porque todas pasan a ser:
PrnPers dar cuenta de DetPos error cuando hablar con el director.
Puede parecer un abuso, pero si torturas los datos lo suficiente, in the end they will confess.

[Bonev et al, 2012] B. Bonev, G. Ramírez-Sánchez, S. Ortiz Rojas. "Opinum: statistical sentiment analysis for opinion classification". WASSA - ACL2012.