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

Rompecabezas 1

Hace poco más de un mes empecé a mostrarles cómo funcionan los traductores automáticos estadísticos. En aquel momento, aprendimos que necesitan de un corpus bilingüe y que a través de él son capaces de extraer piezas pequeñas de traducción que son luego utilizadas para formas traducciones más grandes.

Sin embargo, utilizando únicamente estas piezas no siempre es posible traducir de forma correcta una oración. Pongamos por ejemplo que queremos traducir al inglés la frase

“por favor, tome asiento”

Para ello, buscamos entre nuestra caja de piezas pequeñas y encontramos las siguientes piezas que pueden sernos útiles:

“por favor -> please”
“, -> ,”
“tome -> have”
“tome -> drink”
“asiento -> a seat”

Con ellas es fácil empezar la traducción “please, …” pero luego viene la duda: ¿cómo distinguir cuál pieza usar para “tome”? Pues obviamente no es lo mismo “pelase, drink a seat” (por favor, beba un asiento) que la correcta “please, have a seat”.

Es aquí cuando entran en juego los dos hermanos inseparables de la traducción automática estadística: el modelo de traducción y el modelo de lenguaje. De manera muy simple, un modelo es una descripción matemática de algún hecho real. En nuestro caso, es una descripción que nos permite darle un puntaje a nuestras posibles traducciones. ¿Por qué es importante dar puntajes? pues porque de esta manera el sistema puede elegir como traducción final aquella en la que sumen más ambos modelos.

El modelo de traducción y el de lenguaje cumplen funciones distintas pero igualmente importantes a la hora de traducir: el primero se encarga de puntuar qué tan bien una palabra es traducción de otra mientras que el segundo se encarga de puntuar qué tan bien escrita está la traducción. Por ejemplo: un modelo de traducción debería darle un buen puntaje a las piezas “azul -> blue” y “traducir -> translate” y un mal puntaje a las piezas “feliz -> sad” y “bueno -> bad”; por otro lado, un modelo de lenguaje debería darle una baja puntuación a “hoy me acordé tuyo” pues no es una oración correcta y darle una alta puntuación a “hoy me acordé de ti”.

Ahora, usando un modelo de traducción podemos volver a revisar nuestras piezas y otorgarles su puntaje correspondiente:

“por favor -> please” = 100pts
“, -> ,” = 100pts
“tome -> have” = 50pts
“tome -> drink” = 50pts
“asiento -> a seat” = 100pts

Y entonces dirás “¡pero no hemos resuelto nada! ambas opciones siguen sumando igual” y te diré que tienes razón pero aún no hemos terminado. Recuerda que la solución final será aquella en la que la suma de AMBOS modelos sea mayor. Nuestro modelo de lenguaje debería tener más o menos esta forma:

“please” = 100pts
“please, have a” = 50pts
“please, drink a” = 50pts
“drink a seat” = 10pts
“have a seat” = 90pts

Con lo cual, nuestra mejor opción sería “please, have a seat”. Fijémonos en el resultado final:

“por favor -> please” + “, -> ,” + “tome -> drink” + “asiento -> a seat” + “please” + “please, drink a” + “drink a seat”
100pts + 100pts + 50pts + 100pts + 100pts + 50pts + 10pts = 510pts

“por favor -> please” + “, -> ,” + “tome -> have” + “asiento -> a seat” + “please” + “please, have a” + “have a seat”
100pts + 100pts + 50pts + 100pts + 100pts + 50pts + 90pts = 590pts

Queda por saber cómo construir estos modelos utilizando el corpus bilingüe que tenemos disponible. También es importante destacar que estos dos no son los únicos modelos que participan en el cálculo de la traducción.

Todo esto suena muy bien pero mejor una cosa a la vez. En la próxima entrega cubriré el tema de cómo construir los modelos de traducción y lenguaje utilizando el corpus bilingüe y a partir de allí avanzamos.

Si llegaste hasta aquí, muchas gracias. Espero que te haya interesado y que no haya sido muy complicado. 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.

Continúa en ¿Cómo funcionan los traductores automáticos? (III) >>

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

    1. Hola Johnny.
      Muchas gracias por tu interés.
      La página principal de la herramienta más usada para traducción automática (de código abierto) es Moses
      http://www.statmt.org/moses/index.php?n=Main.HomePage
      Allí encontrarás información muy detallada de los modelos involucrados en la traducción. Está en inglés.
      A grosso modo podríamos decir que sí, todo es en base a sacar estadísticas de datos almacenados. Hay una serie de consideraciones para suavizar los números (evitar multiplicaciones por cero en algunos casos, por ejemplo) pero la idea general efectivamente es trabajar con la estadística de los datos.

    1. El paradigma de traducción más empleado por la comunidad es el basado en frases. Moses, la herramienta que te comenté antes, lo incluye y es el que usa por defecto.
      Darle puntaje a las sugerencias es un tema muy delicado. Para empezar, se divide en dos etapas: puntuar una sugerencia para determinar si es buena o mala, y luego entre las buenas, puntuar las sugerencias para sacar información que mejore el sistema de traducción. Este último tema es el que trabajo en mi tesis doctoral.
      Si quieres, podemos continuar la conversación por correo electrónico :) saludos.

Deja un comentario