Cette année, j'enseigne encore une fois le TALN à l'EPUN : 9h de TP destinés à des étudiants de 1ère année d'ingénieur. La différence c'est que cette fois j'ai plus ou moins quartier libre. Cette liberté est toute relative puisque je ne suis responsable que des TP et que ceux-ci devront coller aux cours (sur lesquels je n'ai aucune prise). Toutefois, cette année je ne suis pas tenu de donner un projet noté. En d'autres termes, je peux exploiter la totalité des heures pour faire des exercices : apprendre en faisant comme on dit.

Habituellement, les travaux pratiques sont faits en Perl, un langage que je n'apprécie pas du tout alors qu'il est certainement le langage favoris de ma communauté. Sans disserter sur les raisons de notre désamour, je pense qu'il n'apporte rien d'autre qu'un bon moteur pour les expressions rationnelles. S'il y a dix ans cette spécificité justifiait son choix, aujourd'hui tous les langages généralistes supportent aussi bien les expressions rationnelles. Le comble est qu'il n'existe pas (à ma connaissance) de plateforme (modules, extensions...) permettant de faire du TALN en Perl, alors qu'on en trouve pour Python et Java.

Plutôt que Perl, je pense que je vais faire travailler mes étudiants avec Python. Outre le fait qu'il me sera beaucoup plus aisé de corriger les projets (les programmes Perl des gens qui ne maîtrisent pas le langage peuvent être la cause de sérieuses crises de nerf), l'apprentissage du langage Python leur sera utile pour d'autres projets scientifiques (voir ici, ici ou encore ). De plus, le cadriciel nltk permet d'aborder rapidement les principales tâches du TALN sans avoir à tout réimplémenter. Le cadriciel est notamment très bien documenté, ce qui ne gâche rien !

Au niveau corpus, je ne sais pas encore très bien sur quoi je vais les faire travailler car il y a malheureusement assez peu de corpus français intéressants pour l'enseignement. Remplacez intéressants pour l'enseignement par on se fout qu'il soit représentatif, on veut juste pouvoir faire des exercices marrants et observer des phénomènes linguistiques simples. J'hésite entre mon corpus sur les discours de Nicolas Sarkozy ou celui que j'ai constitué à partir de Wikinews. Je pourrais également utiliser le French TreeBank qui a l'avantage d'être arboré (découpage en mots et annotation des rôles grammaticaux) mais je ne suis pas sûr que sa licence le permette. Je pourrais également explorer certaines œuvres du projet Guteberg. Il manque clairement un corpus libre tout plein d'annotations pour le français !

Enfin au niveau du contenu il va falloir que je me creuse un petit peu la tête. Le cours présente pas mal (trop ?) de choses : expressions rationnelles, analyse morphologique (algorithme de Porter notamment), analyse syntaxique mais également un peu de n-grammes, des modèles de Markov cachés et j'en oublie certainement...

Le premier cours est mardi prochain, il va falloir que je me casse la tête d'ici là. Je pense les faire travailler sur des choses simples :

  • quelques exercices sur les expressions rationnelles
  • prise en main de NLTK
  • découpage en mots
  • loi de Zipf
  • une super application de l'utilisation du découpage en mots et des expressions rationnelles ???

Si certains d'entre-vous ont des ressources, des supports de cours ou des idées qui pourraient m'inspirer... n'hésitez pas ! :)