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, ...
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
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
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
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
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 ?
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
pi , j=tf i , j∗log
df i
39. Pondération par TF-IDF (4)
Exemple
N
pi , 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)
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