Traitement des langues naturelles Eric Laporte Institut GaspardMonge

  • Slides: 26
Download presentation
Traitement des langues naturelles Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France http: //www-igm.

Traitement des langues naturelles Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France http: //www-igm. univ-mlv. fr/~laporte/

Objectifs du cours Introduction au domaine du traitement des langues Applications Notions fondamentales Présentation

Objectifs du cours Introduction au domaine du traitement des langues Applications Notions fondamentales Présentation de la filière linguistique du master science informatique Compétences pratiques Utilisation de NLTK (logiciel libre) pour les modèles statistiques Programmation en Python, langage à objets interprété Utilisation d'Unitex (logiciel libre) pour les modèles linguistiques Projet Indexation de documents par distance sémantique (NLTK) Enseignants Eric Laporte, Matthieu Constant

Applications Recherche d'informations, moteurs de recherche Extraction d'informations Gestion de contenus multilingue Vérification et

Applications Recherche d'informations, moteurs de recherche Extraction d'informations Gestion de contenus multilingue Vérification et correction orthographique Génération de textes en langues naturelles (écrits, oraux) Dialogue homme-machine (écrit, oral) Traduction (écrit, oral) etc.

Modèles statistiques Un document est constitué de mots (tokens-mots) Chaque token-mot peut apparaître un

Modèles statistiques Un document est constitué de mots (tokens-mots) Chaque token-mot peut apparaître un certain nombre de fois En général l'ordre dans lequel apparaissent les tokens-mots n'est pas pris en compte (sac de mots) Utilisation de la théorie des probabilités Exemple : - probabilité que base apparaisse dans un document - probabilité que données apparaisse dans un document - probabilite que base et données apparaissent dans un document

Modèles linguistiques Phrase Mot Propriétés des mots : par exemple, possibilités de combinaison avec

Modèles linguistiques Phrase Mot Propriétés des mots : par exemple, possibilités de combinaison avec d'autres mots Structures des phrases Ambiguïté : par exemple, site Utilisation de notions linguistiques Exemple : base de données est un mot avec des propriétés spécifiques part-of-speech="noun" grammatical-gender="feminine" number="singular"

Filière linguistique du master de science informatique Enseignements Traitement statistique des documents et moteurs

Filière linguistique du master de science informatique Enseignements Traitement statistique des documents et moteurs de recherche Codage formel et propriétés linguistiques Outils informatiques de l'analyse de textes Transducteurs pour le traitement des langues Produits : Unitex, Outilex Sujets de stages et thèses Analyse syntaxique par méthodes linguistiques Intégration de nouvelles langues ou fonctionnalités à Unitex Méthodes hybrides Equipe 5 permanents dont 2 linguistes 2 doctorants + 8 à l'extérieur

Traitement statistique des documents et moteurs de recherche Matthieu Constant, Dominique Revuz Etiquetage probabiliste

Traitement statistique des documents et moteurs de recherche Matthieu Constant, Dominique Revuz Etiquetage probabiliste Extraction de termes Extraction de constructions syntaxiques Architecture des moteurs de recherche Indexation manuelle/indexation automatique en texte intégral Classification de documents

Codage formel et propriétés linguistiques Tita Kyriacopoulou Aspects linguistiques de la gestion des lexiques

Codage formel et propriétés linguistiques Tita Kyriacopoulou Aspects linguistiques de la gestion des lexiques électroniques Structuration des lexiques par DTD (définition de type de document) Modélisation et formalisation de phénomènes linguistiques - flexion des mots simples et des mots composés - représentation des ambiguïtés - description des phénomènes syntaxiques

Outils informatiques de l'analyse de textes Eric Laporte, Sébastien Paumier Algorithmes et formats de

Outils informatiques de l'analyse de textes Eric Laporte, Sébastien Paumier Algorithmes et formats de données pour l'analyse par méthodes linguistiques Unitex et Outilex Architecture et utilisation Réseaux récursifs de transitions (RTN) pour la description des grammaires ; algorithmique associée Aspects informatiques de la gestion de lexiques Formalismes de levée d'ambiguïté lexicale et leurs propriétés du point de vue de la gestion des ressources linguistiques Algorithmes d'unification

Transducteurs pour le traitement des langues Eric Laporte Transducteurs finis : définition, utilisations Application

Transducteurs pour le traitement des langues Eric Laporte Transducteurs finis : définition, utilisations Application glissante d'un transducteur Transducteurs ambigus Modèles de Markov cachés

Filière communication du master d'ingénierie informatique Enseignements Traitement des langues naturelles Traitement statistique des

Filière communication du master d'ingénierie informatique Enseignements Traitement des langues naturelles Traitement statistique des documents et moteurs de recherche Production multimédia Sujets de stages Extraction d'informations Développement : conception multimédia Entreprises Marché européen : 610 millions d'euros en 2004 70 % sur l'écrit et 30 % sur la voix France : 109 sociétés en 2005 dont 20 dans le coeur de marché

Projet 2007 -2008 Objectifs Indexation de documents par des mots-clés Proximité sémantique : si

Projet 2007 -2008 Objectifs Indexation de documents par des mots-clés Proximité sémantique : si beaucoup de mots ayant un "sens proche" apparaissent dans un document, ce sont de bons mots-clés Exemple : musique/concert Matrices de distances sémantiques en 3 langues Travail demandé Apprentissage de distances sémantiques à partir de corpus de textes Procédure de mise à jour des matrices en fonction de l'évolution des corpus Extraction de mots-clés Projet inspiré d'un besoin applicatif L'entreprise récompensera un projet

Niveaux de complexité Tokens Morpho-syntaxique Syntaxico-sémantique Pragmatique

Niveaux de complexité Tokens Morpho-syntaxique Syntaxico-sémantique Pragmatique

Tokens $ wc idees. txt extrait. txt 40 149 947 idees. txt 2294 16638

Tokens $ wc idees. txt extrait. txt 40 149 947 idees. txt 2294 16638 97724 extrait. txt 2334 16787 98671 total Lignes, mots, caractères Mot (au sens typographique) : token-mot Connaissances : qu'est-ce qu'un mot ? Découper un texte en éléments simples

Niveau morpho-syntaxique Un robot parlant français doit pouvoir produire Je vais fermer l'autre porte

Niveau morpho-syntaxique Un robot parlant français doit pouvoir produire Je vais fermer l'autre porte et non * Je vais fermer la autre porte et doit savoir conjuguer Je vais, Il va, Nous allons. . . Variations de forme et propriétés des mots

Niveau syntaxico-sémantique Le robot doit pouvoir distinguer les ordres et les questions Ferme toutes

Niveau syntaxico-sémantique Le robot doit pouvoir distinguer les ordres et les questions Ferme toutes les autres portes Toutes les portes sont-elles fermées ? Il doit savoir que * autre fermer je l'porte vais n'a pas de sens, bien qu'elle contienne les mêmes mots Structure et sens des phrases

Niveau pragmatique Le robot doit pouvoir répondre Non, je ne peux pas au lieu

Niveau pragmatique Le robot doit pouvoir répondre Non, je ne peux pas au lieu de Non, je ne fermerai pas les autres portes Non, je ne le ferai pas Comment s'exprimer pour atteindre un objectif

Tokenisation Tokens : éléments simples d'un texte écrit Passer d'une séquence de caractères à

Tokenisation Tokens : éléments simples d'un texte écrit Passer d'une séquence de caractères à une séquence de tokens Je vais fermer l'autre porte /Je/vais/fermer/l/'/autre/porte/ Définition des tokens Les mots délimités par des espaces ? /l'autre/ /autre, / Certains symboles - peuvent gêner la comparaison entre mots - peuvent avoir une importance en eux-mêmes /l/'/autre/, / Tokens-mots et tokens-non-mots

Tokenisation Définition par les délimiteurs Simple Fournit seulement les tokens-mots Définition par les tokens

Tokenisation Définition par les délimiteurs Simple Fournit seulement les tokens-mots Définition par les tokens Fournit les tokens-mots et les tokens-non-mots Permet de séparer 2 tokens sans délimiteur. Ex. : 60%, 1970 s, G 8 Dans les deux cas, expressions rationnelles [^ws] un symbole de ponctuation w+ une séquence d'1 ou plusieurs caractères alphanumériques d+ une séquence d'1 ou plusieurs chiffres

Algorithme de tokenisation Entrées : le texte, séquence de caractères ; une ou plusieurs

Algorithme de tokenisation Entrées : le texte, séquence de caractères ; une ou plusieurs expressions rationnelles définissant les tokens Sorties : une séquence de tokens tant que le texte n'est pas fini { pour chaque expression rationnelle { appliquer l'expression au texte en allant le plus loin possible marquer dans le texte la position obtenue } si aucune marque alors passer au caractère suivant sinon { conserver seulement la marque la plus à droite copier sur la sortie depuis le caractère courant jusqu'à la marque prendre comme caractère courant le caractère marqué } }

Algorithme de tokenisation Je vais fermer l'autre porte | | ^ | | |

Algorithme de tokenisation Je vais fermer l'autre porte | | ^ | | | ^ vais | |. . . Je

Expressions rationnelles Notations en grep, sed, vi, emacs, flex, perl, python. . . Détails

Expressions rationnelles Notations en grep, sed, vi, emacs, flex, perl, python. . . Détails des conventions différents pour chaque programme [0123456789] 0|1|2|3|4|5|6|7|8|9 [0 -9] 0|1|2|3|4|5|6|7|8|9 [^a-z. A-Z] 1 caractère autre que [a-z. A-Z] CLEF? CLE|CLEF [0 -9]+ [0 -9]*. 1 caractère autre que fin de ligne (n) ^Le "Le" si placé en début de ligne dernier$ "dernier" si placé en fin de ligne |()*[? +. ^$\ |()*[? +. ^$

Expressions rationnelles Notation en python s w d 1 espace, fin de ligne ou

Expressions rationnelles Notation en python s w d 1 espace, fin de ligne ou tabulation 1 caractère alphanumérique 1 chiffre

Le tokeniseur de NLTK >>> from nltk_lite import tokenize >>> phrase = "Je vois

Le tokeniseur de NLTK >>> from nltk_lite import tokenize >>> phrase = "Je vois l'autre. " >>> list(tokenize. regexp(phrase, "[^s]+") ['Je', 'vois', "l'autre. "] >>> Pour ne pas mélanger les types de caractères dans un token : >>> list(tokenize. regexp(phrase, "[w]+|[^sw]") ['Je', 'vois', 'l', "'", 'autre', '. '] >>>

Codage des tokens Objectifs de la normalisation Faciliter l'échange de données et d'outils Formats

Codage des tokens Objectifs de la normalisation Faciliter l'échange de données et d'outils Formats lisibles, pas toujours adaptés au traitement direct Les normes sont discutées par des experts variés Elles sont compatibles avec des théories variées Norme en construction Organisation internationale de normalisation (ISO) Elément token: attribut value, attribut id, contenu textuel <token value="par" id="t 8">par</token> <token value="page" id="t 9">page</token> Attribut value: peut représenter une forme sous-jacente <token value="de" id="t 5">d</token><token value="le" id="t 6">u</token>

Format des fichiers Unitex pour le codage des textes Unitex: outil logiciel libre pour

Format des fichiers Unitex pour le codage des textes Unitex: outil logiciel libre pour l'analyse de textes par lexique (Sébastien Paumier, Université de Marne-la-Vallée) Formats adaptés au traitement par lexique Référence : manuel en français, anglais tokens. txt, liste des tokens du texte, sans répétitions 0000073572 Au lecteur Glória Kreinz text. cod, fichier binaire équivalent au texte: chaque token est représenté par un numéro déduit de la position du token dans le fichier précédent Numéros codés sur 4 octets, à partir de zéro