720 likes | 838 Views
Un exemple: difficulté de gérer une page d'accueil multilingue. Cinq langues correctement produites sur la page d’accueil du site Papillon grâce à une coopération académique. Exemple (suite). Comment ajouter "hindi" à la liste des langues ?
E N D
Un exemple: difficulté de gérer une page d'accueil multilingue • Cinq langues correctement produites sur la page d’accueil du site Papillon grâce à une coopération académique
Exemple (suite) • Comment ajouter "hindi" à la liste des langues ? • Comment ajouter le paragraphe de présentation en malais ? • Comment corriger une erreur en français et la répercuter ?
Ce qu'on arrive à faire en pratique • On crée un document multilingue « patchwork » via Systran • On utilise le texte anglais généré comme "pivot" :-(; • Impossible de corriger sans connaître le chinois ET l’anglais Original: 土豆有防止胆固醇增高的作用 Pivot (anglais) : The potato has prevented the cholesterol advances function Fr: La pomme de terre a empêché la fonction à l'avance de cholestérol Jp: ポテトはコレステロールの前進機能を防いだ Ru: Картошка предотвращала функцию выдвижений холестерола Es: La patata ha prevenido la función de los avances del colesterol
Analyse Transfert Génération LC1 LC2 Analyse Transfert Génération Langue naturelle “pivot” LS Analyse Transfert Génération LC3 Analyse Transfert Génération Analyse • En utilisant une langue naturelle comme pivot, les erreurs s'accumulent *The potato has prevented the cholesterol advances function 土豆有防止胆固醇 增高的作用 **La pomme de terre a empêché la fonction à l'avance de cholestérol Erreur en LC3 2*(analyse+transfert+génération)
Une possibilité d'amélioration • Améliorer (au moins un peu) la version anglaise • Les résultats sont moins mauvais, mais pas bons • Désir : corriger à partir des versions lues et non de l'anglais Original: 土豆有防止胆固醇增高的作用 Pivot (anglais) : The potato can prevent cholesterol buildup Fr: La pomme de terre peut empêcher l'accroissement de cholestérol Jp: ポテトはコレステロールの集結を防ぐことができる Ru: Картошка может предотвратить нарастание холестерола Es: La patata puede prevenir la acumulación del colesterol corriger
Analyse Transfert Génération LC1’ révision LC2’ Analyse Transfert Génération Langue naturelle "pivot" LS Analyse Transfert Génération Analyse Transfert Génération LC3’ Problème avec une LN pivot (1) • Il faut une bonne connaissance de cette langue naturelle pour faire la révision *The potato has preventedthe cholesterol advances function The potato can preventthe cholesterol buildup
révision Analyse Transfert Génération LC1’ LC2’ Langue naturelle "pivot" Analyse Transfert Génération LS révision Analyse Transfert Génération Analyse Transfert Génération LC3’ révision Problèmes d'une LN pivot (2) • Même si le lecteur peut réviser en anglais et dans sa langue, il ne peut pas réviser dans toutes les langues ! *La pomme de terre peut empêcherl'habillage de cholestérol
D'où l'idée de faire "monter" le pivot intermédiaire Structure abstraite analyse transfert génération Langue source (LS) Langue cible (LC)
LN1 LN1 LN2 LN6 LN2 LN6 LN5 LN3 LN3 LN5 LN4 LN4 Unification de la base de correction
Révision? Structure pivot LC1 LC2 Analyse LS Génération LC3 1ère idée pour implémenter cette solution • Remplacer la langue naturelle pivot par un langage pivotabstrait : texte structure • Éditer cette structure (éventuellement "localisée") pour l'améliorer, par édition et manipulation directes • Inconvénient : cette structure intermédiaire sera sans doute difficile à comprendre pour le « grand public »
structure pivot Révision (X) LC1 Analyse LC2 Génération LS LC3’ Révision (O) 2ième idée : éditer "indirectement" ce pivot • Réviser directement dans la langue de l’utilisateur • Descendre l’interface d’édition de la structure pivot vers le texte : coédition
Édition structure pivot LC1’ Analyse LC2’ Génération LS LC3’ Révision 3ième idée : partager les modifications • Regénérer dans toutes les langues • Voir que certaines corrections ont amélioré d'autres langues… :-);
3 idées essentielles dans notre approche • Mutualisation et collaboration • Chacun peut réviser des fragments dans sa langue maternelle, tous bénéficient des révisions • Toutes les révisions sont gardées et identifiées : fonctionnement monotone • Révision/génération à la demande • À l'utilisateur (lecteur) de décider • Inutile de perfectionner des passages jugés inessentiels par les lecteurs • Partage de la révision • Réviser un fragment dans une langue l'améliorera dans d'autres
Plan de la présentation • Problèmes en création et amélioration de documents multilingues • I. Idée de coédition • II. Pivot choisi (UNL) • III. Construction de la correspondance • IV. Scénarios d’un système de coédition • Conclusion et perspectives
Idée de base : coédition • Coédition : • éditer un « pivot » (objet 01) indirectement, en éditant un texte (objet 02) • édition « multiple » • « descendre » l’interface d’édition • Exemples de « coédition » réussie : • Ambassador - logiciel d’édition de lettres commerciales bilingues • Multimétéo - génération automatique multilingue de bulletins météo Objet 1 Objet 2
Défis de notre système de coédition - I • Établir la correspondance entre une structure abstraite et le texte concret, • sans devoir créer de nouvelles ressources coûteuses Structure abstraite ? (objet 1) correspondance La pomme de terre peut empêcher l‘accroissement de cholestérol (objet 2) En rouge ce qui est à construire,en souligné ce que nous avons
[pl] Les pommes de terre [indef] une pomme de terre La pomme de terre peut empêcher l'accroissement de cholestérol (objet 2) Défis de notre système de coédition - II • Construire une interface utilisable • Économiser du côté d’utilisateur - on doit donc annoter le texte (partiellement), pas le corriger • Ex: les grands chevaux [sing] le grand cheval à construirece que nous avons
Plan de la présentation • Problèmes en création et amélioration de documents multilingues • I. Idée de coédition • II. Pivot choisi (UNL) • III. Construction de la correspondance • IV. Scénarios d’un système de coédition • Conclusion et perspectives
Graphe UNL (Universal Networking Language) {unl} agt(regret(icl>do).@entry, he) obj(regret(icl>do).@entry, :01) agt:01(come(agt>human,gol>place).@entry.@future.@not, you) and(regret(icl>do).@entry, know(agt>human,icl>event)) agt(know(agt>human,icl>event), he) obj(know(agt>human,icl>event), :01) {/unl} {fr}il sait que tu ne viendras pas et il le regrette.{/fr} {el}he knows that you will not come and he regrets it.{/el} Headword restriction Universal Word attribut relation regret(icl>do).@entry scope obj agt :01 agt come(agt>human,gol>place) he .@entry.@future.@not and you agt obj know(agt>human,icl>event)
UNL : un projet, un langage, un format <HTML><HEAD> <TITLE>Example 1 </TITLE> </HEAD><BODY> [D:on=WJT, dt=04032002][P:1] [S:1] <unl:org:cn>我昨天在公園裡跑步 </unl:org> <unl:unl> agt(run(icl>do).@entry.@past,i) plc(run(icl>do).@entry.@past,park.@def) tim(run(icl>do).@entry.@past,yesterday) </unl:unl> <unl:cn>我昨天在公園裡跑步</unl:cn> <unl:de>Ich lief in den Park gestern. </unl:de> <unl:el>I ran in the pary yesterday.</unl:el> <unl:es>Yo corri ayer en el parque.</unl:es> <unl:fr>J’ai couru dans le parc hier. </unl:fr> [/S][/P][/D]</BODY></HTML> • UNL – Universal Networking Language • Enconversion & déconversion • Document multilingue <HTML><HEAD> <TITLE>Example 1 </TITLE> </HEAD><BODY> [D:on=WJT, dt=04032002][P:1] [S:1] <unl:org:cn>我昨天在公園裡跑步 </unl:org> <unl:unl> agt(run(icl>do).@entry.@past,i) plc(run(icl>do).@entry.@past,park.@def) tim(run(icl>do).@entry.@past,yesterday) </unl:unl> <unl:cn>我昨天在公園裡跑步</unl:cn> [/S][/P][/D]</BODY></HTML> Décon- version Encon- version 我昨天在公 園裡跑步 Document chinois Serveur UNL-cn Serveur UNL-de UNL-el UNL-es UNL-fr …… Document UNL-html
Utilisation d'un document multilingue UNL-html • Visualisation dans une des langues contenues <HTML><HEAD> <TITLE>Example 1 </TITLE> </HEAD><BODY> [D:on=WJT, dt=04032002][P:1] [S:1] <unl:org:cn>我昨天在公園裡跑步 </unl:org> <unl:unl> agt(run(icl>do).@entry.@past,i) plc(run(icl>do).@entry.@past,park.@def) tim(run(icl>do).@entry.@past,yesterday) </unl:unl> <unl:cn>我昨天在公園裡跑步</unl:cn> <unl:de>Ich lief in den Park gestern. </unl:de> <unl:el>I ran in the pary yesterday.</unl:el> <unl:es>Yo corri ayer en el parque.</unl:es> <unl:fr>J’ai couru dans le parc hier. </unl:fr> [/S][/P][/D]</BODY></HTML> UNL-viewer XSLT+Javascript
Ressources UNL construites • Déconvertisseurs (13 langues) • arabe, brésilien, chinois, anglais, français, hindi, italien, indonésien, japonais, russe, espagnol, thaï, lithuanien • Enconvertisseurs • arabe, russe, français • Dictionnaires • autant que de déconvertisseurs • Graph editor / UNL Viewer / UNL proxy / UNL vérificateur
Document UNL-xml (notre proposition) • Même simplicité que UNL-html • Ouverture à tous les outils liés à xml création aisée de UNL-xml Viewer <unl:GS lang=“cn”> 我昨天在公園裡跑步</unl:GS> <unl:GS lang=“de”> Ich lief in den Park gestern. </unl:GS> <unl:GS lang=“el”> I ran in the park yesterday.</unl:GS> <unl:GS lang=“es”> Yo corri ayer en el parque.</unl:GS> <unl:GS lang=“fr”> J’ai couru dans le parc hier. </unl:GS> </unl:S></unl:P></unl:D> <unl:Don=“WJT” dt=“04032002”> <unl:P number=“1”> <unl:S number=“1’> <unl:org: lang=“cn”> 我昨天在公園裡跑步 </unl:org> <unl:unl sn=“Ariane” pn=“WJT” dt=“04032002”> agt(run(icl>do).@entry.@past,i) plc(run(icl>do).@entry.@past,park.@def) tim(run(icl>do).@entry.@past,yesterday) </unl:unl>
Erreurs corrigibles par coédition texte-UNL • Erreurs de déconversion/enconversion (non) • Déconvertisseurs utilisés comme des « boîtes noires » • Ordre des mots, mots manquants dans les dicos, etc. • On peut toujours signaler les erreurs aux LC • Erreurs syntaxiques (non) • Graphe ne respectant pas les spécifications • Présence d'un scope non connexe, faute d’écriture • Erreurs sémantiques (oui) • Sous-spécification • détermination, nombre, genre, temps, voix , aspect • Emploi erroné des relations ou des attributs
Sous-spécification 他昨天洗他的车(chinois) เขาล้างรถของเขาเมื่อวานนี้(thaï) 彼は昨日彼の車を洗った (japonais) {unl} agt(wash(icl>do).@entry.@past, he) obj(wash(icl>do).@entry.@past, car(icl>thing).@pl) pos(car(icl>thing).@pl, he) tim(wash(icl>do).@entry.@past, yesterday) {/unl} {unl} agt(wash(icl>do).@entry.@past, he) obj(wash(icl>do).@entry.@past, car(icl>thing)) pos(car(icl>thing), he) tim(wash(icl>do).@entry.@past, yesterday) {/unl} {unl} agt(wash(icl>do).@entry, he) obj(wash(icl>do).@entry, car(icl>thing)) pos(car(icl>thing), he) tim(wash(icl>do).@entry, yesterday) {/unl} Il lave sa voiture hier. Он моет свой автомобиль вчера. él asea su coche ayer. Il a lavé ses voitures hier. Он вымыл свои автомобили вчера. él aseó sus coches ayer. Il a lavé sa voiture hier. Он вымыл свой автомобиль вчера. él aseó su coche ayer.
Plan de la présentation • Problèmes en création et amélioration de documents multilingues • I. Idée de coédition • II. Pivot choisi (UNL) • III. Construction de la correspondance • IV. Scénarios d’un système de coédition • Conclusion et perspectives
regret(icl>do).@entry agt :01 obj come.@entry .@not.@future he(icl>human) and agt agt obj you know (agt>human, obj>event) Comment établir la correspondance ? • On a choisi UNL comme le langage pivot Correspondance? Il sait que tu ne viendras pas et il le regrette.
Procédure d’établissement de la correspondance graphe UNL texte en Li graphe arbre AMS/segmenteur arbre UNL treillis LMS dico UNL/Li, ang/Li dico Li/UNL, Li/ang arbre UNL étendu treillis LMS étendu construire les liaisons lexicales trajectoire(s) provisoire(s) s’il y a plusieurs trajectoires provisoires, calculer la pénalité de croisement meilleure trajectoire enrichir la correspondance correspondance arbre - treillis enrichie
regret(icl>do).@entry • Copier les nœuds qui ont plus d’un arc entrant • Inverser le moins d'arcs possible • Créer un pseudo-nœud par scope • Le nœud porte la relation :01 agt obj come.@entry .@not.@future he(icl>human) and agt agt obj you know (agt>human, obj>event) pseudo-nœud nœud dupliqué 1 regret(icl>do).@entry (regretter, verb) 4 :S01 obj inst=4 2 he(icl>human) agt(il, pper) inst=2 5 come.@entry .@not.@future (venir, verb) 3 know (agt>human, obj>event) and (savoir, verb)/(connaître, verb) 7 he(icl>human) agt(il, pper) inst=2 8 :S01 obj inst=4 6 youagt (tu, pper) Côté graphe : graphe UNL arbre UNL étendu
Procédure d’établissement de la correspondance graphe UNL texte en Li graphe arbre AMS/segmenteur arbre UNL treillis LMS dico UNL/Li, ang/Li dico Li/UNL, Li/ang arbre UNLétendu treillis LMS étendu construire les liaisons lexicales trajectoire(s) provisoire(s) s’il y a plusieurs trajectoires provisoires, calculer la pénalité de croisement meilleure trajectoire enrichir la correspondance correspondance arbre - treillis enrichie
12regretter verb ind regret S2 4 tu pper you 1 il pper he 2 savoir verb know 3 que prlc that 6 ne ne not 7venir verb come 8 pas pas not 9 et coco and 10 il pper he 11 le detp it/he 13regretter verb sub regret < > 5 tu ppas quiet 14regretter verb imp regret Côté texte : texte treillis LMS étendu « LMS » = lexico-morpho-syntaxique « étendu » = portant les lemmes anglais correspondants Il sait que tu ne viendras pas et il le regrette. S1 Sortie du lemmatiseur PILAF (serveur de Damien Genthial)
départ arrivée Définitions • Une « liaison » est un lien créé entre deux éléments de deux structures de niveaux différents. • Une « correspondance » est un ensemble de liaisons vérifiant une certaine propriété. Arbre UNL Treillis LMS
Division en trois sous-correspondances • Graphe UNL arbre UNL • Utiliser l'algorithme de G. Sérasset ou de E. Blanc • Arbre UNL treillis LMS • Etablir la correspondance lexicale • Ajuster (rotation) la structure de l’arbre pour qu’il y ait le moins de croisements possible • Appliquer les patrons de correspondances non lexicales • Treillis LMS texte • Utiliser un segmenteur ou un lemmatiseur "libre"
Procédure d’établissement de la correspondance graphe UNL texte en Li graphe arbre AMS/segmenteur arbre UNL treillis LMS dico UNL/Li, ang/Li dico Li/UNL, Li/ang arbre UNLétendu treillis LMS étendu construire les liaisons lexicales trajectoire(s) provisoire(s) s’il y a plusieurs trajectoires provisoires, calculer la pénalité de croisement meilleure trajectoire enrichir la correspondance correspondance arbre - treillis enrichie
1 regret(icl>do).@entry (regretter, verb) 7 he(icl>human) agt (il, pper) inst=2 8 :S01 obj inst=4 4 :S01 obj inst=4 3 know (agt>human, obj>event) and (savoir, verb)/(connaître, verb) 5 come.@entry .@not.@future (venir, verb) S3 2 he(icl>human) agt (il, pper) inst=2 l6 l7 6 you agt (tu, pper) l4 l5 l1 l3 12 regretter verb ind regret l2 4 tu pper you 1 il pper he 2 savoir verb know 3 que prlc that 6 ne ne not 7 venir verb come 8 pas pas not 9 et coco and 10 il pper he 11 le detp it/he 13 regretter verb sub regret > < 5 tu ppas quiet 14 regretter verb imp regret S2 Il sait que tu ne viendras pas et il le regrette Liaisons lexicales entre arbre UNL et treillis LMS
Poids d’une pénalité de croisement 10 Poids d’une liaison lexicale sûre 10 Poids d’une liaison lexicale secondaire 5 PILAF UNL poids catégories (*/5) adv Adverbe (icl>how) 5 subc substantif commun (icl>thing) 5 adjq Adjectif qualificatif (mod<thing)/(aoj>thing) 4 verb Verbe (icl>do)/(icl>occur)/(icl>state) 5 detp Déterminant-ponom @def 3,5 ide Indéfini @indef 3,5 locp Locution prépositionnelle plc, tim 3 vet Verbe être aoj 3 xet/xav & ppas Auxiliaire être/ Auxiliaire avoir & Participe passé .@complete/.@past 4 ne pas Négation ne &2ème négation pas .@not 5 variables imp Impératif .@imperative 4 fut Futur .@future 4 pre Présent .@present 3 imi Imparfait de l’indicatif .@past 3 cdl Conditionnel .@request/.@unreal 2 sub Subjonctif plu Pluriel .@pl 5 Patrons de liaisons identifiés : UNL français
1 regret(icl>do).@entry (regretter, verb) 7 he(icl>human) agt (il, pper) inst=2 8 :S01 obj inst=4 4 :S01 obj inst=4 3 know (agt>human, obj>event) and (savoir, verb)/(connaître, verb) 5 come.@entry .@not.@future (venir, verb) S3 2 he(icl>human) agt (il, pper) inst=2 l6 6 you agt (tu, pper) l4 l1 l3 12 regretter verb ind regret l2 4 tu pper you 1il pper he 2savoir verb ind know 3 que prlc that 6 ne ne not 7venir verb fut come 8 pas pas not 9 et coco and 10 il pper he 11 le detp it/he 13 regretter verb sub regret > < 5 tu ppas quiet 14 regretter verb imp regret S2 Il sait que tu ne viendras pas et il le regrette Correspondance enrichie
Ajouter une autre langue? • Coéditer en chinois? Il suffit : • d’avoir le dictionnaire UNL-chinois/ anglais-chinois • de connaître et comprendre les variables de l'AMS chinois utilisé par AUTOTAG
Plan de la présentation • Problèmes en création et amélioration de documents multilingues • I. Idée de coédition • II. Pivot choisi (UNL) • III. Construction de la correspondance • IV. Scénarios d’un système de coédition • Conclusion et perspectives
Scénario de coédition avec UNL • lecture en Li (sur le web) • désir de corriger les erreurs en Li • passage dans l’environnement de coédition • corrections (modes expert et normal) • retardées sur le texte • immédiates sur le graphe • déconversion en Li • itération si résultat non satisfaisant, déconversion vers L1… Ln si OK • retour à la lecture
Lecture en français d’un document UNL-xml • Page web fabriquée à la « UNL » • origine = anglais, avec le graphe UNL derrière
Si on coédite (pour partager), les modifications possibles sont proposées par le système
Modifications proposées par le système • Contraintes • langue coéditée • liaisons établies • spécifications d’UNL • sortie de l'AMS • Exemples • Chinois – majuscule/minuscule (x), détermination (?), bonne segmentation (o) • Arabe – duel (pas possible pour l’instant) • Japonais – plusieurs niveaux de politesse (pas possible pour l’instant)