miércoles, junio 04, 2008

BORRAR Y MAS BORRAR (III)

Imagen: A Thom Yorke también le gustan los borradores. Ya me dirán cómo es la cosa sus fanáticos. Tomada de la página de Thom Yorke en Amie Street.

Se alargó y se alargó la trilogía sobre la conferencia de Oxford, hasta tal punto que ya no voy a hablar en ella de las charlas más importantes de mis gurúes académicos: Sven Aerts, Dominic Widdows y Peter Bruza. Y de otras charlas muy interesantes. Voy a saltar de una vez a la parte donde se entiende por qué la trilogía hace referencia a los borradores. No es porque las penas no se borren con un borrador de tiza, ni con el trago que me embriaga.

La idea es la siguiente: Aerts, Widdows y Bruza han mostrado cómo el lenguaje natural tiene rasgos que se acomodan más a una descripción construída sobre la lógica cuántica que sobre la lógica booleana normal , pero yo pretendo extender eso un poco: tal vez las mediciones lexicográficas que se hacen sobre documentos de texto en lenguaje natural también funcionen mejor representadas con un esquema cuántico.

De acuerdo con la teoría cuántica, cuando se escoge un conjunto de observables para medir en un sistema, al medirlos se borrará irremediablemente la información acerca de otros observables que no se midieron. Es decir, al medir una cosa, se borra otra.

Mi modesto aporte, para decirlo de una vez, consiste en tres cosas:
  1. Definir borradores selectivos, que borran todo lo que no está en la vecindad de la aparición de una palabra en el texto, y mostrar que tienen muchas de las características de mediciones cuánticas ideales: se comportan como un cierto tipo de operadores llamados proyectores.
  2. Explorar las posibles relaciones lógicas entre los borradores selectivos definidos con diferentes palabras y diferentes tamaños de vecindad, todo bajo la luz de lo que se conoce sobre lógica cuántica
  3. Proponer la manera como se pueden utilizar estas características cuánticas de las mediciones lexicográficas para representar documentos de texto en un sistema de búsqueda de información.
La idea es que un documento de texto puede pensarse como un estado de un sistema físico. Hay un sistema físico, no importa si es un disco, un papel, o lo que sea, y lo que está escrito ahí es un estado del sistema. Lo que está escrito, además, no está definido hasta que el lector no ha escogido el punto de vista desde el cual lo va a leer. Las palabras se consideran, en este enfoque, como entes con un significado muy dependiente del contexto, cuya representación, si pretende llevar un contenido semántico, debería depender fuertemente del punto de vista.

Cuando dos borradores son compatibles, el orden en el que se aplican no importa, y con ellos se pueden definir las operaciones lógicas habituales (uno Y el otro, uno O el otro, etc.). Cuando no son compatibles , la lógica booleana no tiene mucho que decir de sus relaciones, y hay que comenzar a escarbar en lo que se ha desarrollado de la lógica cuántica, una lógica con puntos de vista (hay otras, pero son bastante más complicadas).

Como tengo que aplicar este esquema a experimentos prácticos de búsqueda de información, ya comencé a aprender a poner ese tipo de cosas a funcionar con un computador. Algo que estoy haciendo, es practicar con texto sacado de blogs. Lo que he hecho hasta ahora a nivel informal (de mi trabajo formal no hablo aún) es encontrar la manera de sacar una matriz de similaridad entre palabras según su uso, partiendo de un documento de texto.

El lector suficientemente geek puede encontrar en este enlace un programa que calcula la matriz de co-ocurrencias. Se baja como documento de texto a CoOcurrencias.sh, y se le fijan los permisos como ejecutable. Eso se puede hacer con

wget http://www.dcs.gla.ac.uk/~alvaro/CoOcurrencias.sh
chmod +x CoOcurrencias.sh
# La siguiente linea hay que añadírsela a /etc/rc.local con privilegios de administrador:
alias CoOcurrencias="/CoOcurrencia.sh"

Para usarlo, sugiero crear una carpeta con sólo la lista de palabras y el archivo de texto. Se ubica en esa carpeta, y le da el siguiente comando:

CoOcurrencias [lista de términos] [archivo de texto] [ancho de ventana]


El programa creará algunos archivos temporales que se borran solos, y una carpeta "ventanas" donde pondrá unos archivos .dat con los conteos alrededor de cada palabra. Finalmente, quedan los siguientes archivos:

TerminosContados.txt - Conteo de los términos que aparecen
resultadosCC.out - Los pares de palabras, con las veces que aparecen cerca
resultadosCCN.out - Las palabras reemplazadas por números, para procesamiento matemático posterior.


Recomiendo que para estos cálculos se utilicen archivos de texto de al menos cientos de miles de palabras, pues de otro modo la matriz de coocurrencias queda muy vacía.

Inicialmente, apliqué este procedimiento al primer pantallazo del blog Pensemos País Bizarro, de donde saqué 223044 palabras (tokens) que son distintas ocurrencias de 19701 términos, 12958 aparecen sólo una o dos veces, 6743 aparecen más veces. Por ahora, sólo mencionaré un par de datos curiosos que encontré en el citado blog:

  • Entre las palabras más frecuentes está "Colombia" que sale 598 (mas frecuente que 19292 palabras, menos que 31)
  • La palabra "nunca", una muletilla epistemológica que me causa gracia del autor del blog, aparece 90 veces (mas frecuente que 19090 términos, menos frecuente que 233)
  • La palabra "siempre", otra cara de la misma muletilla, aparece 229 veces (mas frecuente que 19240 términos, menos frecuente que 83)
  • La palabra "izquierda" tiene una frecuencia de co-ocurrencia con la palabra "antepasado" que es toda una rareza en el lenguaje natural. Altísima. "antepasado" sólo aparece en la vecindad de "izquierda". Habría que juntar este pantallazo con otros, para validar este resultado en un texto más largo.
Finalmente, ya que estamos hablando de lenguaje, les dejo acá un video hilarante que se encontró Shoegazer sobre el lenguaje que se usa en Glasgow:



Buen provecho. Ya me dirán los que la conocen si la presentadora no se parece a mi mamá cuando era joven.

COMPREN, COMPREN