SlideShare a Scribd company logo
1 of 69
Download to read offline
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        cpt objet     cpt cirscontanciel

●   tête du constituant

    a mangé => mangé
    12 pommes => pommes
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      enfants aiment voitures bleues et rouges sont mieux vendues que
(1)
     3          1      1       2       1    1    1     0     0      0     0


(2)    les   enfants aiment voitures bleues et rouges sont mieux vendues que
        2       1      0       1       1    0    1     1     1      1     1


                 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   enfants aiment voitures bleues et rouges
               0       1      0       1       0    0    0


   ●   Document

              les   enfants aiment voitures bleues et rouges
               3       1      1       2       1    1    1


       ●   Cosinus:
                                    0∗31∗10∗11∗20∗10∗10∗1
p  document , requete=                                                    =0.5
                            0 1 0 1 0 0 0 ∗3 1 1 2 1 1 1 
                               2  2  2  2  2  2  2     2  2  2  2  2  2  2
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   enfants aiment voitures bleues et rouges
            0       1      0       1       0    0    0


●   Document

           les   enfants aiment voitures bleues et rouges
            3       5      1      10       1    1    1


    ●   Cosinus:
                                 1∗50∗11∗100∗10∗1
p  document , requete=                                       =0.94
                            1 0 1 0 0 ∗ 5 1 10 1 1
                              2  2  2  2  2    2  2   2  2   2
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 non-
         pertinence 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


                                                N
                    pi , j=tf i , j∗log
                                              df i
Pondération par TF-IDF (4)
                          Exemple
                                              N
                  pi , j=tf i , j∗log
                                            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    payer   carte   carte bleue
     5     1        3       5         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):
                              T
                M =U .  .V


●   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
                                                   i
●   VT : matrice de dimension d x d
Indexation Sémantique Latente (4)
       Décomposition en valeurs singulières

●   Décomposition en valeurs singulières (SVD):



                                                 VT
               M        =      U




            mxd             mxd         dxd        dxd
Indexation Sémantique Latente (6)
               Réduction de l'espace
                                  k          V kT

         Mk       =    Uk




      mxd             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
                          q k =q U k  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

More Related Content

Similar to Lsi

N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSN. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSOpenEdition
 
4-Recherche d'information.pdf
4-Recherche d'information.pdf4-Recherche d'information.pdf
4-Recherche d'information.pdfRihabBENLAMINE
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresRobert Viseur
 
Fondements ri ars
Fondements ri arsFondements ri ars
Fondements ri arsMulhem
 
Les technologies TAL et le futur du SEO
Les technologies TAL et le futur du SEOLes technologies TAL et le futur du SEO
Les technologies TAL et le futur du SEOSEO Camp Association
 
Modèles de données et langages de description ouverts 2021-2022 - 1
Modèles de données et langages de description ouverts   2021-2022 - 1Modèles de données et langages de description ouverts   2021-2022 - 1
Modèles de données et langages de description ouverts 2021-2022 - 1François-Xavier Boffy
 
Collatinus : Lemmatiser et analyser des textes latins
Collatinus : Lemmatiser et analyser des textes latinsCollatinus : Lemmatiser et analyser des textes latins
Collatinus : Lemmatiser et analyser des textes latinsEquipex Biblissima
 
Tic recherche-scientifique
Tic recherche-scientifiqueTic recherche-scientifique
Tic recherche-scientifiquelazoumi ouarfli
 
Modèles de données et langages de description ouverts 5 - 2021-2022
Modèles de données et langages de description ouverts   5 - 2021-2022Modèles de données et langages de description ouverts   5 - 2021-2022
Modèles de données et langages de description ouverts 5 - 2021-2022François-Xavier Boffy
 
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiers
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiersGroupe de Réflexion et de Production Lycée professionnel et lycée des métiers
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiersDocumentation Rouen
 
Multilingual Dependency Parsing from Raw Text to Universal Dependencies
Multilingual Dependency Parsing from Raw Text to Universal DependenciesMultilingual Dependency Parsing from Raw Text to Universal Dependencies
Multilingual Dependency Parsing from Raw Text to Universal DependenciesChristophe Moor
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
Conf mapcolldoct24.05
Conf mapcolldoct24.05Conf mapcolldoct24.05
Conf mapcolldoct24.05map8slide
 
Cartographier les flux editoriaux bfr consultants
Cartographier les flux editoriaux bfr consultantsCartographier les flux editoriaux bfr consultants
Cartographier les flux editoriaux bfr consultantsBéatrice Foenix-Riou
 

Similar to Lsi (20)

N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSN. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
 
Indexation et ri
Indexation et riIndexation et ri
Indexation et ri
 
4-Recherche d'information.pdf
4-Recherche d'information.pdf4-Recherche d'information.pdf
4-Recherche d'information.pdf
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libres
 
Fondements ri ars
Fondements ri arsFondements ri ars
Fondements ri ars
 
Les technologies TAL et le futur du SEO
Les technologies TAL et le futur du SEOLes technologies TAL et le futur du SEO
Les technologies TAL et le futur du SEO
 
Word Embedding
Word EmbeddingWord Embedding
Word Embedding
 
Modèles de données et langages de description ouverts 2021-2022 - 1
Modèles de données et langages de description ouverts   2021-2022 - 1Modèles de données et langages de description ouverts   2021-2022 - 1
Modèles de données et langages de description ouverts 2021-2022 - 1
 
Deck 11
Deck 11Deck 11
Deck 11
 
les techniques TALN
les techniques TALNles techniques TALN
les techniques TALN
 
Vsst 2010 le_semiopole_26102010
Vsst 2010 le_semiopole_26102010Vsst 2010 le_semiopole_26102010
Vsst 2010 le_semiopole_26102010
 
Collatinus : Lemmatiser et analyser des textes latins
Collatinus : Lemmatiser et analyser des textes latinsCollatinus : Lemmatiser et analyser des textes latins
Collatinus : Lemmatiser et analyser des textes latins
 
Tic recherche-scientifique
Tic recherche-scientifiqueTic recherche-scientifique
Tic recherche-scientifique
 
Modèles de données et langages de description ouverts 5 - 2021-2022
Modèles de données et langages de description ouverts   5 - 2021-2022Modèles de données et langages de description ouverts   5 - 2021-2022
Modèles de données et langages de description ouverts 5 - 2021-2022
 
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiers
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiersGroupe de Réflexion et de Production Lycée professionnel et lycée des métiers
Groupe de Réflexion et de Production Lycée professionnel et lycée des métiers
 
Introduction à la fouille de textes et positionnement de l'offre logicielle
Introduction à la fouille de textes et positionnement de l'offre logicielleIntroduction à la fouille de textes et positionnement de l'offre logicielle
Introduction à la fouille de textes et positionnement de l'offre logicielle
 
Multilingual Dependency Parsing from Raw Text to Universal Dependencies
Multilingual Dependency Parsing from Raw Text to Universal DependenciesMultilingual Dependency Parsing from Raw Text to Universal Dependencies
Multilingual Dependency Parsing from Raw Text to Universal Dependencies
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Conf mapcolldoct24.05
Conf mapcolldoct24.05Conf mapcolldoct24.05
Conf mapcolldoct24.05
 
Cartographier les flux editoriaux bfr consultants
Cartographier les flux editoriaux bfr consultantsCartographier les flux editoriaux bfr consultants
Cartographier les flux editoriaux bfr consultants
 

Lsi

  • 1. Documents textuels et ingénierie linguistique
  • 2. 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, ...
  • 3. Cours pluridisciplinaire ● mathématique et informatique : – algorithmique, – formalismes, – probabilités, ... ● linguistique : – ressources (dictionnaires, grammaires) – annotation, ...
  • 4. 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 ?
  • 6. 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
  • 7. Solutions ● Solutions: – Indexer les documents – Classer les documents – Structurer les documents – ... ● travail manuel vs. automatique
  • 8. 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
  • 9. 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 ??]
  • 10. 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) ...
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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 cpt objet cpt cirscontanciel ● tête du constituant a mangé => mangé 12 pommes => pommes
  • 16. 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
  • 17. Quelques traitements linguistiques ● analyse syntaxique : déterminer les constituants syntaxiques et leurs fonctions syntaxiques dans la phrase
  • 18. Références principales du cours ● Ruslan Mitkov, The Oxford Handbook of Computational Linguistics, Oxford University Press, 2003 ● divers cours sur le web
  • 20. 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.
  • 21. plan ● Partie I: Techniques de recherche documentaire ● Partie II: Indexation et pré-traitements linguistiques ● Partie III: « pré- traitement » de la requête
  • 22. Partie I Techniques de recherche documentaire
  • 23. 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)
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. Exemple Documents : (1) Les enfants aiment les voitures bleues et les voitures rouges. (2) Les voitures bleues sont mieux vendues que les rouges. les enfants aiment voitures bleues et rouges sont mieux vendues que (1) 3 1 1 2 1 1 1 0 0 0 0 (2) les enfants aiment voitures bleues et rouges sont mieux vendues que 2 1 0 1 1 0 1 1 1 1 1 ici: composante= fréquence dans le document
  • 28. 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
  • 29. Exemple ● Requête = enfants voitures les enfants aiment voitures bleues et rouges 0 1 0 1 0 0 0 ● Document les enfants aiment voitures bleues et rouges 3 1 1 2 1 1 1 ● Cosinus: 0∗31∗10∗11∗20∗10∗10∗1 p  document , requete= =0.5  0 1 0 1 0 0 0 ∗3 1 1 2 1 1 1  2 2 2 2 2 2 2 2 2 2 2 2 2 2
  • 30. 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
  • 32. 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 ?
  • 33. Exemple (meilleure précision) ● Requête = enfants voitures les enfants aiment voitures bleues et rouges 0 1 0 1 0 0 0 ● Document les enfants aiment voitures bleues et rouges 3 5 1 10 1 1 1 ● Cosinus: 1∗50∗11∗100∗10∗1 p  document , requete= =0.94  1 0 1 0 0 ∗ 5 1 10 1 1 2 2 2 2 2 2 2 2 2 2
  • 34. 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;
  • 35. 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;
  • 36. 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
  • 37. 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 non- pertinence d'un document
  • 38. 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 N pi , j=tf i , j∗log df i
  • 39. Pondération par TF-IDF (4) Exemple N pi , j=tf i , j∗log 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
  • 40. 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)
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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)
  • 45. 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.
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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)
  • 52. Exemple Document: Les jeunes aiment payer avec leur carte bleue. Prétraitement: jeune;aimer;payer;carte;carte bleue jeune aimer payer carte carte bleue 5 1 3 5 10
  • 53. 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.
  • 54. 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
  • 55. 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)
  • 56. 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)
  • 57. 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
  • 58. Indexation Sémantique Latente (3) Décomposition en valeurs singulières ● Décomposition en valeurs singulières (SVD): T M =U .  .V ● 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 i ● VT : matrice de dimension d x d
  • 59. Indexation Sémantique Latente (4) Décomposition en valeurs singulières ● Décomposition en valeurs singulières (SVD):  VT M = U mxd mxd dxd dxd
  • 60. Indexation Sémantique Latente (6) Réduction de l'espace k V kT Mk = Uk mxd 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
  • 61. 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 q k =q U k  k
  • 62. 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)
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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]
  • 69. 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