Secteur TAL Informatique
ILPGA Université Paris 3
Cours Modules L7T04/L8T07 "Programmation et projet encadré" (Master TAL 1/2) TAL Paris 3 - ILPGA / Paris X / INALCO
Responsables du cours
S. Fleury/J.M Daube/R.Belmouhoub. (contact : serge.fleury@univ-paris3.fr)
Descriptif du cours
Mise en oeuvre d'une chaîne de traitement textuel semi-automatique, depuis la récupération des données jusqu'à leur présentation. Ce cours posera d'abord la question des objectifs linguistiques à atteindre (lexicologie, recherche d'information, traduction...) et fera appel aux méthodes et outils informatiques nécessaires à leur réalisation (récupération de corpus, normalisation des textes, segmentation, étiquetage, extraction, structuration et présentation des résultats...). Ce cours sera aussi l'occasion d'une évaluation critique des résultats obtenus, d'un point de vue quantitatif et qualitatif.
Archives Cours
Sommaire du cours
- Semestre 1
- Semestre 2
- Projet Boîte à Outils
- Boîte à Outils : préambule
- Boîte à Outils 1 : extraction de texte (initiation à Perl)
- Boîte à Outils 2 : étiquetage
- Boîte à Outils 3 : extraction de patron
- Boîte à Outils 4 : des textes aux graphes
- Boîte à Outils 5 : information mutuelle
- Projet final
- Page "travaux en cours"
- Lectures...
Projet La vie "multilingue" des mots sur le web
Transparents Série 1 (version PDF), "Présentation du cours et du projet, le mini-projet "un mot sur le web", ... ou (version HTML).
Lecture complémentaire :
Les moteurs de recherche multilingues.
Traduction et Veille stratégique multilingue : Supports et communications. On regardera en particulier : M. Jean-Paul PINTE, Institut Catholique de Lille : « La Veille pédagogique : outils et ressources pour les traducteurs »Outils, liens :
http://ajaxime.chasen.org : système de saisie en ligne (pratique par exemple quand le japonais n'est pas disponible sur votre machine).
http://blog.imtranslator.com/ : module à installer dans Firefox ou IE.
http://clusty.com/
http://ultralingua.com/online-dictionary/
http://babelplex.com/
http://www.kvisu.com/
http://www.touchgraph.com/
http://www.ujiko.com/v2a/flash.php?langue=fr
http://mapdream.com
http://urfist.univ-lyon1.fr/risi/outils.htm
- Phase 1 : Les différentes étapes d'écriture des scripts de traitement des pages contenant les mots choisis
- Parcours par étapes :
- "Automatisation des tâches" (étape 1)
- Incise "Introduction à Unix" (Transparents du cours de R.Belmouhoub)
- "Automatisation des tâches" (étape 2)
- "Automatisation des tâches" (étape 3)
- Un mini-grep multilingue en Perl
- Mode d'emploi : installation de mini-grep multilingue sous cygwin
- Phase 2 : Complément : des nuages de mots
- un modèle de site (vide) pour le rapport final. On regardera aussi sur ce site : [1] Apprendre le langage HTML ("site réservé aux débutants") (ou ici une liste de cours HTML sur thot.cursus.edu) et ici : [2] Maîtrisez le langage HTML ("cours pour niveau avancé en HTML")
- Pour préparer la création de votre site du projet, quelques adresses pour récupérer des modèles de site web : http://www.free-css-templates.com/ ou http://www.oswd.org/ (il y en a d'autres... accessibles très facilement sur google. Vous pouvez aussi vous inspirer des travaux des étudiants des années passées. Certains sont très beaux). Si vous choisissez un modèle sur les sites mentionnés, il faut ensuite procéder de la manière suivante :
- Une fois le modèle téléchargé, vous obtenez un fichier qu'il vous faut décompresser pour obtenir un dossier contenant le fichier index.html (la page d'accueil de votre futur site) ainsi que d'autres fichiers utiles pour l'apparence du site : image de fond, feuille de style, etc.
- C'est ce fichier "index.html" qu'il vous faut ouvrir avec un éditeur de texte type notepad (ou un éditeur HTML type NVU) pour le modifier et y ajouter du contenu propre à votre site.
- Vous pouvez ensuite dupliquer ce fichier index.html plusieurs fois de manière à obtenir un fichier pour chaque page de votre site, que vous pourrez éditer de la même façon à l'aide de votre éditeur préféré.
- N'oubliez pas de modifier les liens des menus (attention à l'écriture des chemins des fichiers dans l'écriture des liens... des chemins relatifs a priori), pour permettre à vos visiteurs de passer d'une page à l'autre.
- Une fois que vous aurez l'impression que tout est opérationnel, vous zippez le dossier contenant votre site et vous l'envoyer à SF (à cette adresse sergefleury@gmail.com).
Transparents Série 2 (version PDF) : "Fichiers et systèmes de fichiers"
Transparents Série 3 (HTML) : "Egrep et expressions régulières"
Projets La vie des mots sur le web : travaux en cours
A voir sur la page Travaux en cours
Travaux réalisés "Un mot sur le web"
(MàJ : 09/01/2009)
- Tai Vu (Inalco), Alain Courrier (Inalco) | [01/01/2009]
- Ginka Yankova (Inalco), Ronald Tohe (Inalco) | [01/01/2009]
- Raoum Khiari (Paris 3), Foutoun Chaar (Paris 3) | [05/01/2009]
- Noriko Kagawa (Inalco), Teng Feng (Inalco) | [05/01/2009]
- Agnieszka Mscichowska (Paris 3), Marie Sadou (Paris X), Sophie Papazoglou (Paris X) | [06/01/2009]
- Marion Iché (Paris 3), Haruka Sato (Inalco) (à voir sous Internet Explorer de préférence) | [07/01/2009]
- Del Socorro Francoise (Paris X), Fol Hugo (Paris 3) | [07/01/2009]
- Aouini Mourad (Paris X), Daghsen Sihem (Inalco) | [07/01/2009]
- Richard Delaplace (Inalco), Jugurta Aït Hamlat (Paris 3) | [07/01/2009]
- Marco Fossati (Paris 3), Elodie Nijean (Inalco) | [08/01/2009]
- Nassim Zellal (Paris 3), Cécile Darmé (Paris 3), Anna Andrych (Paris X) | [08/01/2009]
- Chanpinawan Albert (Inalco) (version provisoire) | [08/01/2009]
- Isiaka Ibrahim (Inalco) | [09/01/2009]
Notation des Projets "Un mot sur le web"
Bilan du cours à mi-parcours
Projet Boîtes à outils
- RSS : Le bouche à oreille électronique...
- Les fils RSS : présentation en vidéo "RSS en bon français"
- Lectures complémentaires autour de RSS et de ses applications :
- Fils RSS et veille. Présentation réalisée par Sylvie Le Bars expliquant comment mettre en pratique les flux RSS pour une veille.(version à télécharger).
- Introduction à RSS sur le site commentcamarche.com.
- Présentation très complète réalisée par des bibliothécaires de l'université de Montréal : "La première partie se veut une introduction générale à RSS tandis que la seconde partie s'applique à démontrer des exemples d'usages courants et innovateurs de cette technologie par les bibliothèques, usages qui pourraient être amenés à se généraliser dans le futur."
- Support de cours réalisé par Stéphane Cottin pour la formation ADBS : "Utiliser les fils RSS". Les points abordés au cours de cette formation : Définition(s) et usages du format RSS, Comment s'y abonner ? Comment en trouver ? Quels outils ou services pour les exploiter (services en ligne, logiciels indépendants, fonctionnalités des navigateurs). Comment chercher dans des fils RSS ? Comment syndiquer du contenu ?
- "Boîte à outils Introduction : Présentation générale". Transparents : VERSION PDF.
- "Boîte à outils Série 1 : script Perl". Transparents : VERSION PDF ; VERSION HTML (avec liens actifs, version "optimisée" pour Internet Explorer)
- Corpus de Travail et ressources
- Outils et ressources pour démarrer : le corpus de travail et les scripts à utiliser pour démarrer sont accessibles ICI ou via la version HTML précédente.
- REMARQUE : Un poly perl et des ressources autour de Perl sont disponibles sur le DVD distribué au début de l'année...
- Complément : Programme d'extraction des balises DESCRIPTION dans les fils RSS via la bibliothèque Perl XML::RSS
- Présentation au format PDF. Script d'exemple.
- "Boîte à outils Série 2 : étiquetage". Transparents : VERSION PDF ; VERSION HTML (avec liens actifs, version "optimisée" pour Internet Explorer). Voir aussi infra les slides version flash.
- Lecture complémentaire : "Etiquetage morphosyntaxique"
- Descriptif sommaire du travail à réaliser pour cette étape de travail :
- Dans la série "Boite à Outils" n°2, vous devez produire un étiquetage des données textuelles extraites dans l'arborescence des fils RSS du Monde en suivant les 2 parcours décrits ci-dessous :
- Etiquetage via Cordial de la concaténation complète des textes extraits (**) au cours du parcours de l'arborescence : en sortie un fichier texte avec 3 colonnes (forme, lemme, catégorie) ayant l'allure suivante
- Etiquetage via Treetagger "au fil de l'eau" i.e. vous devez modifier le script (vu à la BàO1) de parcours de l'arborescence des fils afin d'étiqueter les contenus textuels des fils RSS juste après leur extraction : en sortie, un fichier XML (format "fourni" par le script treetagger2xml à utiliser après l'étiquetage (cf mode d'emploi)) ayant l'allure suivante (dans cette seconde sortie, une feuille de style XSLT est associée au fichier XML)
- Etape complémentaire : vous pouvez aussi traiter "la concaténation complète des textes extraits" (**) avec Le Trameur. Ce programme permet de charger et d'étiqueter (avec treetagger) votre fichier de travail. Vous pouvez ensuite réaliser l'extraction de patron (cf mode d'emploi en ligne) que l'on mettra en oeuvre dans la BàO3 aussi.. On présente ici un exemple de sortie produite avec le Trameur sous la forme d'un rapport d'exploration contenant : (1) la liste des séquences de terme associées au patron NOM ADJ, (2) un graphe construit à partir de la liste précédente et réduit aux séquences contenant la forme "crise", données construites à partir du la rubrique POLITIQUE sur l'année 2008.
- Ressources pour treetagger (win32) : Présentation de treetagger (version PDF ou version HTML). Archive complète avec treetagger et présentation.
- Ressources pour Cordial : une présentation au format PDF.
- Exemple réduit de résultat à construire (Afficher le source pour visualiser la codage XML, le fichier XML est présenté ici avec une feuille de styles XSL reformatant son contenu pour affichage dans le navigateur). Résultat produit avec treetagger
- "Boîte à outils Série 3 : Introduction Extraction de patrons". Transparents du cours : Version PDF ou version PPT.
- Dans les transparents précédents, on présente les 2 étapes à réaliser :
- Extraction de patrons sur les sorties "brutes" de l'étiquetage (via Cordial) issue de Boîte à outils Série 2 via un script (détail dans les transparents et liens qui suivent)
- Extraction de patrons sur la sortie au format XML (via Treetagger) issue de Boîte à outils Série 2 : on utilisera ici une requête XPath pour construire la liste des patrons visés.
- On donne à voir dans un premier temps le résultat attendu (patron : NOM ADJ) construit à partir d'un exemple réduit de résultat construit dans Boîte à outils Série 2 (Afficher le source pour visualiser la codage XML, le fichier XML est présenté ici avec une feuille de styles XSL reformatant son contenu pour affichage dans le navigateur). [Lien direct vers la feuille de styles utilisée pour construire le résultat attendu]
- On donne maintenant à voir le résultat attendu (patron : NOM PRP NOM) construit à partir d'un exemple réduit de résultat construit dans Boîte à outils Série 2 (Afficher le source pour visualiser la codage XML, le fichier XML est présenté ici avec une feuille de styles XSL reformatant son contenu pour affichage dans le navigateur). [Lien direct vers la feuille de styles utilisée pour construire le résultat attendu]
- Autre exemple de sortie : traitement du fil RSS "Présidentielle 2007" proposé sur le site du journal "Le Monde". Période traitée : 20/11/2006-10/02/2007. Extraction du patron NOM ADJ : (1) 20/11/2006-31/12/2006 (2) 01/01/2007-10/02/2007.
- "Boîte à outils Série 3 : Extraction de patrons"". Transparents du cours (suite 1 : extraction via script)
- "Boîte à outils Série 3 : Extraction de patrons" Compléments et détails.
- "Boîte à outils Série 3 et 4 : Extraction de patrons" Travail à réaliser avec le TRAMEUR : extraction de patrons et graphes de mots.
- "Boîte à outils Série 4" (via patron2graph) : Le programme patron2graph.exe : le programme, mode d'emploi et fichiers de test. Exemple de sortie :
- "Boîte à outils Série 4" (via pajek) : Des textes aux Graphes : pas à pas (et à la main!).
- "Boîte à outils Série 5 : Information mutuelle" (ressources complètes zippées)
Le bouche à oreille électronique
IMPORTANT: Pour le projet BàO 2008-2009, le corpus de travail sera constitué de l'ensemble des fils RSS disponibles sur le site du journal Le Monde recueillis tous les jours de l'année 2008 à 19h . On commencera par tester la chaîne de traitement sur un échantillon (15 jours seulement de l'année 2008) correspondant à celui fourni dans les ressources disponibles dans cette archive. Pour récupérer le corpus complet de l'année 2008, suivre le lien vers cette archive.
Boîtes à outils [Séries 1, 2, 3, 4, 5] : travaux encours
A voir sur la page Travaux en cours
Boîtes à outils [Séries 1, 2, 3, 4, 5] : travaux réalisés (sur le site pluriTAL)
- Del Socorro Francoise (Paris X) | [12/05/2009]
- Sophie Papazoglou (Paris X), Marion Iché (Paris 3) | [20/05/2009]
- Mourad Aouini (Paris X) | [01/06/2009]
- Nassim Zellal (Paris 3), Marco Fossati (Paris 3) | [02/06/2009]
- Foutoun Chaar (Paris 3) | [02/06/2009]
- Ginka Yankova (Inalco) | [04/06/2009]
- Richard Delaplace (Inalco), Jugurta Aït Hamlat (Paris 3) | [08/06/2009]
- Norolalaina Rakotomalala (Inalco), Sihem Daghsen (Inalco) | [08/06/2009]
- Anna Andrych (Paris X), Marie Sadou (Paris X) | [08/06/2009]
- Jean Testard (Inalco) | [08/06/2009]
- Noriko Kagawa (Inalco), Sato Haruka (Inalco), Isiaka Ibrahim (Inalco) | [09/06/2009]
- Cécile Darmé (Paris 3), Elodie Nijean (Paris X) | [09/06/2009]
- Tai Vu (Inalco), Alain Courrier (Inalco) | [09/06/2009]
Projets
- Projet dit Navigation dans les fils du Monde : l'an 2008 i.e. La Crise
- Projet dit Multilingue
La Crise dans la Surface et dans la Profondeur du Monde par Nassim, Sophie, Lalaina, Sihem, Raoum, Foutoun et Mourad. (Paris X/Paris 3/Inalco) | [08/06/2009]
Alignement franco-portugais - la Discrimination à l'emploi par Cécile Darmé (Paris 3), Elodie Nijean (Paris X) | [18/06/2009]
Alignement anglais-japonais sur le site GaijinPot.com par Noriko Kagawa (Inalco), Sato Haruka (Inalco), Isiaka Ibrahim (Inalco), Tai Vu (Inalco) | [18/06/2009]
Comparaison morpholexicale du vocable potentiel dans le domaine de la biologie cellulaire entre le Français et le Portugais par Françoise Del Socorro (Paris X) | [19/06/2009]
Lexique social franco-polonais par Anna Andrych (Paris X), Marie Sadou (Paris X) | [19/06/2009]
Alignement bilingue japonais-anglais portant sur les ressources humaines et les emplois au Japon par Marion Iché (Paris 3), Richard Delaplace (Inalco) | [21/06/2009]
Mini-lexique contextuel français/kabyle par Jugurtha Aït Hamlat (Paris 3) | [24/06/2009]
Contrôle des connaissances
Projets, travail personnel...
Bibliographie
cf les slides vus en cours...
Lectures
- Tutorial Perl : The tutorial is split into twenty-one sections, although you'll probably find it easier if you start from the beginning, especially if you're new to Perl. Lessons zero to ten deal with the basics, and the rest deal with more advanced topics, like servers, perl's guts, and parsing. Lesson 12 seems particularly popular: it deals with perl under Windows. The tutorial should be in line with modern Perl practices, so hopefully you won't see any more bareword filehandles, two-argument open or -w switches.
- Guide avancé d'écriture des scripts Bash, sur le Site de traduction français pour le guide ABS Advanced Bash Scripting Guide
(Lien : Version 5 http://abs.traduc.org/abs-5.0-fr/)
Une exploration en profondeur de l'art de la programmation shell. Ce tutoriel ne suppose aucune connaissance de la programmation de scripts, mais permet une progression rapide vers un niveau intermédiaire/avancé d'instructions tout en se plongeant dans de petites astuces du royaume d'UNIX. Il est utile comme livre, comme manuel permettant d'étudier seul, et comme référence et source de connaissance sur les techniques de programmation de scripts. Les exercices et les exemples grandement commentés invitent à une participation active du lecteur avec en tête l'idée que la seule façon pour vraiment apprendre la programmation de scripts est d'écrire des scripts.
On regardera en particulier : la seconde partie, le chapitre 10, le chapitre 14, etc. - Pour utilisateurs débutants ou confirmés : Unix, le Terminal, les Expressions régulières... tout ça est sur le site d’Isabelle Volant. On y retournera souvent donc…
- La documentation de Perl : Article publié dans Linux Magazine 53, septembre 2003. Repris dans Linux Dossiers 2 (avril/mail/juin 2004), "L'objectif de cet article est de vous fournir les moyens de trouver seul la réponse aux questions que vous vous posez, ou au moins de progresser aussi loin que possible avant de finir par poser la question sur un forum ou une liste de discussion."
- Sur le site d'IBM, la série "Speaking Unix" :
- Speaking UNIX, Part 15: !$#@*%
Learn even more command-line tricks and operators. - Speaking UNIX, Part 14: It is all about the inode
Have you ever wondered what Iused and %Iused mean in UNIX® commands like df or what people are talking about when the say inode? UNIX and Linux® systems both use inodes, and IBM® AIX® is no different. Discover what an inode is and why inodes are important to UNIX, the structure of an inode, and commands for working with inodes. - Speaking UNIX, Part 13: Ten more command-line concoctions
This month, discover ten more secrets of the UNIX command-line wizards. - Speaking UNIX, Part 12: Do-it-yourself projects
If your UNIX(R) system lacks a tool you need, chances are you can find an apt solution in the enormous inventory of software available online. This month, learn how to build software from source code. - Speaking UNIX, Part 11: Ramble around the UNIX file system
Many directories in the UNIX® file system serve a special purpose, and certain directories are named per long-standing convention. In this installment of the "Speaking UNIX" series, discover where UNIX stores important files. - Speaking UNIX, Part 10: Customize your shell
You can customize the UNIX® shell to save time, to save typing, and to adapt to your style of work. Shell startup files capture your preferences and recreate your shell environment session after session, even machine to machine. - Speaking UNIX, Part 9: Regular expressions
Virtually all non-trivial problems require you to filter good data from bad. Discover the many UNIX® command line utilities that use regular expressions to discern the relevant from the irrelevant. - Speaking UNIX, Part 8: UNIX processes
On UNIX® systems, each system and end-user task is contained within a process. The system creates new processes all the time and processes die when a task finishes or something unexpected happens. Here, learn how to control processes and use a number of commands to peer into your system. At a recent street fair, I was mesmerized by the one-man band. Yes, I am easily amused, but I was impressed nonetheless. Combining harmonica, banjo, cymbals, and a kick drum -- at mouth, lap, knees, and foot, respectively -- the veritable solo symphony gave a rousing performance of the Led Zeppelin classic "Stairway to Heaven" and a moving interpretation of Beethoven's Fifth Symphony. By comparison, I'm lucky if I can pat my head and rub my tummy in tandem. (Or is it pat my tummy and rub my head?). Lucky for you, the UNIX® operating system is much more like the one-man band than your clumsy columnist. UNIX is exceptional at juggling many tasks at once, all the while orchestrating access to the system's finite resources (memory, devices, and CPUs). In lay terms, UNIX can readily walk and chew gum at the same time. This month, let's probe a little deeper than usual to examine how UNIX manages to do so many things simultaneously. While spelunking, let's also glimpse the internals of your shell to see how job-control commands, such as Control-C (terminate) and Control-Z (suspend), are implemented. Headlamps on! To the bat cave! - Speaking UNIX, Part 7: Command-line locution
UNIX® has a dialect all its own, and its vocabulary of commands is quite large. But you don't have to learn everything all at once. Here, discover more command-line combinations and expand your mastery of the UNIX language. Whenever you travel to a foreign country in which the inhabitants speak an unusual native tongue, you might arm yourself with essential survival phrases, such as "How much does this cost?," "What kind of meat is this?," and "Where is the bathroom?" Memorizing such little quips ensures that you don't get overcharged for that snake sandwich you ordered, and you know where to go when Mother Nature (or the snake sandwich) calls. UNIX®, too, has a dialect all its own and, over the past six months, this Speaking UNIX series has provided something of a crash course in command-line locution. This month, learn several helpful phrases that will have you blending with the locals in no time. Grab your toothbrush, pack some comfortable shoes, and update your inoculations. You're off for sun, sand, and shells. (For the sun and sand, scoop up your laptop, head to the beach, plop down near the water's edge, and read this column. And don't forget your sunscreen.) - Speaking UNIX, Part 6: Automate, automate, automate!
Discover how shell scripts can mechanize virtually any personal or system task. Scripts can monitor, archive, update, report, upload, and download. Indeed, no job is too small or too great for a script. Here's an introduction. - Speaking UNIX, Part 5: Data, data everywhere
Take a look at several techniques that illustrate how to move files among systems and how to keep such far-flung data in sync. - Speaking UNIX, Part 4: UNIX ownership and permissions provide for privacy and participation
Learn how to manipulate file permissions to protect your files, or share them with others. - Speaking UNIX, Part 3: Do everything right from the command line
Discover three essential UNIX(R) utilities that deliver the entire Internet to your command line. - Speaking UNIX, Part 2: Working smarter, not harder
Learn how to leverage the many shortcuts that the UNIX(R) shell provides. With a little practice, you'll work smarter, not harder. - Speaking UNIX, Part 1: Command the power of the command line
Learn the basics of the UNIX shell and discover how you can use the command line to combine the finite set of UNIX utilities into innumerable data transforms.