Tutorial: corpus paralelos disponibles - mtuoc/tutorials GitHub Wiki

1. Introducción

Para entrenar sistemas TAN necesitaremos disponer de un corpus paralelo de tamaño suficiente. Existen diversos repositorios en Internet de donde podemos obtener corpus paralelos para diversos pares de lenguas y especialidades. Existen diversos repositorios que disponen de corpus paralelos para su descarga libre. Como veremos hay uno que destaca entre todos ellos: Opus Corpus, aunque hay también otras opciones interesantes.

En este tutorial también veremos los principales formatos en los que se distribuyen estos corpus paralelos.

2. Lectura recomendada

Tiedemann, J. (2022). From open parallel corpora to public translation tools: The success story of OPUS. In LIVE and LEARN: Festschrift in honor of Lars Borin (pp. 133-138). University of Göteborg.

3. Opus Corpus

Hay un repositorio que destaca principalmente: Opus Corpora. Acceded a este recurso e inspeccionadlo detenidamente. Como veréis, hay un buscador donde podéis poner la lengua de partida y la de llegada. Si ponés de partida Inglés y de llegada Español, y observad cuántos corpus salen. Os aparece una tabla con estadísticas básicas de número de segmentos y tokens. Es importante que cada nombre de corpus es un enlace y al clicar váis a una página donde se explican los detalles del corpus especificado.

Un aspecto muy importante a tener en cuenta sobre estos corpus es que la lengua de partida del corpus no tiene porqué ser la lengua real original y la de llegada la traducción. Por ejemplo en un corpus inglés - español, en un segmento quizás sea el inglés el original y el español la traducida, pero en otro puede ser alrevés o incluso que las dos lenguas sean en realidad la traducción de una tercera lengua que sería el original. Mirando la descripcio detallada del corpus podremos saber, o mejor dicho, intuir, si son en realidad los origininales o no.

Otro aspecto es que algunos de los corpus son realmente enormes y la descarga necesita bastante tiempo y necesitas además bastante disco duro en el ordenador.

Ahora bajad algun corpus pequeño, por ejemplo el EMEA con poco más de 1M de segmentos (no bajéis ahora el ELRC-EMEA, que es mucho más grande. Veréis que lo podéis bajar en formato Moses y en formato TMX. Bajad los dos formatos, descomprimid los archivos si es necesario y observad (abriéndolo en un buen editor de textos (un poco más adelante pongo algunos consejos sobre qué editores de texto son adecuados). Un poco más adelante en este tutorial explicamos todos los detalles sobre estos formatos y cómo pasar de uno al otro.

3. ELRC-SHARE

ELRC-SHARE es un repositorio de datos lingüísticos que contiene aproximadamente 6,000 conjuntos de datos de diferentes tamaños. Es importante tener en cuenta que estos recursos tienen diferentes licencias de acceso y que no todas ellas son libres. Explora los corpus NTEU, que son los que se han utilizado para entrenar los sistemas de traducción automática neuronal eTranslation.

4. Formatos habituales de los corpus paralelos

4.1. Formato Moses

El formato Moses es muy habitual y consiste en dos archivos de texto, uno para cada lengua, en el que cada línia tiene un segmento y estos segmentos están alineados línea a línea. Es decir, la primera línea del archivo de la lengua de partida se corresponde con la primera línea del archivo de la lengua de llegada.

4.2. Formato de texto tabulado

Este formato también es muy habitual y se trata de un único archivo de texto con dos campos separados por un tabulador. El primer campo corresponde al segmento en la lengua de partida y el segundo campo al segmento en la lengua de llegada.

4.3. Formato TMX

Este formato es el estándard para el intercambio de memorias de traducción. Recordemos que memorias de traducción y corpus paralelos son conceptos muy similares. Este formato es algo menos práctico para corpus paralelos de gran tamaño, ya que todo el marcaje que lleva hace que los tamaños de los archivos sean mucho mayores que el tamaño de los archivos Moses o de texto tabulado correspondientes.

5. Conversión entre formatos de corpus paralelos

5.1. Conversión de formato Moses a texto tabulado

Esta conversión se puede realizar fácilmente con instrucciones Unix estándard. Si tenemos los archivos Moses corpus.SL y corpus.TL podemos pasarlo a texto tabulado haciendo:

paste corpus.SL corpus.TL > corpus-SL-TL.txt

Podemos aprovechar esta operación para eliminar los segmentos repetidos mediante la siguiente instrucción:

paste corpus.SL corpus.TL | sort | uniq | shuf > corpus-uniq-SL-TL.txt

La parte sort | uniq elimina las repeticiones y da como resultado un archivo ordenado alfabéticamente. Para eliminar este orden alfabético utilizamos shuf para desordenar aleatóriamente los segmentos. Fíjate en la posibilidad que da Unix de concatenar instrucciones utilizando un pipe (|).

Aquí hay que recordar que cualquier operación sobre un corpus paralelo que implique la eliminación de algún segmento, como por ejemplo la que acabamos de ver de eliminar repeticiones, se tiene que hacer sobre un corpus tabulado y no sobre los dos archivos Moses, ya que si modificamos uno de los archivos Moses y no el otro, se pierde la alineación.

Es muy importante tener en cuenta que en las instrucciones anteriores hemos considerado que los segmentos de los corpus no contienen tabuladores. Si algún segmento contiene tabulador, que coincide con el carácter de separación de los campos, el resultado de paste sería un segmento con más de dos campos y con una alineación incorrecta. Si no estamos seguros de si los segmentos contienen tabuladores nos podemos asegurar substituyendo todos los posibles tabuladores por espacios. Esto se puede conseguir con la siguiente instrucción:

sed 's/\t/ /g' file.txt > filemod.txt

o bé amb:

expand -t 1 file.txt > filemod.txt

5.2. Conversión de texto tabulado a formato Moses

Si tenemos un archivo en texto tabulado, corpus-SL-TL.txt, y lo queremos convertir en sus correspondientes dos archivos en formato Moses, podemos escribir en un terminal de Linux:

cut -f 1 corpus-SL-TL.txt > corpus.SL
cut -f 2 corpus-SL-TL.txt > corpus.TL

5.3. Conversión de archivo TMX a texto tabulado

Para hacer esta conversión podemos utilizar los programas que se encuentran en el siguiente repositorio: https://github.com/mtuoc/MTUOC-TMX2tabtxt. Se puede encontrar una explicación detallada de cómo llevar a cabo esta conversións en el Tutorial: conversión de TMX a texto tabulado.