Está en la página 1de 4

Micro-Mooc Integración de traducción automàtica neuronal en proyectos de

traducción con MTUOC - Tema 5. Más herramientas del proyecto MTUOC

5.1. Introducció
El proyecto MTUOC proporciona muchas más herramientas que permiten tanto la preparación y
preprocesamiento de corpus paralelos, como el entrenamiento de sistemas estadísticos (con Moses) y neuronales
(con Marian y OpenNMT), y la evaluación automática de los sistemas entrenados.

En esta unidad aprenderemos a evaluar los sistemas de traducción automática MTUOC y a compararlos con
Google Translate.

Para evaluar los sitemas entrenados necesitamos tener una parte del corpus de entrenamiento para evaluar.
Estos segmentos reservados para la evaluación no pueden haber sido utilizados para entrenar el sistema. Para
evaluar el sistema MTUOC-00-generic-MTSPGA-eng-spa puedes utilizar los siguientes archivos que contienen
1000 segmentos en inglés y español:

• eval.en
• eval.es

Si quieres realizar las actividades de una manera un poco más rápida, puedes utilizar el siguiente subconjunto,
que contiene únicamente 100 segmentos:

• eval100.en
• eval100.es

El proceso de evaluación se divide en los siguientes pasos. Si evaluamos un sistema eng-spa, haremos:

• Traducción del conjunto eval.en con el sistema que queremos evaluar (si el sistema se llama A, podemos
utilizar la nomenclatura sigueinte) y obtenemos eval.en-A.es
• Traducción del mismo conjunto de evaluacón eval.en con el sistema con el que queremos comparar, por
ejemplo Google Translate, obteniendo eval.en-GoogleT.es
• Utilizar MTUOC-eval para comparar eval.en-A.es y eval.en-GoogleT.es con la parte spa del conjunto de
evaluación: eval.es

En esta unidad aprenderemos a realizar todas estas acciones.

5.2. Traducción del conjunto de evaluación con


MTUOC
En el primer tema de este curso ya vimos cómo traducir un archivo de texto segentado con MTUOC-Translator
y con MTUOC-Translator-lite. Antes de traducirlo, tenemos que tener acceso a un servidor MTUOC con el motor
que deseamos. Pon en marcha un motor (ya sea en Linux como en una máquina virtual) o bien utiliza el que
está accesible públicamente. Es importante sabe el tipo de servidor (en el ejemplo es de tipo MTUOC, pero
puede ser cualquier otro) y el puerto. Pongamos que tenemos un servidor MTUOC en la IP 192.168.1.51 y en
el puerto 8000. Si queremos traducir el conjunto eval.en con MTUOC-Translator-lite escribiremos en terminal
(consideramos que tenemos los archivos a traducir en el mismo directorio en el que nos encontramos, si no es
así, recuerda indicar la ruta completa).

python3 MTUOC-Translator-lite.py --ip 192.168.1.51 --port 8000 --type MTUOC -i eval.en -o eval.en-Marian.es

Después de un rato (hay un total de 1000 segmentos, recuerda que puedes utilizar si lo prefieres, el
subconjunto de 100 segmentos), en eval.en-Marian.es tendrás el conjunto de evaluación traducido al español (lo
hemos llamaddo así porque el motor utiliza Marian, pero lo puedes llamar como prefieras).

Este proceso, si lo prefieres, se puede realizar con la interfaz gráfica de MTUOC-Translator, y se obtendrá el
mismo resultado.

Page 1 / 4 - last modified by Antoni Oliver on 2020/09/28 17:45


Micro-Mooc Integración de traducción automàtica neuronal en proyectos de
traducción con MTUOC - Tema 5. Más herramientas del proyecto MTUOC

5.3. Traducción del conjunto de evaluación con


Google Translate
Como querremos comparar el motor Marian con Google Translate, traduciremos el conjunto de evaluación con
Google Translate. Si tenéis una cuenta de pago de Google Translate, lo podréis hacer sin problemas. Si no,
podéis utilizar el siguiente truco:

Google Translate en Google Sheets de Drive


 

Ahora podemos abrir el archivo eval.en en cualquier editor de textos, seleccionarlo todo y hacer Ctrl+C e ir
a Google Drive, abrir una hoja de Google Sheets nueva y engachar el texto. Una vez hecho esto tenemos que
verificar que el número de filas sea el correspondiente al número de segmentos (1000 o 100, según el fichero
que utilicéis). A veces ocurre que hay un número diferente de filas. Si ocurre esto, la solución es seleccionar todo
el texto en el editor de textos, hacer Ctrl+C y primero copiarlo a un archivo nuevo de Google Docs. En Google
Docs seleccionar de nuevo todo el texto con Ctrl+A, copiarlo con Ctrl+C y engancharlo (Ctrl+V) al Google Sheets.
Ahora sí que tendrá el número de líneas correctos. Entonces podéis seguir las indicaciones del enlace anterior
para traducir el texto. Una vez traducido copias toda la columna correspondiente a la traducción y la enganchas
en un editor de textos con un archivo en blanco. Conviene volver a revisar que el número de líneas es el correcto.

5.4. Uso de MTUOC-eval


MTUOC-eval permite calcular toda una serie de métricas. Es un programa escrito en Python que ofrece dos
versiones, una con funcionamiento en linea de comando y otra mediante una interfaz gráfica. Si distribuye en
código Python y en ejecutable para Windows. Se puede descargar de este enlace. Dentro del zip hay todo lo
necesario y se deben mantener todos los componentes juntos para que funcione. Así pues tendrás la opción de
ejecutar:

• MTUOC-eval.py: versión Python bajo línea de comandos.


• MTUOC-eval.exe: Versión ejecutable para Windows bajo linea de comandos.
• MTUOC-eval-GUI.py: Versión Python con inferfaz gráfica
• MTUOC-eval-GUI.exe: versión ejecutable para Windows con interfaz gráfica.

MTUOC-eval permite calcular las siguientes métricas automáticas:

• BLEU
• NIST
• WER 
• Distancia de edición
• TER

Si queréis tener más detalles sobre estas medidas podéis consultar las páginas 28 y 29 de la tesis doctoral de
Jesús Giménez Empirical Machine Translation and its Evauation.

MTUOC-eval

Para utilizar MTUOC-eval sin inrefaz gráfica podemos consultar la ayuda mediante la opción -h:

python3 MTUOC-eval.py -h
usage: MTUOC-eval.py [-h] --tokenizer TOKENIZER --refs REFS --hyp HYP [--BLEU]
                     [--NIST] [--WER] [--ED] [--TER]

MTUOC script for automatic machine translation evaluation. Available measures:


BLEU, NIST, WER

optional arguments:
  -h, --help            show this help message and exit
  --tokenizer TOKENIZER
                        The tokenizer to be used.

Page 2 / 4 - last modified by Antoni Oliver on 2020/09/28 17:45


Micro-Mooc Integración de traducción automàtica neuronal en proyectos de
traducción con MTUOC - Tema 5. Más herramientas del proyecto MTUOC

  --refs REFS           The file with the reference segments. Multiple


                        references per segment can be used. They should be
                        separated by a tabulator
  --hyp HYP             The target language.
  --BLEU                Calculate BLEU.
  --NIST                Calculate NIST.
  --WER                 Calculate WER.
  --ED                  Calculate Edit Distant percent.
  --TER                 Calculate TER (using termcom).

(si utilizas la versión ejecutable para Windows cambia python3 MTUOC-eval.py por MTUOC-eval.exe)

Ahora podemos hacer (los resultados pueden ser diferentes a los que obtendrás):

python3 MTUOC-eval.py --tokenizer MTUOC_tokenizer_spa.py --refs eval.es --hyp eval.en-Marian.es 


BLEU:  0.4567
NIST:  7.564
WER:   0.4213
%EdDist 35.11
TER 0.3722

Y para Google Translate (los resultados pueden ser diferentes a los que obtendrás):

python3 MTUOC-eval.py --tokenizer MTUOC_tokenizer_spa.py --refs eval.es --hyp eval.en-GoogleT.es 


BLEU:  0.3997
NIST:  6.9
WER:   0.5089
%EdDist 37.78
TER 0.4351
 

En este ejemplo los valores obtenidos con Marian son mejores que los de Google Translate. 

MTUOC-eval-GUI

Esta versión facilita el uso mediante una interfaz gráfica sencilla. La versión ejecutable para Windows se puede
poner en marcha haciendo doble clic en el navegador de archivos. La de Python desde terminal escribiendo
python3 MTUOC-eval-GUI.py

Cuando se abre el programa aparece esta pantalla:

donde podemos seleccionar los archivos de referencias (el eval100.es) y el de hipótesis (el eval.en-Marian.es o
el eval.en-GoogleT.es). También seleccionaremos el tokenizador adecuado de la lista desplegable. Haciendo clic
en el botón Calculate se inicia el proceso de cálculo. Cuando éste finaliza, el botón se libera y podemos observar
los resultados en la pestaña Results.

Page 3 / 4 - last modified by Antoni Oliver on 2020/09/28 17:45


Micro-Mooc Integración de traducción automàtica neuronal en proyectos de
traducción con MTUOC - Tema 5. Más herramientas del proyecto MTUOC

Podemos copiar los resultados en el portapapeles haciendo clic en el botón Copy to clipboard.

5.5. EJERCICIO PRÁCTICO


Traduce con MTUOC-00-generic-MTSPGA-eng-spa y con Google Translateel archivo eval.en y evalua los
sistemas con MTUOC-eval, utilizando como referencias el archivo eval.es

• eval.en
• eval.es

Si quieres realizar las actividades de una manera un poco más rápida, puedes utilizar el siguiente subconjunto,
que contiene únicamente 100 segmentos:

• eval100.en
• eval100.es

Si tienes dificultades para traducir los archivos puedes utilizar los siguientes ya traducidos:

• eval.en-Marian.es
• eval.en-GoogleT.es
• eval100.en-Marian.es
• eval100.en-GoogleT.es
 

Page 4 / 4 - last modified by Antoni Oliver on 2020/09/28 17:45

También podría gustarte