TP1: Sequence de lemmes vers formes de surface

Objet du TP

De nombreuses chaînes de traitement des langues font intervenir des lemmes. Le lemme d'un mot est sa forme de base. Ainsi manger est la forme de base (le lemme) associé à la forme mangeront. Dans ce devoir, vous allez mesurer quelle est la perte liée à traiter des séquences de lemmes plutôt que des séquences de formes. Votre objectif est à cette fin, de réaliser un système capable de procéder à la prédiction d'une séquence de formes à partir d'une séquence de lemmes. Ce type de mapping est un problème générique que vous pouvez tenter de résoudre par une approche populaire. Vous pouvez également décider de produire des règles, ou tenter d'entraîner un modèle à base de features. Ceci est laissé à votre sagacité. Dans tous les cas, la note à ce TP ne dépendra que faiblement des résultats que vous allez obtenir, mais sera bien davantage corrélée à la curiosité avec laquelle vous allez étudier le problème.

Données disponibles

Des données pour la langue anglaise (une des langues les plus ``plates'' pour ce genre d'exercice, les phénomènes dérivationnels pour l'anglais étant en nombre limité) ont été extraites de Wikipédia et sont encodées en utf-8. Vous avez accès à un total de 2020 tranches de 1000 articles chacune, où un article est représenté par une succession de lignes, où une ligne représente un mot (forme de surface, tabulation, puis lemme), et où chaque phrase est marquée d'une ligne vide. Chaque tranche fait en moyenne 2M non compressée (800k compressée avec gzip). Voici un extrait d'une telle tranche (la première phrase en fait):

  
#begin document 21466609
FOCS	foc
,	,
the	the
Annual	annual
IEEE	ieee
Symposium	symposium
on	on
Foundations	foundations
of	of
Computer	computer
Science	science
,	,
is	be
an	a
academic	academic
conference	conference
in	in
the	the
field	field
of	of
theoretical	theoretical
computer	computer
science	science
.	.


  

Je souligne que les lemmes ont été produits automatiquement, et qu'il se peut qu'il y ait du bruit dans les données. Ainsi foc n'est pas le lemme de FOCS qui est un acronyme pour Foundation of Computer Science .

Les données sont assez volumineuses et vous n'avez pas obligation de tout utiliser. Si au contraire, vous manquez de données, alors vous pouvez en utiliser d'autres dont vous expliquerez précisément la nature. Notez que les données de test sont extraites également de Wikipédia, aussi ne devriez-vous pas utiliser Wikipédia comme source de données supplémentaires. Si vous utilisez uniquement les données fournies, alors vous êtes en mode dit fermé, sinon vous êtes en mode ouvert. Si vous utilisez des modèles déjà entraînés, c'est comme si vous aviez utilisé la ressource sur laquelle le modèle a été entraîné. Voici ce qui est disponible:

train
1500 tranches de Wikipédia
dev
500 tranches de Wikipédia disjointes des tranches de train.
test
20 tranches de Wikpédia, disjointes de train et dev.
mystere
5 tranches mystère qui vous serons données plus tard pour lesquelles vous n'avez pas la forme de surface associée (à un lemme). Ces tranches sont réservées afin que je puisse évaluer de manière commune vos systèmes. Je vous demande en effet de produire (dans la mesure du possible) votre meilleure prédiction afin que je puisse évaluer vos sorties à l'aide de mes scripts d'évaluation.

Ces données sont disponibles directement sur les machines du diro dans le répertoire /home/www-labs/felipe/public_html/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/. Vous pouvez ne copier qu'une partie de ces données ou bien y accéder directement (si vous travaillez sur des machines du DIRO). Je laisserai les données à cet emplacement pendant la durée du projet. Vous pouvez aussi y accéder via le web en vous rendant ici: http://www-labs.iro.umontreal.ca/~felipe/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/.

  
    % ls /home/www-labs/felipe/public_html/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/train
    train-0.gz     train-1000.gz  train-1001.gz  train-1002.gz  train-1003.gz
    train-1004.gz  train-1005.gz  train-1006.gz  train-1007.gz  train-1008.gz
    train-1009.gz  train-100.gz   train-1010.gz  train-1011.gz  train-1012.gz
    ...

    %  ls /home/www-labs/felipe/public_html/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/dev
    dev-2369.gz  dev-2370.gz  dev-2371.gz  dev-2372.gz  dev-2373.gz  dev-2374.gz
    dev-2375.gz  dev-2376.gz  dev-2377.gz  dev-2378.gz  dev-2379.gz  dev-237.gz
    dev-2380.gz  dev-2381.gz  dev-2382.gz  dev-2383.gz  dev-2384.gz  dev-2385.gz
    ...
    
    %  ls /home/www-labs/felipe/public_html/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/test
    test-2819.gz  test-2820.gz  test-2821.gz  test-2822.gz	test-2823.gz
    test-2824.gz  test-2825.gz  test-2826.gz  test-2827.gz	test-2828.gz
    test-2829.gz  test-282.gz   test-2830.gz  test-2831.gz	test-2832.gz
    test-2833.gz  test-2834.gz  test-2835.gz  test-2836.gz	test-283.gz
    
  

Vous pouvez afficher le contenu d'une tranche à l'aide de zcat:

  
  % zcat /home/www-labs/felipe/public_html/IFT6285-Hiver2018/resources/tmp.2pvHHmkcyH/tp1/test/test-2819.gz | head
#begin document 26802526
Facemelter	facemelter
is	be
the	the
twelfth	twelfth
studio	studio
album	album
by	by
American	american
hard	hard
rock/heavy	rock/heavy

Cahier des charges

Vous devez développer un programme capable de transformer une séquence de lemmes (la seconde colonne dans les fichiers train/dev/test distribués en la première). Aucune contrainte n'est imposée quand à la façon de procéder. Vous pouvez utiliser des outils existants, des modèles existants (seulement après avoir identifié sur quoi exactement ils ont été entraînés).

Vous devez au moins étudier une solution au problème en mode fermé (c'est-à-dire en utilisant uniquement les données fournies). Libre bien sûr à vous d'étudier ensuite l'injection de nouvelles données.

Vous devez remettre un rapport au format pdf. C'est essentiellement à l'aide de ce rapport que je vais juger de votre travail. Ce rapport, d'au plus 8 pages, doit ressembler à un article scientifique. Vous devez en particulier:

  • expliquer les motivations ayant guidé votre choix des approches, éventuellement à la lumière de travaux reliés
  • la ou les approche(s) testée(s). Chaque approche doit être étudiée selon ses meta-paramètres (seuils, nombre de règles, etc.).
  • vous devez décrire votre protocole expérimental: les métriques utilisées pour mesurer vos résultats, le ou les systèmes de base (baselines) avec lesquels comparer votre approche. Un baseline simple consiste par exemple à toujours prédire le lemme comme forme de surface (de nombreuses formes de surface sont en effet identiques au lemme).
  • ce qui doit guider votre rapport est avant tout la curiosité, quelque soit l'approche. Je cherche à lire des réponses à des questions pertinentes compte tenu des approches sélectionnées. Je suis plus intéressé à comprendre les limites d'une approche que ses performances.

À remettre

Rapport

Il s'agit de la partie la plus importante de votre travail. Vous pouvez le rédiger en français ou en anglais. Vous devez trouver un équilibre qui permet à un lecteur informé de reproduire votre approche, sans tomber dans trop de détails. N'hésitez à parler du temps d'entraînement d'un modèle, ou de développement de règles par exemple. Le rapport est à remettre sous la forme d'un document IFT6285-nom.pdf (où nom spécifie votre ou vos noms) envoyé par mail.

Je vais lire ce rapport afin de mesurer votre degré de curiosité. Notez que cela n'est pas relié à la complexité de votre solution: l'utilisation d'un modèle ``complexe'' qui ne donne pas de résultats pertinents avec comme explication que les données ne sont pas assez grandes pour que le modèle puisse ``s'exprimer'' ne présente pas nécessairement un haut degré de curiosité.

Code

Je vous demande également de remettre via Studium (les détails viendront) les sources que vous avez développés (si vous en développez). Je ne tenterai aucunement de lancer ces sources, mais d'aller les consulter peut m'aider à mieux comprendre certains points de votre rapport. N'hésitez pas à glisser un readme dans ces codes pour mettre en exergue les points que vous jugez importants ou utiles.

Tests

Après la date butoire de remise des rapports, vous aurez une semaine pour lancer votre meilleure approche sur des textes de mon choix. Ces textes sont également extraits de Wikipédia (il s'agit donc d'un jeu de test du domaine).