Tutorial: Corpus paral·lels disponibles - mtuoc/tutorials GitHub Wiki

1. Introducció

Per a entrenar sistemes TAN necessitarem disposar d'un corpus paral·lel de mida suficient. Hi ha diversos repositoris a Internet d'on podem obtenir corpus paral·lels per a diversos parells de llengües i especialitats. Hi ha diversos repositoris que disposen de corpus paral·lels per a la seva descàrrega lliure. Com veurem, n'hi ha un que destaca entre tots ells: Opus Corpus, encara que també hi ha altres opcions interessants.

En aquest tutorial també veurem els principals formats en què es distribueixen aquests corpus paral·lels.

2. Lectura recomanada

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

Hi ha un repositori que destaca principalment: Opus Corpora. Accediu a aquest recurs i inspeccioneu-lo detingudament. Com veureu, hi ha un cercador on podeu posar la llengua de partida i la d'arribada. Si poseu a la llengua de partida anglès i a la d'arribada espanyol, observeu quants corpus apareixen. Us apareix una taula amb estadístiques bàsiques amb el nombre de segments i tokens. És important veure que cada nom de corpus és un enllaç i en clicar-hi us dirigeix a una pàgina on s'expliquen els detalls del corpus especificat.

Un aspecte molt important a tenir en compte sobre aquests corpus és que ni la llengua de partida del corpus no té per què ser la llengua real original ni la d'arribada la traducció. Per exemple, en un corpus anglès - espanyol, en un segment potser l'anglès és l'original i l'espanyol la traducció, però en un altre podria ser a la inversa o fins i tot que les dues llengües siguin en realitat la traducció d'una tercera que seria l'original. Mirant la descripció detallada del corpus podrem saber, o millor dit, intuir, si són en realitat els originals o no.

Un altre aspecte és que alguns dels corpus són realment enormes i la descàrrega necessita bastant de temps a més a més de suficient disc dur a l'ordinador.

Ara baixeu algun corpus petit, per exemple l'EMEA amb poc més d'1M de segments (no baixeu ara l'ELRC-EMEA, que és molt més gran. Veureu que el podeu baixar en format Moses i en format TMX. Baixeu els dos formats, descomprimiu els fitxers si és necessari i observeu (obriu- ho en un bon editor de textos (una mica més endavant dono alguns consells sobre quins editors de text són adequats)). Una mica més endavant en aquest tutorial expliquem tots els detalls sobre aquests formats i com passar de l'un a l'altre.

3. ELRC-SHARE

ELRC-SHARE és un repositori de dades lingüístiques que conté aproximadament 6,000 conjunts de dades de diferents mides. És important tenir en compte que aquests recursos tenen diferents llicències d'accés i que no totes elles són lliures. Explora els corpus NTEU, que són els que s'han emprat per a entrenar els sistemes de traducció automàtica neuronal eTranslation.

4. Formats habituals dels corpus paral·lels

4.1. Format Moses

El format Moses és molt habitual i consisteix en dos fitxers de text, un per a cada llengua, en el que cada línia té un segment i aquests estan alineats línia a línia. És a dir, la primera línia del fitxer de la llengua de partida es correspon amb la primera línia del fitxer de la d'arribada.

4.2. Format de text tabulat

Aquest format també és molt habitual i es tracta d'un únic fitxer de text amb dos camps separats per un tabulador. El primer camp correspon al segment en la llengua de partida i el segon camp al segment en la llengua d'arribada.

4.3. Format TMX

Aquest format és l'estàndard per a l'intercanvi de memòries de traducció. Recordem que memòries de traducció i corpus paral·lels són conceptes molt similars. Aquest format és una mica menys pràctic per a corpus paral·lels de gran mida, ja que tot el marcatge que porta fa que les mides dels fitxers siguin molt més grans que la mida dels fitxers Moses o de text tabulat corresponents.

5. Conversió entre formats de corpus paral·lels

5.1. Conversió de format Moses a text tabulat

Aquesta conversió es pot realitzar fàcilment amb instruccions Unix estàndard. Si tenim els arxius Mosses corpus.SL i corpus.TL podem passar-ho a text tabulat fent:

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

Podem aprofitar aquesta operació per a eliminar els segments repetits mitjançant la següent instrucció:

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

La part sort | uniq elimina les repeticions i dona com a resultat un fitxer ordenat alfabèticament. Per eliminar aquest ordre alfabètic utilitzem shuf per a desordenar aleatòriament els segments. Fixeu-vos en la possibilitat que ofereix Unix de concatenar instruccions utilitzant un pipe (|).

Aquí heu de recordar que qualsevol operació sobre un corpus paral·lel que impliqui l'eliminació d'algun segment, com per exemple el que acabem de veure eliminar repeticions, s'ha de fer sobre un corpus tabulat i no sobre els dos fitxers Moses, ja que si modifiquem un dels fitxers Moses i no l'altre, es perd l'alineació.

És molt important tenir en compte que a les instruccions anteriors hem considerat que els segments dels corpus no contenen tabuladors. Si algun segment conté tabulador, que coincideix amb el caràcter de separació dels camps, el resultat de paste seria un segment amb més de dos camps i amb una alineació incorrecta. Si no estem segurs de si els segments contenen tabuladors ens podem assegurar substituint tots els possibles tabuladors per espais. Això es pot aconseguir amb la següent instrucció:

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

o bé amb:

expand -t 1 file.txt > filemod.txt

5.2. Conversió de text tabulat al format Moses

Si tenim un fitxer en text tabulat, corpus-SL-TL.txt, i el volem convertir en els seus corresponents dos fitxers en format Moses, podem escriure en una terminal de Linux:

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

5.3. Conversió de fitxer TMX a text tabulat

Per a fer aquesta conversió podem usar els programes que es troben en el següent repositori: https:/github.com/mtuoc/MTUOC-TMX2tabtxt. Es pot trobar una explicació detallada de com dur a terme aquesta conversió en el Tutorial: conversión de TMX a texto tabulado.