Transfert en N étapes
L'idée d'un transfert en N étapes est d'étendre apertium-interchunk
pour qu'il puisse "regrouper" des fragments, par exemple NP CC NP → NP
C'est quelque-chose comme l'idée de fragmentation d'états finis en cascade, comme décrit par Abney (1995).
Exemples[edit]
- 1. The girl with the telescope shouted at the boy who saw the dog in the field.
(La fille avec le télescope cria au garçon qui vit le chien dans le champ).
Le transfert courant basé sur des fragments devrait normalement fragmenter ceci en :
[The girl] [with] [the telescope] [shouted] [at] [the boy] [who] [saw] [the dog] [in] [the field] [La fille] [avec] [le telescope] [cria] [au] [garçon] [qui] [vit] [le chien] [dans] [le champ] NP PREP NP V PREP NP REL V NP PREP NP
C'est une analyse assez peu profonde, avec d'autres étapes de fragmentation, on pourrait unifier quelques uns de ces tronçons dans des phrases plus cohérentes. Donc par exemple la prochaine étape pourrait être d'unifier PREP NP → PP
alors NP PP → NP
, alors V NP → VP
et ensuite NP REL VP → NP
. Nous avons terminé avec une analyse plus "profonde" et cohérente qui pourrait ressembler à quelque-chose comme :
The girl with the telescope shouted at the boy who saw the dog in the field La fille avec le telescope cria au garçon qui vit le chien dans le champ DET NOM PREP DET NOM V PREP DET NOM REL V DET NOM PREP DET NOM * NP PREP NP V PREP NP REL V NP PREP NP (PREP NP → PP) NP PP V PP REL V NP PP (NP PP → NP) NP V PP REL V NP PP (V NP → VP) NP V PP REL VP (NP REL VP → NP) NP V NP
Ça ne nous donnerait pas davantage de "pouvoir de transfert", comme les règles seraient encore à états finis, et non-récursives, mais ça rendrait certaines taches plus faciles. Probablement on n'atteindrait pas 5 niveaux d'inter fragmentation, mais même avoir un niveau de plus pourrait pas mal aider.
- 2. My country's largest shopping centres
Le transfert courant fragmente ceci en :
[My country]['s] [largest shopping centres] (les plus grands centre commerciaux de mon pays) NP GEN NP
Une étape intermédiaire du transfert pourrait avoir une règle pour joindre NP + GEN + NP pour créer un simple fragment NP. Ça éviterait le gros travail consistant à spécifier dans la première étape les nombreuses combinaisons de mots différentes qui peuvent former un NP.
Dans cet exemple, la tête du nouveau NP serait le second NP d'origine, ce qui signifie que l'information morphologique du nouveau fragment serait que "largest shopping centres" (au pluriel) and non celui de "my country" (singulier). Cette information est importante pour que la prochaine étape du transfert (le module interchunk courant) puisse effectuer quelques opérations de concordance :
[My country]['s] [largest shopping centres] [will prepare] (...) 1st stage: NP<sg> GEN NP<pl> V 2nd stage: NP<pl> V 3rd stage: NP<pl> V<pl>
Test implémentation[edit]
de Jacob Nordfalk <jacob.nordfalk@gmail.com> vers Apertium-stuff <apertium-stuff@lists.sourceforge.net> date 12. apr. 2009 02.51 sujet Transfert 4 étapes expérimental introduit dans Apertium ! envoyé par gmail.com skjul detaljer 02.51 (2 minutter siden) Svar Cher tous, J'ai prit la liberté d'ajouter le support pour le transfert simple en n étapes, en ajoutant 5 lignes simples de code à Apertium aujourd'hui. Les lignes que j'ai ajouté à Apertium peuvent être vues ici : http://apertium.svn.sourceforge.net/viewvc/apertium?view=rev&revision=9616 Basiquement, j'ai ajouté le support d'une nouvelle partie : <clip pos="3" part="x_pgcontent"/> qui donne le CONTENU A l'INTERIEUR d'un fragment. donc à partir de ^adj_nom<SN><nom>{^granda<adj><sg><2>$ ^hundo<n><m><sg><2>$}$ on obtient ^granda<adj><sg><2>$ ^hundo<n><m><sg><2>$ Ça peut être utilisé pour regrouper des fragments. Je vais mettre un exemple ici : http://apertium.svn.sourceforge.net/viewvc/apertium?view=rev&revision=9613 Essayez big black cat's nice blue eyes belaj bluaj okuloj de granda nigra kato <SN>{granda nigra kato} <GEN>{de} SN{belaj bluaj okuloj} -> <SN>{belaj bluaj okuloj de granda nigra kato} Bien sûr, le nom part="x_pgcontent" est temporaire (eXpérimental) et ne devrait pas être comptabilisé, Mais je vais vous demander de le laisser dans Apertium jusqu'à ce que quelqu'un fasse une sorte d'amélioration ('propre') du support du transfert en n étapes. Comme la grammaire de l'Espéranto est simple, ce très simple support du transfert en n étapes est satisfaisant pour la plupart des taches (et peut réellement faire une grosse différence dans cette paire de langue). Dans l'intervalle je vais l'utiliser pour améliorer la paire anglais-espéranto, et gagner de l'expérience au sujet du transfert en n étapes pour partager avec la communauté Apertium (et pour que vous l'essayiez, vous devez le mettre sur le svn d'apertium et l'installer avec le patch, bien sûr), J'ai déjà identifié les problèmes suivants : - Support des majuscules (Big black cat's nice blue eyes -> belaj bluaj okuloj de Granda nigra kato) - Support de référence de balise (une option pour décompresser les <2> et <3>). Ça ne devrait pas toujours arriver, comme il est quelquefois bon de garder les <2> et <3> et quelquefois non. Je peux donner quelques exemples là dessus sur demande. Jacob
Exemple de travail[edit]
Dans la paire is-en :
spectie: Á morgun kemur maðurinn sem hann sá í gær. spectie: ^Á morgun<ADV>{^tomorrow<adv>$}$ ^come<SV><@+FMAINV><pres><p3><sg>{^come<vblex><3><4><5>$}$ ^det_nom<SN><@←SUBJ><sg>{^the<det><def><3>$ ^man<n><3>$}$ ^sem<REL>{^that<rel><an><mf><sp>$}$ ^prn<SN><@SUBJ→><p3><m><sg>{^prpers<prn><subj><p3><m><sg>$}$ ^see<SV><@+FMAINV><past> <p3><sg>{^see<vblex><3>$}$ ^í gær<ADV>{^yesterday<adv>$}$^sent<SENT>{^..<sent>$}$ spectie: (chunker, t1x) spectie: spectie: ^Á morgun<ADV>{^tomorrow<adv>$}$ ^come<SV><@+FMAINV><pres><p3><sg>{^come<vblex><3><4><5>$}$ ^sn_rel_sn_v_adv<SN><@←SUBJ><sg>{^the<det> <def><3>$ ^man<n><3>$ ^that<rel><an><mf><sp>$ ^prpers<prn><subj><p3><m><sg>$ ^see<vblex><past>$ ^yesterday<adv>$}$^sent<SENT>{^..<sent>$}$ spectie: (interchunk1, t2x) spectie: spectie: ^Á morgun<ADV>{^tomorrow<adv>$}$ ^sn_rel_sn_v_adv<SN><@←SUBJ><sg>{^the<det><def><3>$ ^man<n><3>$ ^that<rel><an><mf><sp>$ ^prpers<prn><subj> <p3><m><sg>$ ^see<vblex><past>$ ^yesterday<adv>$}$ ^come<SV><@+FMAINV><pres><p3><sg>{^come<vblex><3><4><5>$}$^sent<SENT>{^..<sent>$}$ spectie: (interchunk2, t3x) spectie: spectie: ^Tomorrow<adv>$ ^the<det><def><sg>$ ^man<n><sg>$ ^that<rel><an><mf><sp>$ ^prpers<prn><subj><p3><m><sg>$ ^see<vblex><past>$ ^yesterday<adv>$ ^come<vblex><pres><p3><sg>$^..<sent>$ spectie: (postchunk, t4x) spectie: spectie: <rule comment="REGLA: SN_SUBJ_R REL SN_SUBJ_L FMAINV ADV → SN"> spectie: spectie: c'est la règle dans t2x
Sortie traduite : Tomorrow the man that he saw yesterday comes.
Références[edit]
- Steven Abney. (1996) "Partial Parsing via Finite-State Cascades". J. of Natural Language Engineering, 2(4): 337-344.