Master Informatique - Spécialité Science et
Ingéniérie Informatique
Parcours informatique linguistique
Objectifs
L'objectif du parcours informatique linguistique est multiple. Il a pour but de former à la fois des spécialistes en ingénierie linguistique et de futurs chercheurs en traitement automatique des langues naturelles. Nous présentons les différentes notions métiers fondamentales du domaine et diverses techniques de pointe utilisées dans l'industrie et la recherche. La formation s'articule autour de trois axes : (1) ressources linguistiques (corpus, lexiques) et représentation des connaissances, (2) analyse linguistique de textes, (3) ingénierie pour le traitement de grandes bases de documents textuels. L'aspect pluridisciplinaire est particulièrement mis en avant par la combinaison d'approches linguistiques et statistiques.
La filière comprend aussi une forte composante "développement de logiciels" afin de former de solides ingénieurs développeurs. De nombreux projets viennent étoffer la formation. L'intervention ponctuelle de personnalités extérieures venant du monde des entreprises met nos cours en perpectives industrielles.
Organisation
Le parcours débute au second semestre du master 1 et se poursuit pendant les deux semestres du master 2
Enseignements de master :
Master 1 / Second Semestre
- Ingénierie linguistique 1(Matthieu Constant -
UPEMLV)
- Ressources linguistiques(Tita Kyriacopoulou)
- Représentation des connaissances 1(Eric Laporte -
UPEMLV)
Ingénierie linguistique 1
L'objectif de ce cours est d'offrir une vue d'ensemble des technologies et représentations de base de l'ingénierie linguistique. Chacune des notions vues est illustrée d'un ou plusieurs exemples d'applications. Nous montrons en particulier que l'utilisation d'automates finis permet de segmenter les textes en unités de base (tokens). Les techniques utilisant la représentation des textes par sacs de mots sont particulièrement efficaces pour la recherche de documents à l'aide de requêtes ou pour la classification automatique de documents. Les modèles de Markov permettent d'étiqueter les mots grammaticalement à l'aide de contextes restreints. Les grammaires algébriques permettent de regrouper des séquences de mots en constituants syntaxiques et ainsi d'améliorer la structuration linguistique des textes. Nous montrons également quelques modèles probabilistes utilisés pour la traduction automatique.
Ressources linguistiques
En Traitement Automatique des Langues Naturelles, la première étape est l'analyse morphologique, qui fait appel à de grands dictionnaires représentés sous la forme d'automates acycliques et de transducteurs finis. Dans les langues à flexion, comme la plupart des langues européennes, le maximum d'efficacité est obtenu avec des dictionnaires électroniques qui comprennent toutes les formes fléchies, c'est-à-dire par exemple toutes les formes conjuguées des verbes.
Le vocabulaire des langues naturelles contient des mots simples et des mots composés ce qui complique leur reconnaissance. Par exemple, la séquence de deux mots simples consécutifs "ceinture noire" peut représenter un nom composé masculin ou féminin qui désigne une personne, comme dans la phrase suivante :
Les ceintures noires de l'association se réuniront demain
mais ce n'est pas parce qu'on trouve cette séquence dans un texte qu'il s'agit obligatoirement d'une occurrence du nom composé. Par exemple, dans la phrase :
Paul portait une ceinture noire en cuir
une analyse syntaxique (ou sémantique) devra éliminer l'hypothèse qu'il s'agit du nom composé "ceinture noire". Le problème de l'analyse automatique est la résolution des ambiguïtés.
Le cours définit les unités élémentaires des langues et présente les meilleures méthodes de description formelle de ces unités en vue d'obtenir des dictionnaires électroniques des formes fléchies du français (pour les mots simples et pour les mots composés). On traite les problèmes posés par les ambiguïtés. On aborde la description syntaxique des expressions porteuses de sens.
Représentation des connaissances 1
Plusieurs techniques de traitement des langues naturelles font appel, d'une façon ou d'une autre, à des objets formels qui représentent soit une partie du sens des textes, soit une partie du savoir humain, soit une partie du raisonnement humain. Ces objets sont des modèles très simplifiés de la réalité. On étudie les bases des principales techniques de modélisation et de formalisation :
- les prédicats et les arguments,
- les "cadres" au sens de Minsky et Schane,
- la logique du premier ordre avec notamment les connecteurs logiques, les quantificateurs, la déduction automatique, l'inférence automatique,
- les réseaux sémantiques, dans lesquels les noeuds représentent les sens des mots et les transitions des relations entre eux,
- la solution des références, c'est-à-dire établir le lien entre les expressions dans un texte et les objets formels correspondants dans les modèles de représentation des connaissances, la modélisation du dialogue.
Le cours définit des notions et quelques algorithmes. On apprend à réaliser pratiquement des
représentations élémentaires d'objets, de situations, d'événements, de raisonnements, etc., et à manipuler ces modèles pour résoudre des problèmes simples.
Le cours se termine par une introduction à la littérature scientifique. On y apprend quelques règles du jeu de la production, de la sélection et de la compréhension des articles scientifiques dans le domaine du traitement des langues naturelles.
Master 2
- Algorithmique et automates (Marie-Pierre Béal - Sylvain Lombardy)
- Analyse syntaxique profonde (Tita Kyriacopoulou - Eric Laporte)
- Analyse syntaxique superficielle (Matthieu Constant)
- Corpus de textes (Sébastien Paumier - Eric Laporte)
- Grammaires locales (Sébastien Paumier - Eric Laporte)
- Java 2 Enterprise Edition (Julien Goulon)
- Ingénierie linguistique 2 (Matthieu Constant - Domininique Revuz)
- Interface graphique 1 (Sébastien Paumier)
- Représentation des connaissances 2 (Olivier Curé)
- Plateformes d'intégration et processus industriels en TAL (Matthieu Constant - Sébastien Paumier)
Deux options au choix:
- Programmation
générique - C++ (Sylvain Lombardy) ou Ouverture
- Projet de génie logiciel - J2E (Julien Goulon) ou Interface graphique 2 (Rémi Forax)
Algorithmique et automates
L'objectif du cours est de présenter des algorithmes sur les automates finis et les structures pour index. Ce cours est divisé en deux parties de même volume.
La première partie du cours concerne l'utilisation des automates dans la recherche de motifs. Après avoir rappelé les notions élémentaires de combinatoire des mots (bords, périodes), on étudiera la construction efficace d'outils fondamentaux pour la recherche de motifs: le trie des suffixes, ainsi que des représentations plus compactes, comme l'automate des suffixes; ce sera l'occasion d'aborder des algorithmes spécifiques aux automates acycliques. Pour conclure cette partie, on introduira des notions de dynamique symbolique, telles que les mots interdits minimaux, les codes et codes circulaires.
La seconde partie présente des algorithmes classiques mais avancés sur les automates finis. On s'intéressera d'abord à la minimisation, la minimisation des automates déterministes dans un premier temps, l'unicité de l'automate minimal, les différents algorithmes de minimisation, puis la réduction des automates non déterministes à l'aide des notions de morphisme et de revêtement. Ensuite, on exminera les algorithmes de synthèse d'automates à partir d'expressions rationnelles : Thompson, Positions, Standard, Dérivées et on étudiera les relations entre les résultats de ces différents algorithmes.
Analyse syntaxique profonde
L'objectif de notre enseignement sur l'analyse syntaxique est de présenter les principaux aspects qu'il faut maîtriser pour réaliser un système capable de décoder la structure syntaxique de phrases écrites en langue naturelle.
On présente trois algorithmes qui manipulent trois modèles de base de l'analyse syntaxique : l'intersection entre un automate acyclique représentant le texte et un automate fini déterministe représentant la grammaire ; l'algorithme d'Earley avec une séquence représentant le texte et une grammaire algébrique ; l'unification entre deux structures de traits.
Une grammaire syntaxique est un modèle mathématique ou informatique de la syntaxe d'une langue. Réaliser une grammaire est donc un travail de modélisation. On présente les notions métier qui sont propres à ce domaine : construction syntaxique, entrée lexicale, constituant syntaxique, arbre syntaxique, lexique syntaxique. On montre comment ces notions sont représentées dans deux projets de lexiques syntaxiques : le Lexique-Grammaire et FrameNet. On montre également l'impact des expressions multi-mots dans la modélisation.
On aborde quatre formalismes de représentation de grammaires syntaxiques : TAG, HPSG, LFG et grammaires pondérées.
Enfin, on aborde les deux principales méthodes de construction de lexiques et de grammaires : construction manuelle par des linguistes et acquisition automatique par apprentissage statistique.
Analyse syntaxique superficielle
Ce cours est consacré à la description de deux types d'analyses utilisées dans de nombreuses applications : l'étiquetage morpho-syntaxique et l'annotation en chunks.
L'étiquetage morpho-syntaxique consiste à assigner une catégorie grammaticale et divers traits morphologiques à chaque mot du texte. Nous présentons les différentes méthodes utilisées pour ce genre de processus : étiquetage par modèles de Markov cachés, étiquetage de Brill, étiquetage par règles linguistiques. Nous montrons que l'évaluation et la comparaison de tels outils sont souvent complexes car elles dépendent du jeu d'étiquettes utilisé.
L'annotation en chunks étend l'étiquetage morpho-syntaxique. Elle consiste à segmenter le texte en constituants non récursifs simples (chunks) et à les étiqueter. Nous étudions notamment un processus qui consiste en l'application d'une cascade de transducteurs. Nous montrons en quoi il améliore l'étiquetage morpho-syntaxique et comment, grâce à la prise en compte des unités multi-mots, il réalise un prétraitement efficace à l'analyse syntaxique.
Corpus de textes
Comme dans beaucoup de disciplines, les données empiriques ont une grande importance en linguistique et en traitement automatique des langues. Ce cours a pour but de présenter les enjeux de l'utilisation de corpus, aussi bien pour l'extraction de nouvelles connaissances que pour la validation de procédures automatiques, ainsi que les méthodes permettant de les constituer. Dans cette optique, nous étudierons les problèmes juridiques que soulèvent de telles collectes de données, les questions de représention pratique (normes, encodages, jeux d'étiquettes), ainsi que divers aspects de l'annotation de corpus (comment annoter, quels phénomènes annoter, etc).
Grammaires locales
Ce cours a pour but d'enseigner aux étudiants comment concevoir des grammaires locales décrivant des contextes linguistiques homogènes, comme des adverbes de date, des titres de personnes ou des résultats sportifs. Nous introduisons la notion d'entité nommée et nous passons en revue les types d'entités nommées qu'on distingue actuellement. Nous définissons le rappel, la précision et le f-score utilisés pour évaluer les performances de la reconnaissance d'entités nommées. Nous montrons la méthode d'amorçage ou bootstrap permettant de faire évoluer une telle grammaire grâce à des allers-retours sur corpus permettant de confronter son pouvoir prédictif aux phénomènes linguistiques attestés, en utilisant d'une part le lien entre rappel et variantes d'expressions, et d'autre part le lien entre précision et ambiguïtés. Nous montrons comment modulariser, organiser et gérer de telles grammaires, ainsi que la façon de les utiliser à des fins d'extraction d'information. Cet enseignement se présente sous la forme de cours magistraux, suivis de cours/TD sur ordinateurs, au cours desquels les étudiants peuvent appliquer au fur et à mesure les concepts et techniques présentés.
Ingénierie linguistique 2
La quantité de documents disponibles, sur Internet notamment, a rendu indispensable le développement d'outils permettant d'accéder à l'information rapidement. Ce cours est consacré à la description de méthodes statistiques
permettant d'implémenter de tels outils. Nous insistons particulièrement sur les moteurs de recherche, leur architecture et leur fonctionnement. Nous montrons également différentes techniques de classification automatique de documents (supervisée ou non). Nous abordons diverses applications liées à la technologie des sacs de mots: extraction de mots-clés, extraction de thèmes par regroupement de mots, levée d'ambiguité, résumé automatique. Le problème du multilinguisme des documents sera abordé à travers la description de systèmes de réponses à des questions et de traduction automatique statistique.
Java 2 Enterprise Edition
Très prisées par les entreprises, les
technologies Java EE apportent une boite à outils puissante et
standardisée pour les développeurs et ingénieurs. Les étudiants sont
familiarisés avec les différentes composantes qui forment Java EE. Un
accent particulier est mis sur les méthodes issues du monde
professionnel qui entourent ces technologies. Le cours présente dans un
premier temps les bases de J2EE: le JDBC, les Servlets et les JSP, les
Java Beans, la sécurité et le déploiement d'applications sur le Web. La
seconde partie du cours traitera de de J2EE en environnement distribué:
les mécanismes de localisation avec JNDI, Java Messaging, les appels de
méthodes a distance avec RMI et le protocoles IIOP. Les services de
synchronisation JTA/JTS et les EJB.
Plateformes d'intégration et processus industriels en TAL
Les applications de l'ingénierie linguistique reposent souvent sur des chaînes de traitements complexes, intégrant différents modules provenant de diverses sources. L'utilisation de plateformes d'intégration telles que Gate ou Linguastream facilite la mise en oeuvre de telles chaînes. Ce cours est axé sur la découverte pratique de telles plateformes et l'intégration de différents modules dans des applications. Nous montrons également comment ces chaînes sont mises en oeuvre dans l'industrie du traitement des langues naturelles.
Représentation des connaissances 2
L'objectif du cours est d'offrir aux étudiants une compréhension globale de la représentation des connaissances dans le cadre du Web et en particulier du Web Sémantique. Cette représentation concerne une approche logique symbolique et déclarative.
Dans un premier temps, nous présentons la notion d'ontologie telle qu'est considérée dans le domaine des sciences de l'information et de l'intelligence artificielle. Nous considérons que les notions de réseaux sémantiques et de frames (cadres de Minsky) ont été abordées lors du module de représentation des connaissances 1 du M1.2 linguistique. Nous pouvons alors motiver le domaine des logiques de descriptions, fondement du formalisme adopté pour les ontologies et bases de connaissances du Web Sémantique. Cette partie aborde les relations avec d'autres formalismes logiques de la représentation des connaissances (logique propositionnelle et logique du premier ordre) et la notion de raisonnement avec deux principales méthodes: algorithme structurel de subsomption et la méthode des tableaux.
La seconde partie du cours fait le lien entre les notions précédentes et les technologies proposées dans le cadre du Web Sémantique. Il s'agit de RDF et RDFS, qui permettent de définir des ontologies simples et peu expressives dans un formalisme proche des réseaux sémantiques, et des langages OWL, qui permettent de définir des ontologies avec le formalisme des logiques de descriptions. Le langage de requête SPARQL sera également étudié.
Les travaux dirigés de ce module exploitent les outils (open-source) suivants :
- l'éditeur d'ontologies et de bases de connaissances Protégé
- le framework Java des technologies du Web Sémantique de HP: Jena
- le raisonneur Pellet qui exploite la méthode des tableaux, propose de nombreuses fonctionnalités complémentaires et un ensemble de bibliothèques Java