Ad verba per numeros

Artículos, Desarrollo de corpora comparables
Tuesday, April 3, 2007, 01:30 AM
Hace un tiempo quedé pendiente de revisar el siguiente artículo:

Rapp, R. 1999. "Automatic identification of word translations from unrelated English and German corpora", en Proc. of ACL-99, pp. 519-526

Y como lo prometido es deuda me pongo a ello.

Rapp (1999) describe una técnica para la obtención de léxicos bilingües a partir de textos no paralelos; esto es, colecciones de documentos que no tienen por qué ser traducciones literales. La técnica que propone se basa en la premisa de que existe una correlación entre las co-ocurrencias de palabras en distintos lenguajes y alcanza una precisión próxima al 72% en un experimento con los idiomas inglés y alemán.

La técnica de Rapp parte de un léxico bilingüe inicial que será expandido al aplicarla. Hoy en día no resulta excesivamente difícil disponer de tal léxico, incluso ajustado a la temática de las colecciones con las que se vaya a trabajar; para ello puede emplearse la información disponible en la Wikipedia, utilizando los títulos de artículos en distintos idiomas. De hecho, esto es precisamente lo que ha hecho Jaime para obtener dos léxicos bilingües: inglés-español e inglés-árabe.

Una vez se dispone de dicho léxico bilingüe se debe calcular una "matriz de co-ocurrencia" para el idioma destino. Las filas de dicha matriz corresponden a palabras extraídas del corpus destino y las columnas son palabras del mismo idioma tomadas del "léxico semilla". Por ejemplo, si deseásemos expandir el léxico inglés-árabe las filas serían palabras en árabe tomadas de la colección de documentos y las columnas serían las palabras en árabe existentes en el léxico inglés-árabe original.

Las celdas de esta matriz contendrán un valor numérico que indicará cuántas veces aparecen ambas palabras de manera "simultánea"; simultaneidad que debe darse en una ventana de tamaño fijo, según Rapp 3 es el tamaño óptimo. Un ejemplo aclarará este concepto; supongamos que queremos determinar la co-ocurrencia del término Rapp en este texto con ventanas de tamaño 3; así, tendríamos:

Rapp R 1999
Rapp 1999 describe
técnica de Rapp
de Rapp parte
Rapp parte de
Rapp no entra
fijo según Rapp
según Rapp 3
Rapp 3 es
...

Suponiendo que el orden de las palabras es irrelevante podrían calcularse, entre otros, los siguientes valores de co-ocurrencia:

(Rapp, R) = 1
(Rapp, 1999) = 2
(Rapp, describe) = 1
(Rapp, técnica) = 1
(Rapp, de) = 3
(Rapp, parte) = 2
(Rapp, no) = 1
(Rapp, entra) = 1
...

Es preciso señalar que Rapp describe otro método ligeramente más complejo para el cálculo de las co-ocurrencias que tiene en cuenta el orden de las palabras; la premisa de la que parte para introducir la ordenación de las palabras es que "it has been empirically observed that word order of content words is often similar between languages". No obstante, los idiomas con los que prueba su técnica son inglés y alemán que están muy relacionados mientras que nosotros vamos a trabajar con parejas de idiomas muy diferentes (p.ej. árabe e inglés) y el léxico semilla puede contener palabras vacías. Por esa razón, sugiero optar por la "versión" más sencilla de co-ocurrencia.

Recapitulando, para el idioma destino se construye una matriz de co-ocurrencias donde las filas contienen palabras del corpus, las columnas palabras del léxico y cada celda contiene un "contador de co-ocurrencias" para las palabras de la fila y la columna correspondientes calculado tal y como se ha descrito.

Por otro lado, Rapp señala que la correlación entre palabras puede "apreciarse" mejor si en lugar de utilizar simplemente los contadores de co-ocurrencia se emplea un estadístico que muestre la asociación entre las palabras. De entre los distintos estadísticos disponibles Rapp opta por emplear una versión "rápida" del log-likelihood ratio (véase, ecuación en página 522). Dicha versión requiere el cálculo de los siguientes valores: el contador de co-ocurrencias de las palabras A y B, el número de apariciones de la palabra A en el corpus, el número de apariciones de la palabra B en el corpus y el número total de palabras en el corpus.

(Continuará...)

Es fácil apreciar que el artículo de Rapp tiene bastante enjundia así que vamos a dejarlo aquí puesto que creo que ya hay material suficiente para comenzar a implementar; el objetivo sería desarrollar código que trabajando sobre un léxico bilingüe y la colección de documentos escritos en el idioma destino sea capaz de generar la matriz de co-ocurrencias en base a los conceptos aquí vistos. A tener en cuenta: (1) puesto que el robot nunca deja de descargar documentos puede ser interesante que el nuevo software disponga de un directorio en el que se encontrará una copia de la colección disponible, (2) el software a desarrollar debería ser capaz de almacenar y recuperar de disco matrices de co-ocurrencias.



Back Next