Il s'agit de traiter conjointement le problème de l'étiquetage morpho-syntaxique et celui de la reconnaissance de mots composés. En partant d'un texte segmenté en phrases et en tokens, le module à réaliser devra prédire quelles séquences de tokens représentent en contexte un mot composé, et pour chaque mot (simple ou composé), quelle est sa catégorie morpho-syntaxique en contexte.
L'intégration de ces deux tâches peut être vue comme du tagging, en utilisant la notation "B-I-O" (Begin Inside Outside), en fait ici Begin/Inside suffisent: chaque tag est constitué d'une catégorie morpho-syntaxique, plus un B (pour Begin) ou un I (pour Inside), selon qu'il s'agit du premier (et éventuellement unique) composant d'un mot, ou bien d'un composant interne ou dernier d'un mot composé. Par exemple
Je/B_Cl mange/B_V des/B_Det pommes/B_N de/I_N terre/I_N parce/B_Cs que/I_Cs c'/B_Cl est/B_V délicieux/B_Adj B/PONCT.
"Je" a la catégorie "Cl", et est le premier et unique composant du mot "Je", d'où le tag "B_Cl". "de" est un composant interne du composé "pomme de terre", qui a la catégorie "N", d'où le tag "I_N".
La tâche se ramène ainsi à une tâche d'étiquetage séquentiel, pour laquelle un perceptron glouton peut être utilisé.
Une amélioration peut consister à intégrer des lexiques de mots composés sous forme de traits (par exemple un trait booléen "ce token est un composant potentiel de composé nominal, étant donné le contexte du token"). Il faut alors préalablement à l'extraction de traits, rechercher dans la phrase toutes les occurrences potentielles (et ambigues) des mots composés d'un lexique.
Possibilité d'utiliser un perceptron fourni (dans un premier temps), puis utiliser son propre perceptron(cf. TD du cours Apprentissage automatique). Pour aller plus loin : possibilité de comparer l'approche gloutonne avec une approche par faisceaux (beam search) voire avec une approche à optimisation globale (Viterbi). Possibilité d'utiliser de l'apprentissage profond (réseau de neurones à couches cachées)
Références pour la version de base: cours méthodes probas , cours Apprentissage automatique
Références pour version plus sophistiquée:
Sur le perceptron structuré (=à optimisation globale) : Michael Collins. 2002. Discriminative training methods for hidden markov models: Theory and experiments with perceptron algorithms. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP)Dans une grammaire d'arbre adjoint (TAG pour « Tree Adjoining Grammar », Joshi et Schabes, 1997) chaque mot est représenté par un arbre, dont les propriétés déterminent le type de constructions syntaxiques dans lesquelles il peut apparaître.
Pour former une phrase, plusieurs de ces arbres peuvent s'assembler à l'aide de deux opérations :
Les TAG synchrones (STAG, Shieber Schabes, 1990) étendent le formalisme des TAG en représentant chaque mot par une /paire/ d'arbres, pour lesquels chaque substitution ou adjonction doit se faire en parallèle (ou encore, de manière /synchrone/). En conséquence, si le premier arbre de chaque pair correspond à la syntaxe du français et le second à celle de l'anglais, l'analyse d'une phrase dans l'une des deux langues génère automatiquement sa traduction dans l'autre langue, avec l'arbre syntaxique correspondant (Abeillé et Al., 1990).
Le projet consiste en la conception d'un système de traduction reposant sur le principe énoncé ci-dessus. Il s'articule autour de deux modules :
Références
Le projet FrameNet (Baker, 98) est une implémentation pour l'anglais de la Frame Semantics (Fillmore, 82) où des situations prototypiques (des "cadres sémantiques") sont modélisées (déplacement, achat, causalité...) et un lexique de prédicats pouvant évoquer ces situations est construit. Par exemple, le cadre "Causation" peut être évoqué en français par causer, résulter, parce que, conséquence, du fait de, etc....
Des annotations en corpus de ces situations comprennent le marquage de l'élément évoquant la situation, ainsi que des expressions linguistiques jouant un rôle dans la situation (participants, portant un rôle sémantique).
Un FrameNet du français est disponible, qui couvre les situations de type communication verbale, transactions commerciales, positions cognitives et causalité.Il s'agit dans ce projet de réaliser la tâche d'identification des situations, sur les données FR: pour un ensemble fourni d'occurrences de mots, il faut assigner le bon cadre, certains mots bien sûr étant ambigus entre plusieurs cadres.
L'approche proposée est l'apprentissage supervisé : un corpus sera fourni d'occurrences associées à leur cadre. Il s'agit d'extraire des caractéristiques de chaque occurrence, et entraîner un classifieur. Les indices lexicaux pourront être des représentations distribuées (vecteurs de mots, word embeddings). Une première version peut être simplement un perceptron, et on pourra passer à d'autres classifieurs, voire réseau profond.
On pourra en particulier s'inspirer de (Hermann et al., 2014) pour la représentation vectorielle des occurrences.
Pour aller plus loin, on peut inclure la tâche de repérer les participants des cadres identifiés.
Références
De nos jours, les méthodes d'analyses syntaxiques les plus rapides relèvent du paradigme de l'analyse par transitions. Dans ce paradigme, un arbre est construit par une séquence d'actions, appelées en général "transitions", s'appliquant sur une "configuration", représentant une analyse partielle. Différents jeux de transitions permettent de prédire des arbres en constituants (shift-reduce) ou des arbres en dépendances (par exemple arc-eager, Nivre, 2003). Dans une approche par apprentissage automatique, le choix de la transition à appliquer à la configuration courante est fait par un classifieur, entraîné de manière supervisée.
Dans ce projet, il s'agira d'implémenter un analyseur syntaxique en dépendances, pour le français. Le projet s'organisera autour de différents modules qui devront interagir:
Dans la version de base, on utilisera un perceptron moyenné simple (local). À partir de là, plusieurs pistes d'améliorations pourront être explorées:
Références:
On vous propose d'implémenter et d'évaluer sur le français (ou sur la langue de votre choix) l'algorithme de retrofitting proposé par Faruqui et al. (2015). Cet algorithme vise à utiliser les connaissances issues d'une ressource sémantique (liens de synonymie, d'hyperonymie, etc) pour améliorer un lexique de représentations vectorielles distributionnelles de mots.
Vous disposerez de lexiques de représentations vectorielles (pour l'anglais et le français), entraînés sur wikipedia à l'aide du modèle skip-gram de Mikolov et al. (2013) et pourrez utiliser les ressources sémantiques de votre choix (par exemple le WOLF pour le français, PPDB / wordnet pour l'anglais). L'algorithme devra être évalué sur une tâche de similarité lexicale, puis sur une tâche d'analyse de sentiments (sur un corpus de critiques de films).
Références
Ce projet consiste en une implémentation complète d'un réseau de neurones profond. Si des librairies d'apprentissage profond assez "haut-niveau" existent aujourd'hui, une implémentation complète d'un réseau simple est une très bonne manière de maîtriser le sujet. Dans un premier temps, on vous propose d'implémenter un réseau de neurones à propagation avant basé sur l'abstraction du graphe de calcul (Goldberg, 2015) et une méthode d'entraînement par descente de gradient stochastique (SGD).
Dans un second temps, vous testerez le réseau sur une tâche d'étiquetage morphosyntaxique de type fenêtre de mots et comparerez les résultats avec un classifieur linéaire (par exemple un perceptron).
En français, les noms inanimés reçoivent un genre grammatical qui est nécessairement en grande partie arbitraire: dans la mesure où le français ne possède qu'un masculin et un féminin (et pas de neutre), il ne peut pas y avoir de motivation sémantique forte pour qu'un nom inanimé reçoive l'un ou l'autre genre (cf. la table vs. le tableau). Cependant, on peut se demander si la répartition des noms dans les deux genres est totalement aléatoire, ou s'il y a des tendances remarquables. L'objectif de ce projet est d'explorer cette question, en répliquant l'étude de Dye et al. (2017) sur l'allemand.
La question de recherche est: quels facteurs influencent le fait que deux noms reçoivent le même genre en français?
La question sera abordée en utilisant un grand corpus annoté pour la morphosyntaxe. Il faudra: