Difference between revisions of "Hectoralos/GSOC 2020 rapport final"

From Apertium
Jump to navigation Jump to search
Line 206: Line 206:
| style="text-align:right"|15,5 %
| style="text-align:right"|15,5 %
|-
|-

|}
|}


Pour comparer, [https://wiki.apertium.org/wiki/Hectoralos/GSOC_2019_final_report#Algunes_xifres l'évaluation de mon projet de l'année dernière] visant à l'amélioration des pairs catalan-italien et catalan-portugais a donné des WER de 14-15 %. Les résultats pour la traduction de français à l'arpitan sont très satisfaisants. Du côté inverse, il y a encore beaucoup à faire, mais le traducteur peut déjà être considéré fonctionnel.

==Remerciements==

Ce projet n'aurait pas arrivé à outrepasser largement ses objectifs sans l'immense collaboration de Dominique Stich et Alain Favre, que je remercie encore une fois. Je dois aussi remercier mes superviseurs Xavi Ivars et Gianfranco Fronteddu pour la confiance qu'ils ont eu en moi. Xavi Ivars et Tino Didriksen m'ont aidé dans des petits problèmes techniques et Daniel Swanson, auteur d'apertium-separable, a amélioré apertium-lex-tools pour y inclure mes demandes. La présentation de Xavi Ivars en juillet a été aussi très inspiratrice. C'est un plaisir de travailler avec un collectif comme celui d'Apertium.


[[Category:Google Summer of Code 2020]]
[[Category:Google Summer of Code 2020]]

Revision as of 20:53, 29 August 2020

Introduction

Ce document décrit le travail réalisé par Hèctor Alòs dans le cadre du Google Summer of Code 2020. Le projet a été supervisé par Xavi Ivars et Gianfranco Fronteddu

Commits

On peut voir tous les commits du projet sur cette page.

Buts et plan de travail

Les buts du projet et le plan de travail sont décrits dans la proposition que j'ai fait début février. Il s'agissait de construire un traducteur bidirectionnel français-arpitan. L'arpitan n'était pas encore introduit dans Apertium, donc j'ai dû créer le référentiel [apertium-frp]. Entre les différentes normes orthographiques utilisées pour l'arpitan, le projet a choisi la norme ORB, qui est supra-dialectale. Un grand avantage de cette norme est qu'on a déjà fait un très grand travail de choix entre les très nombreuses formes des mots et des morphèmes pour tout le territoire où la langue est parlée, tandis que les autres orthographes n'ont pour objet qu'un dialecte particulier. Il faut aussi noter que la plupart de la [Vouiquipèdia arpitane] utilise cette orthographe et qu'il existe un site extrêmement utile] avec des dictionnaires en ligne.

Développement du projet

Le projet a compté des le début avec le support incommensurable de Dominique Stich, créateur de l’ORB, et Alain Favre, co-auteur avec Stich d’un dictionnaire français-savoyard et éditeur du dictionnaire français-francoprovençal de Stich. Les deux ont permis l’utilisation de ce dictionnaire. Stich en a donné une version électronique actualisée, qui est la base des dictionnaires apertium-frp et apertium-fra-frp. Stich et Favre le long de tout le projet ont aidé à les compléter avec plusieurs milliers de mots chacun. Le résultat est que le dico arpitan d'Apertium a plus de 6 500 entrées qui ne sont pas dans le dictionnaire de Stich. Le contact avec lui au sujet de questions lexiques et grammaticales a été permanent. Les nombreuses remarques de Favre sur des traductions faites a l’aide de beta.apertium.org ont été extrêmement utiles. C’est pour cela que les résultats du projet sont nettement meilleurs que prévu en février. Je suis énormement reconnaissant à tous les deux pour leur dévouement. Évidemment, cela ne veut pas dire que le traducteur n’ai pas d’erreurs (ce serait impossible qu’il n’en ait pas), ni qu’on puisse leur imputer ces erreurs de quelque manière que ce soit.

Ci-dessous j'explique plutôt les résultats du système, avec son architecture et ses différents éléments. Pour voire une chronologie du développement, on peut consulter le journal du projet.

Le référentiel apertium-frp

Le dictionnaire arpitan

J’ai investi beaucoup de temps sur le dictionnaire arpitan. Malgré la standardisation de l’ORB les textes écrits avec cette norme ont encore une grande variété. La norme différencie entre « graphie large » et « graphie serrée ». La première est l’essai de trouver une espèce de juste milieu entre les très nombreuses formes locales, mais au prix de l'utiliser une orthographe plus étymologique et plus éloignée des réalisations phonétiques concrètes de chaque lieu. La deuxième permet de se rapprocher aux formes locales, au prix de la multiplication des mots et des formes fléchies. J’ai concentré les efforts dans la production de textes en graphie large, ce qui implique que la traduction de textes arpitans au français est nettement pire.

Mais il y a encore de nombreux détails qui restent sujet de discussion dans l’ORB, en général, et la « graphie large » en particulier. L’effacement, voire la disparition, des terminaisons dans la plupart des variétés arpitanes complique les choses. Quant au lexique et la morphologie, les questions où j’ai trouvé de nombreuses contradictions dans les textes sont :

  • La terminaison -ie ou -ia (et parfois -e ou -a dans les noms féminins). D’accord avec Stich, le traducteur choisit la terminaison -ie, avec quelques exceptions.
  • La terminaison -âl ou -al, voire -èl. Je suis la norme de Stich, qui restreint -âl à des formes anciennes et utilise èl pour les néologismes.
  • Dans les gentilés qui terminent en -ois en français, en suivant Stich, j’utilise presque toujours -ouès, mais parfois, à la demande de Favre, -ês est choisi.
  • La terminaison -ologo est préférée aux dépens d’-ologue et -ologisto.
  • Il y a de très nombreuses inconsistances dans les toponymes de la Vouiquipèdia, avec, par exemple, quatre formes différentes pour New York, des terminaisons -ia et -ie, -landa et -lande, etc. Stich a bien voulu fournir une liste de tous les états avec ses gentilés, ainsi que de nombreux autres toponymes. Quand même, la Vouiquipèdia est restée une source majeure. Il faudrait encore travailler davantage sur certains toponymes parce que le choix d’a ou â, o ou ô en fin de mot ne semble pas consistant.
  • Les pronoms démonstratifs, qui sont remarquablement différents selon la région (comme dans d'autres langues romanes) sont matière de discussion. J'ai choisi les formes recommandées par Stich.
  • On rencontre de nombreuses conjugaisons possibles des verbes. On trouve le même verbe conjugué comme inchoatif ou non inchoatif, il peut subir une mutation vocalique (a > â, o > ô, e > è, etc.) ou non, etc. J'ai choisi les formes recommandées par Stich.
  • Il y a de nombreuses hésitations dans l'utilisation d' â ou a, d' è ou e, voire é et même ê, d' e ou i, de cll ou cl, fll ou fl, etc. Cela cause de nombreux problèmes pour reconnaître les mots dans les traductions de l'arpitan.
  • Il y a des hésitations dans les participes des verbes du premier groupe si la forme du féminin doit se différencier de celle du masculin ou non. J'ai choisi de faire la distinction pour les verbes terminés en ar (je génère -âye(s)) et de ne pas le faire pour ceux terminés en (i)ér (je génère -ê(s)).

Puisque le but principal du traducteur du français à l’arpitan est de traduire des articles pour la Vouiquipèdia, nous avons travaillé pas mal sur la toponymie, l’onomastique et la terminologie scientifique, dans des domaines comme les mathématiques, la physique, la biochimie, la zoologie et la botanique. Évidemment, le temps est très limité, donc il reste encore beaucoup de travail. Nous avons aussi travaillé sur la terminologie sociopolitique en testant le traducteur sur des nouvelles d’actualité. Lo Trèsor Arpitan a été très souvent consulté, mais il faudrait à l’avenir d’en extraire tout le vocabulaire (et, éventuellement, de lui en fournir).

En ce qui concerne la flexion des mots, les verbes (comme dans toutes les langues romanes) ont été particulièrement difficiles. J’ai dû consulter Stich maintes fois à ce sujet, bien que de nombreuses informations sur la conjugaison des verbes sont déjà dans son dictionnaire. Le résultat peut être vu dans un très simple site web pour les verbes arpitans que j’ai créé surtout pour m'orienter moi-même.

À cause des nombreux mots et formes fléchies non normatives ou, du moins, discutables qu’on trouve dans les textes arpitans, j’ai dû incorporer près de 750 mots qui sont marqués non-standards dans le dictionnaire (en utilisant c="use_sub", sur la recommandation de Fran Tyers). Une des causes de cette balise est d’éviter qu’ils entrent dans le correcteur orthographique qui devrait être généré à la suite de ce projet.

Il faudrait encore dire que le dictionnaire n’utilise pas, en principe, de point intérieur (ch·, , ) puisque les utilisateurs de l’ORB ont décidé de ne plus l’utiliser. Cependant, on continue à le trouver sur la Vouiquipèdia et d’autres textes, c’est pourquoi j’ai dû l’ajouter pour nombre de mots.

Le choix a été fait de générer une seule forme d'arpitan large, pour toutes les régions. Par exemple, les démonstratifs du type ce- sont choisis et non ceux du type (i)que ; les jours de la semaine avec di- au lieu de -di ; la terminaison -ens pour la première personne du pluriel au lieu d' -ons ; la conjugaison de verbe étre avec l'auxiliaire avêr au lieu d'utiliser le verbe étre lui-même, etc. Un choix unique dans tous les cas est la solution la plus simple et, avec les sources dont je dispose, je n'ai guère d'information sur la région où un certain mot, flexion ou tournure sont utilisés. Cependant il est très possible que l'arpitan produit par le traducteur soit ressenti comme trop « large ». Les utilisateurs, s'ils veulent, devront « localiser » les textes produits, en les adaptant à leur variété.

Les règles d’élision et contraction

Les règles d’élision et contraction sont pratiquement celles du français. Le traducteur arpitan-français accepte bien l’élision des pronoms personnels sujet de la deuxième et troisième personnes du singulier, de l’article indéfini féminin, des adjectifs possessifs de la première et deuxième personne du pluriel et d’autres, mais ne fait pas ces élisions dans la traduction de français à l’arpitan.

La désambiguïsation morphologique (traitement de l'homonymie)

Le traducteur utilise le tagueur français (fra.prob, renommé frp.prob). J’ai réécrit une bonne partie des règles du désambiguïsateur CG du français en utilisant l’opérateur d’unification && (qui n’est pas utilisé pour le français). Cela rend ces règles plus compactes, lisibles et maintenables. Cette solution était en principe provisoire. J’avais prévu d’étiqueter un corpus pour entraîner un tagueur statistique, mais la solution provisoire c’est avérée satisfaisante et je n’ai pas investi du temps pour cela. Peut-être quand par la suite on travaille plus intensivement dans la traduction de textes arpitans trouvera-t-on que cet étiquetage vaut la peine.

Le référentiel apertium-fra

Les différentes parties du référentiel français d'Apertium étaient tout à fait fonctionnelles déjà. J'ai donc dû y investir très peu de temps. J'ai ajouté des mots au dico et plus de règles désambiguïsation morphologique. Deux nouvelles catégories ont été ajoutées au dico et à ces règles :

  • Les préfixes (pref), pour traiter les préfixes écrits avec un trait d'union
  • Les adverbes post-fixés (postadv), pour traiter les particules -ci et -là

Puisqu'il s'agit d'ajouts ils n'interfèrent pas avec les autres paires de langues qui les analysent d'autres façons.

Le référentiel apertium-fra-frp

Le référentiel bilingue consiste en un dictionnaire bilingue, des règles de sélection lexique, des règles de transfert et, pour le traducteur du français à l’arpitan, des règles de synthèse et décomposition de locutions.

L’architecture est assez différente pour les deux côtés de la traduction. Du côté français-arpitan on a :

texte en français

> (1) analyseur morphologique
> (2) tagueur d’Apertium
> (3) tagueur CG
> (4) synthèse de locutions françaises
> (5) sélection lexicale
> (6-8) transfert en 3 étapes
> (9) décomposition de locutions arpitanes
> (10) générateur arpitan
> (11) élisions et contractions

> texte en arpitan

Par contre du côté arpitan-français on a :

texte en arpitan

> (1) analyseur morphologique
> (2) tagueur d’Apertium
> (3) tagueur CG
> (4) sélection lexicale
> (5-9) transfert en 5 étapes
> (10) générateur français
> (11) élisions et contractions

> texte en français

(Je n'affiche ici que les modules dans lesquels il y a des données dans les trois référentiels apertium-frp, apertium-fra et appertium-fra-frp. Il y a quelques étapes automatiques en plus dans le pipeline d'Apertium. Pour plus de détail, voire : Apertium system architecture.)

Le dictionnaire bilingue

Le dictionnaire bilingue a comme base le dictionnaire français-arpitan de Dominique Stich. L'auteur a bien voulu m'indiquer le choix préférable en cas de synonymie de traductions à l'arpitan, mais cette information m'a manqué dans le sens inverse, c'est pourquoi pas tous les mots arpitans présents de le dico de Stich ont une traduction au français dans le nôtre.

En général, les préférences entre synonymes sont faites dans le dictionnaire même (à l'aide de r="LR", r="RL" et i="yes"), tandis que le choix entre traductions avec des sens différents est fait moyennant des règles de sélection lexicale. Il y a près de 1300 traductions inhibées dans les deux sens (i="yes") qui, pourtant, restent dans le dico pour conserver l'équivalence et faciliter son possible activation par la suite. Ces traductions ne sont pas comptées dans les chiffres statistiques du dico (voire ci-dessous).

La sélection lexicale

La sélection lexicale est beaucoup plus développé du côté français-arpitan que de l'inverse, sur lequel j'ai beaucoup moins travaillé : apertium-fra-frp.fra-frp.metalrx a 538 règles et 105 appels à macros (total : 4959 lignes de code), tandis que apertium-fra-frp.frp-fra.metalrx a 209 règles et 80 appels à macros (total : 2290 lignes de code).

Bien que parfois j’aie pu réutiliser des règles de sélection lexicales des traducteurs français-catalan et français-occitan, il est à remarquer que la sélection lexicale est un peu particulière dans le cas de l’arpitan. En effet, pas mal d’adjectifs du français se traduisent par des tournures du type préposition + nom (par exemple résineux, qui devient, a bejon, de rèsena ou a rèsena) ou pronom relatif + phrase subordonnée (par exemple payant, qui devient que fôt payér ou que paye(nt)). Cette différence dans la construction cause des problèmes puisqu’il n’est pas toujours évident s’il faut traduire, par exemple, satellitaire par d’un satèlito, du satèlito, de satèlito o de satèlitos. En plus il faut faire des changements quand l’adjectif français précède le nom ou est précédé par un adverbe (ce qui n’est pas toujours fait dans cette première version du traducteur). En plus, il y a pas mal de cas où la forme habituelle ne marche pas dans des contextes techniques (une affaire complexe est complicâ(ye), mais un nombre complexe est complèxo ; une personne sceptique est mèfianta, mais un philosophe est scèptico) ; dans un contexte non marqué ulcère et urine sont traduits respectivement par chancro et pisse, mais si on repère un langage plus soutenu ulcèro et urena sont choisis. Il faut donc plus de sélections lexicales que l’on pourrait prévoir pour des langues très proches.

Dans traduction de l'arpitan au français, la traduction du pronom relatif que est particulièrement problématique puisqu'il peut se traduire comme que, qui, lequel, laquelle, lesquels, lesquelles ou dont.

La synthèse et la décomposition de locutions

Nombre de verbes sont traduits par des locutions ou de locutions par des verbes simples. Le problème est que ces locutions souvent ont des adverbes à l’intérieur, par exemple pour la négation. De même, dans les formes verbales composées il y a souvent des adverbes entre l’auxiliaire et le participe. Cela cause des problèmes tant pour reconnaître des locutions comme pour les produire d’une façon phraséologique. Par exemple, on a dans le dico :

<e><p><l>avoir<g><b/>besoin</g><s n="vblex"/></l><r>avêr<g><b/>fôta</g><s n="vblex"/></r></p></e>

Cela permet sans problème de traduire j’ai besoin par j’é fôta et vice-versa. Le problème est que si on a j’ai toujours besoin, je n’ai pas besoin ou je n’ai pas toujours besoin ou, tout pareillement, j'é tojorn fôta, j'é pas fôta, j'é pas tojorn fôta la locution n’est pas reconnue et la traduction se fait mot à mot. C’est ce qui arrive, manque de temps, du côté arpitan-français du traducteur. Du côté français arpitan on a un double procès qui utilise le module apertium separable. D’un côté il y a une synthèse qui convertit la phrase d’entrée d' avoir + adverbe(s) + besoin à avoir_besoin + adverbe(s) et puis un procès de décomposition qui convertit la phrase de sortie d' avêr_fôta + adverbe(s) à avêr + adverbe(s) + fôta.

On a 45 locutions traitées en synthèse et 90 en décomposition. La grosse différence entre les deux montrerait une tendance plus grande de traduire des verbes par des locutions que de locutions par verbes simples dans la traduction du français à l’arpitan, mais ce n’est peut-être pas comme cela en réalité parce que je n’ai pas introduit dans le dico d’Apertium des dizaines de cas du deuxième type qui sont dans le dictionnaire de Stich.

Le transfert structurel

Dans Apertium le transfert structurel est une collection de transformations que les textes doivent subir pour traduire d’une lange à une autre outre ce qui est la traduction « mot à mot » pure et simple, c’est-à-dire notamment : l’ajout, la suppression et le changement d’ordre de mots.

Pour les règles de transfert j’ai utilisé comme base celles du traducteur français-occitan parce que, en ce qui concerne les questions liées au transfert structurel d’Apertium, on trouve des problèmes très semblables pour la traduction du français à l’occitan et à l’arpitan et vice-versa. Ce qui arrive c’est qu’on fait face à des problèmes assez différents pour la traduction du français et au français, ce qui porte à une architecture différente pour les deux sens de la traduction pour ces deux paires de langues.

Le transfert du français à l’arpitan

La traduction du français à l’arpitan a une structure déjà classique chez Apertium de transfert en trois étapes.

  • Dans la première étape les transformations plus remarquables sont :
    • La suppression de l’adverbe « ne » dans les négations (mais pas dans la structure ne... que)
    • L'ajout de l’adverbe « pas » dans les négations des types ne... plus, ne... guère, ne... rien, personne ne... (cf. je ne parle plus > je pârlo pas més, je n'ai rien dit > j'é pas dét ren, personne ne parle > nion pârle pas)
    • La traduction du passé simple par le passé composé (et de l’imparfait du subjonctif par le présent)
    • L'ajout ou suppression de pronoms quand un verbe réflexif se traduit par un verbe non-réflexif ou vice-versa
  • La deuxième étape s’occupe de transformations liées à des relations plus lointaines, comme l’accord entre sujet et attribut (cf. le balai est très grand > l'ècova est franc granta).
  • La troisième étape est pro forma.

Les suivantes décisions ont été prises :

  • Dates avec la préposition de : 1ér de mê, 2 de mê (bien que, par ex. la Vouiquipèdia calque la structure française)
  • Élimination de l’article dans les comparatifs superlatifs : la personne la plus haute > la pèrsona més hôta
  • Maintien de la structure du partitif français : je veux de l'eau > je vôlo de l'égoua
  • Maintien du pronom personnel sujet comme en français, a l’exception d’expressions impersonnelles il faut, il pleut, il neige, il fait beau (mais il est maintenu dans il y a(t)).
  • Comme dit ci-dessus, le verbe étre est conjugué avec l’auxiliaire avêr

Il faut signaler comme manque dans cette version qu'on n'élimine pas les pronoms sujets redondants

On a 85 règles pour la première étape, 11 pour la deuxième et 1 pour la troisième.

Le transfert de l’arpitan au français

La traduction de l’arpitan au français présente des difficultés supplémentaires. D’un côté, il faut ajouter plus de mots que dans la traduction inverse, par exemple le ne de la négation, le pronom personnel sujet quand il est élidé, l’article défini quand il manque dans l’article partitif. Ces ajouts sont beaucoup plus difficiles, tandis que l’élimination de mots est plutôt triviale. D’un autre côté, on fait face à la multiplicité de l’arpitan : il faut attendre 2 mê et 2 de mê, je vôlo de l'égoua et je vôlo d'égoua, j'é étâ et je su étâ, il y at et y at, il fôt et fôt, etc., etc. Ces difficultés, le manque d’un corpus arpitan large et représentatif et la priorité de développer un traducteur du français a l’arpitan pour aider à la production de textes a fait que j’ai travaillé beaucoup moins de ce côté, au sujet des règles de transfert comme ailleurs.

Comme déjà dit, le transfert est divisé en cinq étapes. Ce sont, en fait, les trois étapes classiques du transfert d’Apertium avec une sous-division de l’étape intermédiaire en trois (cf. Transfert en N étapes).

Dans la première étape les transformations plus remarquables sont :

  • Le changement de la structure des dates
  • L'ajout ou suppression de pronoms quand un verbe réflexif se traduit par un verbe non-réflexif ou vice-versa
  • Le changement de l’auxiliaire étre par avoir pour le verbe être

La deuxième étape s’occupe de :

  • L’accord entre sujet et attribut (cf. l'ècova est franc granta > le balai est très grand)
  • L’ajout du pronom personnel sujet dans des constructions très concrètes (fôt una ècova > il faut un balai, y at una ècova > il y a un balai)

La troisième étape s’occupe de l’inclusion de l’adverbe ne dans les négations.

La quatrième étape devrait s’occuper de l’inclusion de l’article définit dans le partitif, s’il manque (je vôlo d’égoua > je veux de l’eau), mais elle ne marche pas encore.

La cinquième étape s’occupe de certaines transformations de majuscules à minuscules qui doivent parfois se faire à cause de l’inclusion de mots en début phrase.

On a 56 règles pour la première étape, 26 pour la deuxième, 17 pour la troisième, 1 pour la quatrième et 5 pour la cinquième.

Évaluation finale

Comme d’habitude, l’évaluation finale a été faite en mesurant deux paramètres : la couverture « naïve » et la qualité de la traduction. La premier chiffre est le pourcentage de mots qui sont reconnus par le traducteur, bien que peut-être ils ne soient pas bien analysés (par exemple, parce qu’on reconnaît le nom de famille Gros comme un adjectif, mais pas comme un nom propre). La qualité est mesurée en traduisant automatiquement un texte, donnant le résultat à un correcteur humain et comptant le pourcentage des mots qu’il a corrigé (cette mesure est appelée Word Error Rate, WER).

Les couvertures sont plus basses dans la Wikipédia que dans des textes journalistiques, c’est pourquoi nous faisons une différence entre la couverture calculée sur un corpus de la Wikipédia et ailleurs. Ces différences ont aussi une implication dans le WER. Puisque la fonction principale prévue pour le traducteur est celle de traduire des textes de la Wikipédia, le WER est calculé sur plusieurs textes choisis aléatoirement, parmi lesquels 2/3 sont extraits de la Wikipédia.

Les résultats obtenus sont les suivants :

Français-Arpitan Arpitan-Français
Couverture non-Wikipédia 95,8 % 96,0 %
Couverture Wikipédia 92,8 % 81,5 %
WER 5,7 % 15,5 %

Pour comparer, l'évaluation de mon projet de l'année dernière visant à l'amélioration des pairs catalan-italien et catalan-portugais a donné des WER de 14-15 %. Les résultats pour la traduction de français à l'arpitan sont très satisfaisants. Du côté inverse, il y a encore beaucoup à faire, mais le traducteur peut déjà être considéré fonctionnel.

Remerciements

Ce projet n'aurait pas arrivé à outrepasser largement ses objectifs sans l'immense collaboration de Dominique Stich et Alain Favre, que je remercie encore une fois. Je dois aussi remercier mes superviseurs Xavi Ivars et Gianfranco Fronteddu pour la confiance qu'ils ont eu en moi. Xavi Ivars et Tino Didriksen m'ont aidé dans des petits problèmes techniques et Daniel Swanson, auteur d'apertium-separable, a amélioré apertium-lex-tools pour y inclure mes demandes. La présentation de Xavi Ivars en juillet a été aussi très inspiratrice. C'est un plaisir de travailler avec un collectif comme celui d'Apertium.