¿Cómo funcionan los traductores automáticos? (IV)

Hoy toca una nueva entrega de esta introducción a la traducción automática estadística. A lo largo de la serie, hemos aprendido qué es un corpus paralelo, cómo se combinan los modelos de traducción y lenguaje y finalmente cómo se construye el modelo de traducción de los sistemas basados en frases. El día de hoy cerraremos el ciclo aprendiendo cómo se construye el modelo de lenguaje.

Como mencionamos en la segunda entrega, el modelo de lenguaje es el que evalúa qué tan bien escrita se encuentra una palabra en el idioma destino. Así, si nuestra intención es traducir “That is a white dog” (y perdónenme la  simpleza de los ejemplos) el modelo de lenguaje debería darle un puntaje más alto a la opción “Ese es un perro blanco” a la opción “Ese es un blanco perro”. Sencillo, ¿no?

Debido a que el modelo de lenguaje trabaja únicamente con el idioma destino, para construirlo no necesitamos un corpus paralelo sino un corpus monolingüe. Usualmente se toma como corpus monolingüe la mitad correspondiente del corpus paralelo de entrenamiento pero en este caso podríamos ir más allá y utilizar cualquier colección de corpus monolingüe que tengamos a nuestra disposición. Puede verse fácilmente que conseguir corpus monolingüe es mucho más fácil que conseguir corpus paralelo.

Una vez recopilado el corpus monolingüe, el sistema pasa a aprender lo que se conoce como un modelo de n-gramas. En nuestro caso, definimos un n-grama como una subsecuencia de “n” palabras dentro de una oración. Ejemplo: la oración “ya he sobrevivido a más de tres párrafos de esta entrega” contiene, entre otros, los 3-gramas (o trigramas) “ya he sobrevivido”, “sobrevivido a más” y “párrafos de esta”. Fíjense que los n-gramas no tienen por qué tener un sentido propio, simplemente son palabras consecutivas dentro de una oración.

Los modelos de lenguaje basados en n-gramas son ampliamente utilizados en otras áreas distintas a la traducción: reconocimiento del habla, sintetizado de voz, desambiguación de palabras, correctores ortográficos, etc.

Y ¿de qué sirve un modelo de n-gramas? Pues utilizando las probabilidades que extraemos de él, podemos determinar cuál es la probabilidad de la siguiente palabra, dadas las anteriores. En concreto, un modelo de lenguaje puede respondernos la pregunta “¿Qué palabra pondrías luego de ‘En una galaxia muy, muy …’?”. Google suggest utiliza modelos de n-gramas (entre otras cosas) para completar nuestras búsquedas mientras escribimos.

Al momento de construir el modelo de n-gramas, lo primero que debe decidirse es el valor de “n”, es decir, el orden del modelo. En traducción, tradicionalmente trabajamos con modelos de lenguaje de 5-gramas (que no llamamos pentagramas). Una vez decidido se empiezan a calcular las probabilidades de todos los n-gramas, desde n=1 hasta el valor elegido, de la siguiente manera:

Que se lee como la probabilidad de que venga la palabra w (por ejemplo = “amigos”) considerando que antes se tiene la historia h (por ejemplo = “eso es todo”), la definimos como la división entre el número de veces que aparece el n-grama completo hw (“eso es todo amigos”) y las veces que aparece cualquier otra palabra ŵ precedida por la misma historia (“eso es todo amigos”, “eso es todo colegas”, “eso es todo jefe”, “eso es todo hermano”‘). El ejemplo anterior sería la probabilidad de un 4-grama (w = 1 y h = 3, “eso es todo amigos”).

Luego de calculado nuestro modelo de lenguaje, podemos evaluar cualquier oración en ese idioma. Veámoslo con un ejemplo.

Ej: ¿Cuál es la probabilidad de la oración “He entendido los modelos” para un modelo de lenguaje de trigramas (3-gramas)? La respuesta es:

Los símbolos <S> y </S> se usan para indicar el comienzo y el fin de la oración.

Con esta manera de calcular probabilidades para oraciones, el sistema de traducción es capaz de decidir cuál es el mejor término siguiente dado los anteriores, pues se decantará por la opción que le de mayor probabilidad (en combinación con el modelo de traducción y los otros modelos que se estén considerando). Un ejemplo sencillo de cómo se combinan los dos modelos pueden verlo en la segunda entrega de estos artículos.

Para terminar un último detalle que podemos mencionar sin complicarnos demasiado. Noten que al ser una multiplicación, si alguno de los término es cero, el resultado final también lo será. Para compensar ese inconveniente se trabaja con la siguiente función por partes:

En donde β es un valor de “reserva” (el término en inglés es “back-off”) distinto de cero, λ indica una interpolación lineal y ĥ es la historia eliminando la palabra más antigua (si no consigue la historia “los modelos”, que intente con “modelos”).

Y hasta aquí la serie “¿Cómo funcionan los traductores automáticos?“. Espero que te haya agradado y que no me haya enredado mucho explicando. En realidad, detrás de un sistema de traducción automática estadística hay muchas más partes que no he comentado aquí, pero considero que con estas cuatro entregas puedes tener una muy buena idea de cómo Google nos da las traducciones (y los garabatos más de una vez) que le pedimos. Esta es una área de investigación muy movida y continuamente se están mostrando alternativas y mejoras. Aún queda mucho por hacer.

Recuerda que si tienes alguna duda o comentario, puedes escribirme a través del blog (abajo donde dice “Deja un comentario”) o encontrarme en Twitter o Facebook. Y si eres aún más tradicional puedes hasta escribirme un correo electrónico.

5 thoughts on “¿Cómo funcionan los traductores automáticos? (IV)

  1. Hola,
    muchas gracias por esos 4 articulos,
    tengo que hacer un proyecto sobre los metodos que utilisan los traductores y hasta ahora no entendia bien como funcionaba esa traduccion estadistica (en los documentos que habia encontrado solo mencionaban el metodo explicandolo en muy pocas lineas).
    Gracias a usted ya lo entendi.

    1. Hola Yura.

      Me alegra que te hayan gustado. Aún queda mucho por decir sobre cómo funcionan al detalle. Esto es más una pequeña introducción. Si quieres, podemos mantenernos en contacto por correo electrónico y así podemos hablar de tu proyecto y ver si puedo ayudar en algo.

      Saludos.

Deja un comentario