Documents textuels et ingénierie linguistique

publicité
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∗31∗10∗11∗20∗10∗10∗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∗50∗11∗100∗10∗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
pi , j=tf i , j∗log
N
df i
Pondération par TF-IDF (4)
Exemple
pi , 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
Téléchargement