Documents textuels et ingénierie linguistique Thème du cours ● ● ● Montrer des techniques informatiques pour trouver, classer, extraire l'information dans des masses de données textuelles Combiner des techniques « classiques » avec des techniques de l'ingénierie linguistique Applications: – recherche de documents (ex. google) – filtrage et classification de documents (ex. antispam) – extraction d'information (ex. qui est le president colombien ?) – résumé automatique, traduction, ... Cours pluridisciplinaire ● ● mathématique et informatique : – algorithmique, – formalismes, – probabilités, ... linguistique : – ressources (dictionnaires, grammaires) – annotation, ... Organisation ● Cours complémentaire de celui d'Eric Laporte (ingénierie linguistique par la linguistique) ● notre cours: vision applicative avec approches hybrides ● 6h de cours ● 8h de TD/TP ● Projet: antispammer ? INTRODUCTION GENERALE Constat de départ Augmentation exponentielle du nombre de documents electroniques textuels disponibles ● – pages web (internet) – courriels, SMS – documents d'entreprises, ... Documents en général non structurés => pas moyen d'obtenir des informations de manière simple ● Solutions ● ● Solutions: – Indexer les documents – Classer les documents – Structurer les documents – ... travail manuel vs. automatique Approche purement informatique (1) ● ● on ne s'intéresse qu'à la forme graphique – un texte = une séquence de mots ou un sac de mots – mot = une séquence de lettres technique basique – répertorier les mots, les compter – répertorier leurs contextes gauche et droite, compter – utiliser des formules de la théorie de l'information, pour mettre en relation ● ● ● les mots et les documents les documents entre eux les mots entre eux Approche purement informatique (2) ● ● Avantages : – simplicité d'implémentation – rapidité d'exécution Limitations : – ● est-ce qu'on est capable d'aller très loin, si on cherche des informations précises ? Opérations sur les documents : – indexation [ok] – classification [ok] – structuration [quelle précision ??] Ingénierie linguistique (1) ● construire ou utiliser des processus informatiques pour déterminer les informations linguistiques dans un texte : – informations grammaticales (ex. catégorie: nom, verbe, etc.) – informations morphologiques (ex. le genre et le nombre d'un nom, le temps d'un verbe) – informations syntaxiques (ex. regroupement de mots, determiner le sujet, le verbe, les complements) – informations sémantiques (déterminer le sens) ... Ingénierie linguistique (2) ● ● Avantage d'une combinaison avec outils classiques: – meilleure connaissance du texte – donc potentielle meilleure exploitation informatique du texte – extraction d'informations (plus) précises Limitations: – temps d'exécution – outils existants pas toujours performants – difficulté à mettre en oeuvre – ressources linguistiques nécessaires parfois limitées Plan du cours ● 3 cours de 2h (=> 6h) ● Description d' applications ● – recherche de documents (indexation) – classification de documents – extraction d'information Implantations réelles en TD – 3 TD/TP pour manipuler les notions vues en cours – projet: antispammer – 1 TD/TP de suivi de projet Quelques termes de linguistique ● phrase : M. Dupond a mangé 12 pommes dans les bois. C'est chouette ! ● token : M,., Dupond, a, mangé, 12 ● forme fléchie : a, mangé, pommes, les ● forme canonique (lemme): avoir, manger, pomme, le ● racine : av, mang, pomm Quelques termes de linguistique ● catégorie grammaticale : les => déterminant, mangé => verbe ● synonyme : beau, joli; agression, attaque, violence ● dérivé : agression => agresser, agresseur ● hyperonyme : animal <= oiseau Quelques termes de linguistique ● constituant syntaxique simple (chunk) – constituant verbal (CV) : mangent, n'a pas mangé – constituant nominal (CN) : 12 pommes – constituant nominal prépositionnel (CNP): dans les bois [M. Dupond CN] [a mangé CV] [12 pommes CN] [dans les bois CP] sujet ● verbe tête du constituant a mangé => mangé 12 pommes => pommes cpt objet cpt cirscontanciel Quelques traitements linguistiques ● ● segmentation – en phrases: découper un texte en phrases – en tokens: découper un texte en tokens étiquetage morphosyntaxique assigner une catégorie grammaticale aux mots du texte (+ autres informations: genre, nombre) ● analyse syntaxique superficielle (chunking) regrouper les mots en consituants simples et extraire leur tête Quelques traitements linguistiques ● analyse syntaxique : déterminer les constituants syntaxiques et leurs fonctions syntaxiques dans la phrase Références principales du cours ● ● Ruslan Mitkov, The Oxford Handbook of Computational Linguistics, Oxford University Press, 2003 divers cours sur le web RECHERCHE DOCUMENTAIRE ET REPRESENTATION DES TEXTES Objectif ● Objectif Etant donnée une requête, le système doit renvoyer une liste de documents textuels, triée par ordre de pertinence par rapport à la requête ● Types de documents – spécialisés, avec des meta-données (mini-structure) [ex. bibliothèque] – hétérogènes, non structurés [ex. web] – etc. plan ● Partie I: Techniques de recherche documentaire ● Partie II: Indexation et pré-traitements linguistiques ● Partie III: « pré- traitement » de la requête Partie I Techniques de recherche documentaire Processus général ● ● Processus « offline » : – pré-traitement des textes – construction de l'index et de la représentation des textes Processus « on-line » – préfiltrage des documents – calcul de la pertinence de chacun de ces documents par rapport à la requête (si possible) – tri des documents dans l'ordre décroissant de pertinence (si possible) Systèmes booléens (1) ● Les requêtes : mots-clés reliés par des opérateurs logiques booléens (ex. AND, OR, NOT) (automobile OU vehicule OU voiture) AND NOT Renault ● Souvent utilisés sur les sites commerciaux Systèmes booléens (2) ● ● Avantage: – sémantique précise (représentation booléenne) – efficacité computationnelle Limitations: – décisions binaires (pas de réponse graduée) – pas toujours évident pour un utilisateur de traduire ses besoins sous la forme d'une requête avec opérateurs booléens Systèmes avec représentation par espaces vectoriels ● document ou requête est une séquence de mots ● représentation sous la forme d'un vecteur ● ● chaque élément du vecteur est un réel qui correspond au poids d'un mot donné dans le document ou la requete calcul du poids d'un mot basé sur les fréquences d'occurrence Exemple Documents : (1) Les enfants aiment les voitures bleues et les voitures rouges. (2) Les voitures bleues sont mieux vendues que les rouges. les (1) 3 enfants aiment voitures bleues et rouges sont mieux vendues que 1 1 2 1 1 1 0 0 0 0 les 2 enfants aiment voitures bleues et rouges sont mieux vendues que 1 0 1 1 0 1 1 1 1 1 (2) ici: composante= fréquence dans le document Systèmes avec représentation par espaces vectoriels (2) pertinence et cosinus ● ● ● Le cosinus permet de calculer l'angle entre deux vecteurs, soit comparer leur direction; Comme documents et requêtes sont des vecteurs, on peut calculer leur proximité par leur cosinus La valeur du cosinus est normée (entre 0 et 1, car les composantes sont positives) – si le cosinus tend vers 1 => les deux documents sont proches – si le cosinus tend vers 0 => les deux documents sont éloignés Exemple ● Requête = enfants voitures les 0 ● enfants aiment voitures bleues et rouges 1 0 1 0 0 0 Document les 3 ● enfants aiment voitures bleues et rouges 1 1 2 1 1 1 Cosinus: p document , requete= 0∗31∗10∗11∗20∗10∗10∗1 =0.5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 1 0 1 0 0 0 ∗3 1 1 2 1 1 1 Systèmes avec représentation par espaces vectoriels (3) ● la pertinence d'une requête par rapport à un document n'est pas binaire (ex. cosinus entre vecteurs) ● Amélioration de la précision de la réponse du système ● Simplicité et popularité du modèle Partie II Indexation Difficulté ● indexation de tous les mots => pas toujours très intéressant: ● perte de précision ; ● besoin de beaucoup de mémoire solution : indexer les mots-clés/termes (les mots importants) des textes ● Problème: comment déterminer l'importance d'un mot dans un texte ? ● Exemple (meilleure précision) ● Requête = enfants voitures les 0 ● enfants aiment voitures bleues et rouges 1 0 1 0 0 0 Document les 3 ● enfants aiment voitures bleues et rouges 5 1 10 1 1 1 Cosinus: p document , requete= 1∗50∗11∗100∗10∗1 =0.94 2 2 2 2 2 2 2 2 2 2 1 0 1 0 0 ∗ 5 1 10 1 1 Exemple (moins de mémoire) ● D1:Luc aime les champignons. ● D2: Les champignons sont très dangereux. ● Index: Luc => D1; aime=> D1; les => D1; Les => D2; champignons=> D1,D2; sont=>D2; très=>D2; dangereux=>D2; Exemple (moins de mémoire) ● D1: Luc aime les champignons. ● D2: Les champignons sont très dangereux. ● Index allégé: luc => D1; aime=> D1; champignons=> D1,D2; sont=>D2; dangereux=>D2; Pré-traitements simples exemples ● segmentation des textes en mots ● les mots indexés sont mis en minuscule Les => les ● les lettres accentuées sont transformées en lettres non accentuées très => tres Pondération par TF-IDF ● Idée: – la fréquence d'un terme dans un document peut donner une idée de son importance, mais – les termes qui apparaissent dans beaucoup de documents ne sont pas très utiles pour discriminer la pertinence ou la nonpertinence d'un document Pondération par TF-IDF (2) ● ● calcul du poids p(i,j) du terme i dans le document j basé sur la mesure TF-IDF Formule: – tf(i,j) = fréquence d'apparition du terme i dans le document j – df(i) = nombre de documents contenant i – N = nombre de documents pi , j=tf i , j∗log N df i Pondération par TF-IDF (4) Exemple pi , j=tf i , j∗log ● ● N df i N = 100 un mot très fréquent dans un texte (ex. 10 occurences), mais présent dans beaucoup de documents (ex. 80 textes) p = 1.0 ● un mot peu fréquent dans un texte (ex. 2 occurences), mais présent dans peu de textes (ex. 5) p = 6.0 Pondération par TF-IDF (6) ● ● Avantage: – facile à implémenter – marche assez bien (pour l'anglais notamment) – d'autres mesures similaires Limitation – basé uniquement sur des fréquences => ça a forcément des ratés – pas toujours efficace pour toutes les langues (langues très fléchies par exemple) Prétraitements linguistiques mots pleins vs. mots grammaticaux ● ● mots pleins: – adjectifs, noms, verbes – portent la quasi-totalité du sens mots grammaticaux: – déterminants, pronoms, conjonctions, ... – ont moins d'impact pour déterminer de quoi parle un texte Prétraitements linguistiques mots pleins vs. mots grammaticaux (2) ● Conséquence: – les mots grammaticaux sont souvent supprimés de la représentation du texte et de l'index => la taille des représentations diminue, donc l'efficacité augmente ● Deux méthodes: – filtrage par liste de « stopwords » (ex. mots grammaticaux, mots très fréquents) – filtrage après application d'un étiqueteur morphosyntaxique Filtrage par liste de « stopwords » ● Utiliser une liste de mots grammaticaux: le, la, les, un, une, des, ... et, ou, donc, or, ... ● Tout mot de cette liste ne sera pas indexé quand il apparaitra dans un texte Filtrage par liste de « stopwords » (2) ● Limitation: ne traite pas l' ambiguité selon le contexte, certains mots ont des sens différents la (note de musique) or (métal) Filtrage après etiquetage morphosyntaxique ● Etiquetage morphosyntaxique: Elle_PRO a_V également_ADV fait_V savoir_V lundi_ADV qu'_CONJ elle_PRO ne_ADV nommerait_V pas_ADV de_PREP Premier_A ministre_N par_PREP intérim_N dans_PREP les_DET quatre_DET ou_CONJ cinq_DET prochains_A jours_N. ● Puis filtrage des mots grammaticaux a_V fait_V savoir_V nommerait_V Premier_A ministre_N intérim_N prochains_A jours_N. Regroupement morphologique des mots par racinisation et lemmatisation ● priver, privent, priva forment un même groupe morphologique ● et pourquoi pas: privation ● Solutions: – racinisation – raciniseurs traditionnels (Porter): + efficace, - précis ● raciniseur plus linguistique: - efficace, + précis lemmatisation ● Problème de la racinisation ● sur-racinisation il y a des groupes morphologiques différents qui ont la même racine (=> bruit) instituteur, institutrice, institution => institut ● sous-racinisation il y a des mots d'un même groupe morphologique qui ont des racines différentes (=> silence) acquire, acquiring, acquired => acquir acquisition => acquis lemmatisation -? pas de mots dérivés dans le même groupe morphologique active, activa, activons => activer activations, activation => activation + pas de groupes différents qui ont le même lemme instituteurs; institutrice => instituteur institution, institutions => institution Repérage d'expressions multi-mots ● Les mots composés – filtrage: à peine.ADV ● un grand nombre de.DET ● à proximité de.PREP ● – plus de précision que les mots pris séparement maison blanche ● fil rouge ● Repérage d'expressions multi-mots (2) ● les constituants simples => extraction de la tête lemmatisée a beaucoup surpris_CV => surprendre les agressions successives_CN => agression ● entités nommées : Jacques Chirac, Fédération Française de Football Repérage d'expressions multi-mots (3) ● les collocations: séquences de mots qui ont tendance à apparaître ensemble, pas forcément des constituants simples réaliser un souhait; construire un barrage ● reconnaissance de variations d'une même expression multi-mot malignancy in orbital tumours = malignant tumours ● On donne un poids plus grand aux expressions multi-mots par rapport au poids de leurs constituants : poids (m1 m2) > poids(m1) + poids(m2) Exemple Document: Les jeunes aiment payer avec leur carte bleue. Prétraitement: jeune;aimer;payer;carte;carte bleue jeune aimer 5 1 payer 3 carte 5 carte bleue 10 Problèmes des prétraitements linguistiques ● ● précision des outils linguistiques pas toujours au rendez-vous efficacité: plus l'information linguistique est précise, plus c'est coûteux en temps Exemple: l'analyse profonde d'une phrase d'une vingtaine de mots prend au moins 1s. Lacunes de l'indexation basée sur les termes ● polysémie: on retrouve des documents non pertinents (bruit) peine (SENTIMENT, JUSTICE, ...) ● synonymie: on ignore des documents pertinents (silence) claque = gifle Solution Indexation basée sur des concepts abstraits ● ● ● Indexation basée sur des concepts abstraits pour rechercher une correspondance de concepts et non de termes un concept abstrait est défini par plusieurs termes (permet de gérer la synonymie) un terme peut exprimer plusieurs concepts abstraits (permet de gérer la polysémie) Indexation Sémantique Latente ● ● ● ● Idée de base : il existe une sémantique sous-jacente à une collection de textes Méthode : projection de la représentation d'un document basée sur les termes en une représentation basée sur des concepts abstraits Difficulté : dégager des concepts à partir d'éléments plus primitifs (les mots) Technique : utiliser la décomposition d'une matrice en élements singuliers (SVD) Indexation Sémantique Latente (2) ● Soit M matrice termes-documents de dimension m x d ● M(i,j) est le poids du mot i dans le document j ● colonne = espace vectoriel d'un document ● Objectif: réduire l'espace de représentation – obtenir une projection de l'espace vectoriel d'un document (par termes) dans un espace conceptuel de dimension k (par concepts) avec k petit => obtenir une matrice Vk de dimension d x k représentant tous les documents dans l'espace conceptuel Indexation Sémantique Latente (3) Décomposition en valeurs singulières ● Décomposition en valeurs singulières (SVD): M =U . .V T ● M : matrice termes-documents de dimension m x d ● U : matrice de dimension m x d ● : matrice diagonale de dimension d x d avec > j pour i < j ● VT : matrice de dimension d x d i Indexation Sémantique Latente (4) Décomposition en valeurs singulières ● Décomposition en valeurs singulières (SVD): M mxd = VT U mxd dxd dxd Indexation Sémantique Latente (6) Réduction de l'espace k Mk mxd = V kT Uk mxk kxk kxd ● Mk : matrice « termes-documents » approchée de M ● Uk : matrice « termes-concepts » de dimension m x k ● Vk : matrice « documents-concepts » de dimension d x k Indexation Sémantique Latente (7) ● ● La nouvelle matrice est Vk : représentation des documents dans l'espace vectoriel conceptuel de dimension k. Pour comparer les documents avec la requête, il s'agit maintenant de projeter la requête dans l'espace conceptuel réduit à k, par la formule : T −1 k q k =q U k Indexation Sémantique Latente (8) ● ● Avantage: – méthode purement mathématique – réduction de l'espace – augmentation de la précision Limites: – pré-traitements lourds – traitement plus important de la requête (projection de la requête dans l'espace conceptuel) Pre-traitement des requêtes Traitements linguistiques ● ● On effectue une partie des pré-traitements linguistiques effectués lors de l'indexation : – repérage des mots – racinisation ou lemmatisation – repérage des expressions multi-mots Exemple: – enfants voitures => enfant;voiture – culture pomme de terre => culture;pomme;terre;pomme de terre Expansion automatique de la requête ● Il est possible d'étendre les requêtes avec les synomymes des mots de la requête (utilisation de dictionnaires de synonymes) agression ville => agression, agressivité, violence agglomération;bourg; commune;village;ville ● Mais cela donne des résultats pas toujours très bons Expansion automatique de la requête (2) Problèmes ● ambiguité de sens: peine (JUSTICE ou SENTIMENT ou ...) peine = châtiment, peine, punition, sanction peine = abattement, affliction, ennui, peine, tristesse peine = difficulté,labeur ● Solution: lever l'ambiguité au moyen des autres mots de la requête qui donnent un petit contexte Solution limitée car elle dépend de la taille de la requête Expansion automatique de la requête (3) Problèmes ● Deux synonymes ont le plus souvent des petites différences de sens Exemple: ville ; agglomération ; bourg ; village ● Deux synonymes ne s'emploient pas toujours dans le même contexte Expansion semi-automatique de la requête ● ● Quand elle est trop générale, la requête a besoin d'être raffinée Une solution : le système fournit aux utilisateurs des propositions de termes à rajouter à la requête – à l'aide d'un historique de requêtes – à l'aide d'une base de termes indiquant les meilleurs cooccurrents (pre-calculée) [cf. cours suivants] Prochain cours ● un TP : manipulation pratique des notions vues en cours – pré-traitement non-linguistique de textes – pré-traitement linguistique de textes – calcul de la pertinence d'un document textuel par rapport à une requête