• Aucun résultat trouvé

Parsers à base de transitions

3.4 Parsers

3.4.2 Parsers à base de transitions

Les parsers basés sur les transitions posent le problème du parsing comme une séquence d’actions (ou de transitions) sur les tokens de la phrase permettant de construire l’arbre syntaxique correspondant. La version de base de l’algorithme opère en utilisant les éléments suivants :

— la séquence de tokens en attente de traitement (buffer ) ;

— la séquence de tokens qui ont été lus, mais dont le gouverneur n’a pas encore été identifié (stack, la pile) ;

— une séquence de transitions (d’opérations) qui permettent d’atteindre l’état actuel en partant d’un état initial.

Le token qui a été ajouté le dernier à la pile est appelé le haut de la pile, et le token dont c’est le tour d’être traité est appelé la tête du buffer. Dans la version de base de l’algorithme, les dépendances peuvent être créées seulement entre les tokens dans ces deux positions.

Au début du traitement d’une phrase, tous les tokens se trouvent dans le buffer, et la pile contient seulement le nœud racine artificiel. Les tokens sont traités un par un. Chaque fois, le parser examine si une relation de dépendance existe entre le token traité (la tête du buffer ) et le token qui est en haut de la pile. Une fois que son gouverneur a été identifié, le token est éliminé de la structure de traitement.

Voici les décisions possibles que le parser peut prendre pour chaque paire de tokens examinée :

— transition left-arc : créer une dépendance allant de la tête du buffer vers le haut de la pile et éliminer ce dernier de la pile ;

— transition right-arc : créer une dépendance allant du haut de la pile vers la tête du buffer, éliminer ce dernier et remettre le token qui est en haut de la pile dans la position en tête du buffer pour qu’il soit traité de nouveau ;

— transition shift : mettre la tête du buffer en haut de la pile.

Si l’on reprend l’exemple de la figure 3.1b, nous pouvons essayer de l’analyser en simulant un parser par transitions. Le tableau 3.12 montre une séquence de transitions qui mène à la création de l’arbre syntaxique correct. Chaque ligne montre la transition effectuée et l’état du stack, l’état du buffer, ainsi que la dépendance créée après la transition.

Comme mentionné ci-dessus, l’un des outils les plus utilisés basés sur cet algorithme est Malt de Nivre et al. (2006). Ce parser a atteint le score LAS de 88,1 et le UAS de 86,3 sur l’anglais (Nivre et al., 2007b), alors que dans le cadre de la campagne d’évaluation CoNNL-X il a obtenu les scores LAS de 85,8 sur l’allemand, 81,3 sur l’espagnol, 70,3 sur

Transition Stack Buffer Dépendance créée 0 [état initial] root Filip, studira, ling-

vistiku, u, Italiji 1 shift root, Filip studira, lingvistiku,

u, Italiji

2 left-arc root studira, lingvistiku, u, Italiji

Filip ← studira

3 shift root, studira lingvistiku, u, Italiji

4 right-arc root studira, u, Italiji studira → lingvistiku 5 shift root, studira u, Italiji

6 shift root, studira, u Italiji

7 right-arc root, studira u u → Italiji 8 right-arc root studira studira → u 9 right-arc - root root → studira 10 shift root -

Table 3.12 – Illustration de l’algorithme par transitions

le slovène, et 78,4 sur le tchèque (Buchholz & Marsi, 2006). Depuis sa publication, il a connu de nombreuses extensions et optimisations (cf. Nivre, 2009a ; Ballesteros & Nivre, 2012 ; de Lhoneux et al., 2017) et a été appliqué à de nombreuses autres langues, comme le français (Candito et al., 2010b), le russe (Nivre et al., 2008), les langues indiennes (Nivre, 2009b), ou encore les langues de la campagne d’évaluation CoNLL de 2017 (Zeman et al., 2017).

En ce qui concerne l’apprentissage lui-même, les parsers par transitions traitent le par- sing comme un problème de classification. Des modèles utilisés en étiquetage s’appliquent donc à cette tâche aussi. C’est le cas des SVM, appliqués au parsing en dépendances par Kudo & Matsumoto (2002) et Yamada & Matsumoto (2003). D’autres modèles sont également exploités, parfois au sein du même outil : Talismane de (Urieli, 2013) propose un choix entre le MEMM (Ratnaparkhi, 1996), le perceptron (Collins, 2002) et le SVM (Giménez & Marquez, 2004). Dans le cadre d’une évaluation sur le français, c’est le SVM qui s’est montré le plus performant (89,35 de LAS et 91,55 de UAS), mais la différence par rapport aux deux autres algorithmes était relativement faible (d’environ 1 point pour les deux scores).

Plus récemment, ces modèles d’apprentissage traditionnels ont été remplacés ou parfois combinés avec des approches en réseaux de neurones. Les implémentations réussies incluent les travaux de Chen & Manning (2014), Dyer et al. (2015), Kiperwasser & Goldberg (2016) ou encore Andor et al. (2016). Il s’agit encore de systèmes basés sur les transitions, mais ils exploitent la capacité des réseaux de neurones d’inférer les structures sous-jacentes aux

données, ce qui leur permet de manière générale de dépasser l’état de l’art posé par les méthodes linéaires. Pour illustrer, la méthode d’Andor et al. (2016) atteint 92,79 de LAS et 94,61 d’UAS sur l’anglais. La tendance de plus en plus prononcée à l’utilisation des réseaux de neurones se manifeste dans la campagne d’évaluation CoNLL de 2017, où 23 sur 28 participants disposent d’au moins un composant neuronal dans leur système (cf. Zeman et al., 2017).

L’un des points faibles principaux des parsers par transitions réside dans la nature locale de leur prise de décision. Concrètement, chaque dépendance est posée de manière isolée et les décisions déjà prises ne peuvent pas être exploitées pour informer les décisions ultérieures. Elles ne peuvent pas non plus être corrigées si des informations rencontrées plus loin indiquent que c’est nécessaire. Pour dépasser cette limitation, on a recours à la recherche par faisceau (angl. beam search). Cela signifie que l’algorithme considère une séquence de décisions à la fois plutôt qu’une décision seule, ce qui lui permet d’optimiser les choix faits sur une portion limitée de la phrase.

Deux autres désavantages bien identifiés de cette classe de parsers sont liés à l’ordre linéaire de la phrase et à la manière dont il est traité. Quoique les mots ne soient pas né- cessairement rattachés à l’arbre dans l’ordre dans lequel ils apparaissent dans la phrase, le traitement respecte de manière globale l’ordre linéaire de la phrase. Plus particulièrement, à la différence des parsers par graphes, les outils par transitions ne considèrent pas toutes les paires de tokens possibles en posant les dépendances. Cela se traduit par un biais vers les dépendances plus courtes : leurs performances globales diminuent avec l’augmentation de la distance entre le gouverneur et le dépendant (cf. McDonald & Nivre, 2011).

Il a également été démontré par Nivre et al. (2007b) que ce type d’algorithme n’est pas capable de produire des dépendances non projectives : la nature des transitions permises par l’algorithme de base fait que seules les paires de tokens qui respectent la contrainte de projectivité sont examinées. Cette contrainte diminue la couverture des phénomènes linguistiques, mais elle réduit également la complexité temporelle de leur algorithme par rapport à celle des parsers par graphes. Par conséquent, les parsers par transitions sont en général beaucoup plus rapides.

Pour assurer le traitement des constructions non projectives, plusieurs extensions de l’algorithme de base ont été proposées. On note trois approches principales : le parsing pseudo-projectif proposé par Nivre & Nilsson (2005), l’approche de Attardi (2006) qualifiée de non-adjacent arc transitions (transitions sur arcs non adjacents) par Kuhlmann & Nivre (2010) et online reordering (réordonnancement en ligne) introduit par Nivre (2009a).

Le parsing pseudo-projectif repose sur un processus de projectivisation des données d’entraînement : le dépendant de toute relation non projective est rattaché à son ancêtre projectif le plus proche dans la structure de l’arbre. L’étiquette de chaque dépendance

(McDonald et al., 2006)

(Buchholz & Marsi, 2006)

allemand CoNLL-X 700 K 52 46 87,3 / slovène CoNLL-X 29 K 28 25 73,4 / tchèque CoNLL-X 1,2 M 63 78 80,02 / Malt transitions (Nivre et al., 2007b) anglais PennTreebank 1,1 M 48 12 86,3 88,1 (Nivre et al., 2007b)

(Buchholz & Marsi, 2006)

allemand CoNLL-X 700 K 52 46 85,8 / slovène CoNLL-X 29 K 28 25 70,3 / tchèque CoNLL-X 1,2 M 63 78 78,4 / (Martins et al., 2009) graphes (Martins et al., 2009) anglais CoNLL2008 1,1 M 48* 12* / 91,14

slovène CoNLL-X 29 K 28 25 / 85,41 (Martins et al., 2013) graphes (Martins et al., 2013) anglais CoNLL2008 1,1 M 48* 12* / 93,33 allemand CoNLL-X 700 K 52 46 / 92,41 néerlandais CoNLL-X 195 K 302 26 / 86,19 tchèque CoNLL-X 1,2 M 12 49 80,96

Mate graphes (Bohnet, 2010) anglais CoNLL2009 958 K 48 69 90,33 /

(Bohnet, 2010) chinois CoNLL2007 609 K 41 41 76,99 /

tchèque CoNLL-X 652 K 12 49 80,96 / Talismane (Urieli, 2013) transitions (Urieli, 2013) français FTBDep 339 K 27 30 89,35 91,55 (Nivre & Nilsson, 2005) transitions

(Kuhlmann & Nivre, 2010)anglais CoNLL2009 958 K 48* 69* 85,01 88,55 + pseudo-proj. parsing tchèque CoNLL2009 652 K 12 49 80,58 86,24 (Attardi, 2006) transitions

(Kuhlmann & Nivre, 2010)anglais CoNLL2009 958 K 48* 69* 84,64 88,37 + non-adj. arc trans. tchèque CoNLL2009 652 K 12 49 80,64 86,24 (Nivre, 2009a) transitions

(Kuhlmann & Nivre, 2010)anglais CoNLL2009 958 K 48* 69* 85,0 88,63 + online reordering tchèque CoNLL2009 652 K 12 49 80,71 86,34 (Andor et al., 2016) feed-forward neural net. (Andor et al., 2016) anglais PennTreebank 1,1 K 48 12 92,79 94,61

Table 3.14 – Évaluations des parsers. #T = nombre d’étiquettes morphosyntaxiques. #D = nombre d’étiquettes syntaxiques. * = information récupérée de la documentation du corpus car indisponible dans la publication citée.

modifiée est augmentée d’un suffixe permettant de garder une trace de sa nature non projective. L’entraînement est effectué sur ces données projectivisées avec l’idée que les étiquettes modifiées seront apprises et reproduites lors du parsing, ce qui permet ensuite d’appliquer sur elles une opération inverse pour rétablir les véritables dépendances non projectives. Cette solution permet à l’algorithme de garder une complexité linéaire, mais elle est soumise à une condition importante : la non-projectivité étant relativement rare, les étiquettes modifiées risquent de ne pas être assez représentées dans les données d’ap- prentissage.

La proposition d’Attardi (2006) se base sur l’introduction de nouvelles transitions dans l’algorithme. Plus précisément, Attardi autorise la création d’arcs entre les tokens non adjacents (séparés par un autre token) dans la pile, permettant ainsi la gestion d’un sous-ensemble de constructions non projectives. Cette solution est également de complexité temporelle linéaire.

Le réordonnancement en ligne fait lui aussi appel à une nouvelle transition, nommée swap. Cette transition permute les deux mots les plus récents dans le stack tout en re- tournant celui qui était à la deuxième position dans le buffer pour qu’il soit traité à nouveau. Cette opération permet de réordonnancer les tokens de la phrase jusqu’à ce que la non-projectivité soit résolue. Cette opération est faite en temps réel, et non pas en amont de l’apprentissage, comme c’est le cas avec le parsing pseudo-projectif. En théorie, le temps d’exécution le moins favorable pour cette approche est le temps quadratique. En pratique, le temps d’exécution attendu est linéaire, étant donné la complexité limitée des phénomènes non projectifs observés dans le langage naturel (cf. Nivre, 2009a).

Une comparaison systématique de ces trois approches sur l’anglais, le tchèque et l’al- lemand a été effectuée par Kuhlmann & Nivre (2010). Les résultats ont montré que les trois méthodes améliorent les scores, et qu’il y a peu de différences entre elles quant aux résultats globaux. Il en est de même quand il s’agit des performances des outils sur les relations non projectives : les trois atteignent une précision relativement élevée (70 % - 85 %), mais un rappel plus bas (50 % - 65 %). En revanche, des différences significatives ont été observées sur les dépendances projectives : la méthode d’Attardi peut mener à une chute du rappel si les dépendances non projectives sont trop longues pour être traitées par les transitions ajoutées, ce qui peut même bloquer les dépendances projectives voisines.