Hectoralos/GSOC 2019 final report

From Apertium
Jump to navigation Jump to search

Introducció

Aquest document descriu el treball realitzar per Hèctor Alòs en el marc del Google Summer of Code 2019. Han supervisat el projecte Marc Riera i Xavi Ivars.

Pujades (commits)

Objectius i pla de treball

Els objectius i el pla de treball estan descrits en la proposta que vaig fer

S’ha tractat de millorar dos traductors existents: el català-italià (primera meitat del projecte) i el català-portuguès. En tots dos casos, es tracta dels dos sentits de la traducció. Això fa que en el primer parell s’hagi desenvolupat el traductor de català a italià, ja que fins ara només existia el d'italià a català. En el cas del portuguès, es va demanar de generar tant portuguès europeu (que és bàsicament el que s'utilitza també a les excolònies portugueses d'Àfrica i Àsia), com brasiler, quan fins ara només es generava el primer. A més, hi ha la complicació afegida del canvi ortogràfic de 1990 que afecta sobretot, però no només, al portuguès europeu. Els sistemes actuals a Apertium contemplaven només les formes antigues. El problema, però, és que el canvi, avui dia, s’aplica només parcialment a Portugal, i gens a Angola. En conseqüència, es va decidir de generar tres variants del portuguès: l'europea posterior al canvi ortogràfic (que és la varietat «per defecte»), l'europea anterior al canvi i la brasilera posterior al canvi ortogràfic.

Desenvolupament del projecte

Les tretze setmanes del projecte s’ha dividit en set per al parell italià-català i sis per al portuguès-català. La raó de posar una setmana mes al primer parell ha estat la necessitat de crear una direcció, com qui diu, des de zero (tot i que, evidentment, s’han reutilitzat moltes coses de traductors anteriors). Donat que el meu coneixement del català és molt millor que el de les altres dues llengües, en cada meitat del projecte primer he treballat sobretot en la direcció al català i, en la segona meitat de cada part, en la direcció des del català. De tota manera, totes dues direccions estan molt interrelacionades.

En les setmanes prèvies al GSoC pròpiament dit, he baixat les traduccions a l’italià i al portuguès del Viccionari català. També, Jaume Ortolà ha tingut l’amabilitat, com en altres ocasions, d’extreure de LanguageTool els noms, adjectius i adverbis italians i portuguesos en format ltoolbox, a més d’una llista de verbs. Això ha facilitat, i molt, la inclusió de paraules en els diccionaris, especialment en el cas portuguès, en què el nombre de paraules extretes de LanguageTool ha estat enorme. Cal dir, però, que he trobat força errors, sobretot ortogràfics i de picatge, en les traduccions del català a l’italià, però justament la llista de paraules de LanguageTool n’ha facilitat la supervisió.

A continuació explico el desenvolupament de les dues parts del projecte. Una visió numèrica de l’evolució del desenvolupament setmana a setmana pot veure’s aquí

Català-italià

Els problemes d’aquest parell ha vingut sobretot del costat italià, en què, fins ara, només s’havien publicat els parells italià-català i italià-sard. Tots dos han estat desenvolupats molt ràpidament, cosa que s’ha notat molt per un diccionari monolingüe italià relativament reduït i, sobretot, molts problemes en la desambiguació morfològica de l’italià. La millora d’aquesta desambiguació mitjançant Constraint Grammar ha estat una part important del treball. A més, en ser el primer parell que genera italià desenvolupat fins al nivell de poder ser estable, s’han inclòs algunes regles al post-generador italià, que no és trivial (encara en falten algunes, en particular per a les sigles). En essència, però, ja estava fet. La feina principal, que ha ocupat la meitat o més del temps, ha estat l’extensió del diccionari bilingüe.

A més d’això, en la direcció italià-català, s’han incrementat molt les regles de transferència i s’han afegit centenars de regles de selecció lèxica.

Per a la nova direcció català-italià s’han reutilitzat abastament recursos dels parells sard-italià i occità-francès, tant en les regles de transferència com en les de selecció lèxica. És per això que hi ha sensiblement més regles de selecció lèxica del català a l’italià que en sentit invers.

Català-portuguès

La situació inicial d’aquest parell era molt diferent de l’anterior. Primerament, sobre el portuguès s’ha fet molta feina a Apertium, amb parells estables portuguès-castellà, portuguès-gallec i portuguès-català. Contràriament a l’italià, la desambiguació del portuguès funcionava molt bé i estaven definides unes 150 regles de transferència en una direcció i més de 300 en l'altra, cosa que ha fet que n’hagi hagut d’afegir ben poques. En conseqüència, el parell català-portuguès continua tenint la transferència estructural en un sol pas. L’ús pràctic del traductor no ha mostrat que sigui prioritari passar-lo al model de tres passos (o més) que utilitza el català-italià.

La feina en aquest parell, doncs, s’ha concentrat en els diccionaris i les regles de selecció lèxica. Del costat portuguès-català s’han reutilitzat algunes regles de selecció lèxica del parell castellà-català. En tot cas, el nombre d’aquestes regles és sensiblement inferior a l’italià, en part perquè la proximitat lingüística entre català i portuguès és més gran i, en part, perquè inicialment el parell català-portuguès tenia un diccionari bilingüe més extens, amb selecció lèxica resolta, sobretot, amb etiquetes r dins del diccionari bilingüe, així com algunes regles de transferència.

Quant al diccionari monolingüe portuguès, d’una banda s’han afegit desenes de milers de nous lemes i, d’una altra, s’han introduït distincions per a cadascuna de les tres variants. Hi ha més de 3500 lemes etiquetats com a específics d’una o dues variants.

El mateix s’ha fet amb el diccionari bilingüe, en què les entrades han passat de 9000 (sense comptar noms propis) a gairebé 26.000 (també, sense comptar noms propis). Unes 2300 entrades estan etiquetades com a específiques o preferibles d’una o dues de les variants.

Les noves regles de l’Acordo Ortográfico de 1990 permeten, a vegades, dobles ortografies, especialment en la variant europea. Per exemple, mentre que «sector» és l’única forma acceptada per a la variant europea anterior a l’Acordo i «setor» ho és per a la variant brasilera, totes dues formes s’accepten ara per a la variant europea. Això fa que en el diccionari monolingüe tinguem:

   <e lm="sector" v="pt pt_pre1990">                 <i>sector</i><par n="amor__n"/></e>
   <e lm="setor" v="pt br">                          <i>setor</i><par n="amor__n"/></e>

(on pt és la variant europea segons l’Acordo de 1990, pt_pre1990 la variant europea anterior i br la variant brasilera posterior a l’Acordo)

Les variants brasileres que han quedat obsoletes amb el canvi ortogràfic estan indicades com a no generables:

 <e r="LR" lm="qüestão">                           <i>qüest</i><par n="aceitaç/ão__n"/></e>

Per als canvis ortogràfics ha resultat bàsic el Portal da Língua Portuguesa de l'Instituto de Linguística Teórica e Computacional, mentre que el Vocabulário Ortográfico Comum da Língua Portuguesa ha servit de suport.

Portuguès brasiler

El treball de generació del portuguès brasiler s’ha fet, sobretot, en els plans ortogràfic i lèxic.

Entenc que l’ús principal dels traductors d’Apertium és el de traduir articles de la Viquipèdia i notícies. Per això en tots aquests traductors el tipus de textos que he treballat són justament aquests. En el cas del portuguès, he intentat cobrir les diferències més importants de la terminologia sociopolítica que apareix en les notícies d’actualitat de Portugal i el Brasil (amb diferents termes per a «alcalde», «ajuntament» i «eleccions municipals», per exemple). En canvi, he deixat de costat la introducció de la gran quantitat de canvis que implica el canvi de segona persona a tercera en traduir al portuguès brasiler. Això implica desenes de canvis en les regles de transferència, tal com es veu en el parell castellà-portuguès. Bàsicament, es tractaria de copiar aquestes diferències i anar-les provant, tenint en compte que les regles no són idèntiques en català-portuguès i castellà-portuguès a causa, sobretot, del pretèrit perfet perifràstic del català. Simplement, no apareixen pràcticament mai verbs en segona persona en textos enciclopèdics o periodístics. He preferit dedicar el poc temps del projecte en qüestions que he considerat més productives, com l’ampliació dels diccionaris i la comprovació empírica de la qualitat del diccionari traduint nombroses notícies d’actualitat (sobretot del portuguès al català, tant de diaris brasilers com portuguesos).

Cal esmentar que hi ha casos en què una mateixa paraula s’ha d’interpretar de maneres diferents en un context de portuguès europeu i brasiler. Per exemple «estrelar» és «fregir (un ou)» en el primer cas i «protagonitzar (un paper)» en el segon. És possible que afegir un pas inicial en el pipeline que determinés de quina variant del portuguès estem traduint ajudi a desambiguar millor, però no m’ha semblat necessari fins ara (ni s’ha considerat necessari res de semblant per a traduir des del català).

Algunes xifres

Parell català-italià

Diccionari bilingüe

Entrades totals: 45.165

Noms propis: 21.946

Resta d’entrades: 23.219

Direcció italià>català

Regles de selecció lèxica: 510 + 77 crides a macros

Regles de transferència estructural: 113 (t1x) + 3 (t2x) + 1 (t3x)

Cobertura «ingènua»: 91,2%

WER: 15,7%

Direcció català>italià

Regles de selecció lèxica: 813 + 79 crides a macros

Regles de transferència estructural: 107 (t1x) + 3 (t2x) + 1 (t3x)

Cobertura «ingènua»: 94,7%

WER: 14,2%

Parell català-portuguès

Diccionari bilingüe

Entrades totals: 47.754

Noms propis: 21.925

Resta d’entrades: 25.829

Direcció portuguès>català

Regles de selecció lèxica: 283 + 65 crides a macros

Regles de transferència estructural: 177

WER: 14,0%

Cobertura «ingènua»: 91,4%

Direcció català>portuguès

Regles de selecció lèxica: 315 + 60 crides a macros

Regles de transferència estructural: 372

Cobertura «ingènua»: 94,4%

Futures direccions

  • Topònims: també per a prep a/en