• Aucun résultat trouvé

Espaces vectoriels et recherche d'information

N/A
N/A
Protected

Academic year: 2022

Partager "Espaces vectoriels et recherche d'information"

Copied!
42
0
0

Texte intégral

(1)

Master 1 Informatique – Université Marne-la-Vallée (IGM) 05/02/2014 – Cours 2

Ingéniérie Linguistique

Espaces vectoriels et recherche d'information

Philippe Gambette

(2)

• Cours de Matthieu Constant, Ingéniérie Informatique 1

http://igm.univ-mlv.fr/ens/Master/M1/2010-2011/IngenierieLinguistique1/cours.php

• Cours de Jean Véronis, Informatique et Linguistique 1

http://sites.univ-provence.fr/~veronis/cours/INFZ18/veronis-INFZ18.pdf

Sources du cours

(3)

• Introduction

• Géométrie vectorielle

• Représentation des documents dans un espace vectoriel

• Recherche d'informations

Plan

(4)

• Introduction

• Géométrie vectorielle

• Représentation des documents dans un espace vectoriel

• Recherche d'informations

Plan

(5)

Recherche d'informations

• Une requête :

• en langue naturelle

→ Répondre à la question

• Sous forme de mots clés

→ Trouver des documents pertinents pour y répondre

Introduction

(6)

Requête en langue naturelle : Wolfram Alpha

Introduction

(7)

Requête par mots-clés : Google

Introduction

(8)

Requête en langue naturelle : Wolfram Alpha

Introduction

(9)

Requête par mots-clés : Google

Introduction

(10)

Sources

• Cours de Matthieu Constant, Ingéniérie Informatique 1

http://igm.univ-mlv.fr/ens/Master/M1/2010-2011/IngenierieLinguistique1/cours.php

• Cours de Marie Candito, Recherche d'information, RI et TAL

http://www.linguist.univ-paris-diderot.fr/~mcandito/Ens/RI/RI.RIetTAL.pdf

(11)

Plan

• Introduction

• Géométrie vectorielle

• Représentation des documents dans un espace vectoriel

• Recherche d'informations

(12)

Un espace à deux dimensions

• Une origine

• Deux axes perpendiculaires avec des unités

• Un point défini par deux coordonnées sur ces axes

Un vecteur dans un espace à deux dimensions

• Définition informelle : une direction, un sens et une distance

• Définition formelle : deux coordonnées sur les axes

Rappels sur les vecteurs en géométrie 2D

(13)

Coordonnées

Soit un vecteur u défini par ses coordonnées (ux,uy).

Norme

• Longueur du vecteur : |u| = ux²+uy² Produit scalaire

• Produit de deux vecteurs qui renvoie un nombre : u.v = uxvx+uyvy Cosinus

• Dépend de l'angle formé entre les deux vecteurs : cos(u,v) =

• Comprise entre -1 et 1 pour angles entre 0 et 2π

• Comprise entre 0 et 1 pour les angles entre 0 et π/2

Calculs sur les vecteurs

u.v

|u||v|

(14)

Généralisation à n dimensions

Coordonnées

Vecteur dans un espace à n dimensions : (u1,u2,... ,un).

Norme

• Longueur du vecteur : |u| = Σ ui² Produit scalaire

• Produit de deux vecteurs qui renvoie un nombre : u.v = Σ uivi Cosinus

• cos(u,v) =

n i=1

n i=1

u.v

|u||v|

(15)

Plan

• Introduction

• Géométrie vectorielle

• Représentation des documents dans un espace vectoriel

• Recherche d'informations

(16)

Modèle des espaces vectoriels

Représentation simple des textes

• Un texte est un sac de mots (il n'y a plus d'ordre !)

• On associe à chaque mot un poids (nombre réel), mesurant son

"importance" dans le texte

Application à la géométrie vectorielle

• Un texte est un vecteur dans un espace de grande dimension

• Chaque coordonnée correspond au degré d'importance d'un mot donné dans le texte

G. Salton, A. Wong, and C. S. Yang (1975), A Vector Space Model for Automatic Indexing, Communications of the ACM 18(11):613–620

(17)

Pondération des mots

Pondération naïve

• Poids binaire (1 si terme présent dans le document, 0 sinon)

• Fréquence du mot dans le document

Pondération plus intelligente

• On utilise des fonctions correctrices de la fréquence

• On prend aussi en compte la distribution du mot dans la collection où est plongée le texte

(18)

Pondération binaire

Collection de documents

d1 : we were anchored off an island in the bahamas

d2 : the couple traveled from island to island throughout the bahamas

Représentation vectorielle

d1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 d2 0 0 1 1 1 0 1 0 1 1 1 1 0 0

an anchored bahamas couple from in island off the throughout to traveled we were

(19)

Pondération selon le nombre d'occurrences

Collection de documents

d1 : we were anchored off an island in the bahamas

d2 : the couple traveled from island to island throughout the bahamas

Représentation vectorielle

d1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 d2 0 0 1 1 1 0 2 0 2 1 1 1 0 0

an anchored bahamas couple from in island off the throughout to traveled we were

(20)

Mesure TF.IDF

Principe

• On suppose que le texte traité est plongé dans une collection de documents

• Un mot pertinent d’un document apparaîtra plusieurs fois dans ce document

• Les mots non-pertinents sont distribués de manière homogène dans la collection

Exemple

terme cf df insurance 10440 3997 try 10422 8760

statistiques sur des articles du New York Times Manning et Schütze, 1999

(21)

Mesure TF.IDF

Fréquence des termes ou mots (TF)

tfi,j : fréquence du mot i dans le document j de la collection nombre d'occurrences du mot i dans le document j

normalisé par le nombre total de mots dans le document j Fréquence inverse de document (IDF)

idfi mesure l'importance d'un terme dans l'ensemble de la collection idfi = log

avec m le nombre total de documents de la collection

et D(i) le nombre de documents de la collection où le mot i apparaît Formule TF.IDF

Le poids di,j d'un mot i dans un document j est di,j = tfi,j . idfi m

D(i)

(22)

Représentation des documents en Python

Utilisation de dictionnaires

• clés : mots (dont le poids est non nul)

• valeurs : poids des mots

Classe Text et ses méthodes

• def getName(self)

• def getWordTokens(self)

• def getWeight(self,w) # w : un mot

• def cosine(self,t) # t : un Text

(23)

Exemple de code Python

# Calcul de la norme import math

class Text:

def norm (self):

n = 0

for w in self.getWordTokens():

n += self.getWeight(w) self.getWeight(w)∗ return math.sqrt(n)

(24)

Plan

• Introduction

• Géométrie vectorielle

• Représentation des documents dans un espace vectoriel

• Recherche d'informations

(25)

Recherche d'informations

Système de R.I.

collection de documents

liste de documents requête

(26)

Recherche d'informations

Principe

• L'utilisateur entre une requête décrivant une information qu'il cherche

• Le système renvoie une liste de documents pertinents par rapport à la requête

Deux approches

• Recherche exacte (ex. systèmes booléens)

• Recherche floue (ex. modèles à espaces vectoriels)

(27)

Recherche d'informations et modèles à espaces vectoriels

Représentation

Requêtes (des séquences de mots) et documents de la collection représentés sous la forme de vecteurs

Métaphore entre proximité spatiale et proximité sémantique

• Les documents les plus pertinents sont ceux qui ont les vecteurs les plus proches de celui de la requête

• Les documents les plus pertinents contiennent des mots similaires à ceux de la requête

→ La mesure de la pertinence d'une requête par rapport à un document consiste à comparer leurs vecteurs respectifs :

ex. cosinus de leur angle

(28)

Exemple de requête

Requête q : “island couple”

q 0 0 0 1 0 0 1 0 0 0 0 0 0 0 d1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 d2 0 0 1 1 1 0 2 0 2 1 1 1 0 0

Pertinence des documents de la collection : cos(q,d1) =

cos(q,d2) =

an anchored bahamas couple from in island off the throughout to traveled we were

(29)

Exemple de requête

Requête q : “island couple”

q 0 0 0 1 0 0 1 0 0 0 0 0 0 0 d1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 d2 0 0 1 1 1 0 2 0 2 1 1 1 0 0

Pertinence des documents de la collection : cos(q,d1)= 1/(1.41*3) = 0.2

cos(q,d2)= 3/(1.41*3.74) = 0.6

an anchored bahamas couple from in island off the throughout to traveled we were

(30)

Exemple de code Python

# Moteur de recherche

# collection.lst est un fichier

# contenant la liste des fichiers de la collection c = TextCollection('collection.lst')

while True :

query = raw_input('Enter a query :') print 'RESULT :'

print c.search(query,10)

(31)

Exemple de code Python

# Recherche des meilleurs documents class TextCollection:

def search(self,query,N):

q = Text(text=query) scores = {}

for t in self.getTexts():

score[t.getName()] = t.cosine(q) return sortScores(scores,N)

(32)

Évaluation des systèmes

Qualité d'un système de RI

Dans quelle mesure les documents pertinents sont retournés avant les documents non pertinents ?

Mesures traditionnelles

• précision : proportion de documents pertinents dans la liste retournée

• rappel : proportion de documents pertinents dans la collection qui sont dans la liste retournée (difficile à évaluer !)

(33)

Exemple

Evaluation Ranking 1 Ranking 2 Ranking 3 d0 : v d9 : x d5 : x

d1 : v d8 : x d0 : v d2 : v d7 : x d1 : v d3 : v d6 : x d9 : x d4 : v d5 : x d8 : x d5 : x d0 : v d2 : v d6 : x d1 : v d4 : v d7 : x d2 : v d3 : v d8 : x d3 : v d6 : x d9 : x d4 : v d7 : x Précision : 0.5 0.5 0.5

Manning et Schütze, 1999

(34)

Précision ou cutoff

Précision traditionnelle pas suffisante

• ne tient pas compte du rang du document

• ex. Ranking 1 est clairement meilleur que Ranking 2 !

Solution alternative : le cutoff

• On regarde la précision de segments initiaux plus petits

• Ex. on peut calculer la précision au rang 5

(35)

Exemple

Evaluation Ranking 1 Ranking 2 Ranking 3 d0 : v d9 : x d5 : x

d1 : v d8 : x d0 : v d2 : v d7 : x d1 : v d3 : v d6 : x d9 : x d4 : v d5 : x d8 : x d5 : x d0 : v d2 : v d6 : x d1 : v d4 : v d7 : x d2 : v d3 : v d8 : x d3 : v d6 : x d9 : x d4 : v d7 : x Précision à 10 0.5 0.5 0.5

Précision à 5 1 0 0.4

Manning et Schütze, 1999

(36)

Précision moyenne

Principe

• Précision calculée pour chaque point de la liste où l'on trouve un document pertinent

• Puis on fait la moyenne

Dans l'exemple :

• points pertinents : d0, d1, d2, d3 et d4

• précisions dans le Ranking 3 :

1/2 (d0), 2/3 (d1), 3/6 (d2), 4/7 (d4), 5/8 (d3)

• moyenne : 0.5726

(37)

Exemple

Evaluation Ranking 1 Ranking 2 Ranking 3 d0 : v d9 : x d5 : x

d1 : v d8 : x d0 : v d2 : v d7 : x d1 : v d3 : v d6 : x d9 : x d4 : v d5 : x d8 : x d5 : x d0 : v d2 : v d6 : x d1 : v d4 : v d7 : x d2 : v d3 : v d8 : x d3 : v d6 : x d9 : x d4 : v d7 : x Précision à 10 0.5 0.5 0.5

Précision à 5 1 0 0.4

P. moyenne

Manning et Schütze, 1999

(38)

Exemple

Evaluation Ranking 1 Ranking 2 Ranking 3 d0 : v 1/1 d9 : x d5 : x

d1 : v 2/2 d8 : x d0 : v 1/2 d2 : v 3/3 d7 : x d1 : v 2/3 d3 : v 4/4 d6 : x d9 : x d4 : v 5/5 d5 : x d8 : x d5 : x d0 : v 1/6 d2 : v 3/6 d6 : x d1 : v 2/7 d4 : v 4/7 d7 : x d2 : v 3/8 d3 : v 5/8 d8 : x d3 : v 4/9 d6 : x d9 : x d4 : v 5/10 d7 : x Précision à 10 0.5 0.5 0.5

Précision à 5 1 0 0.4

P. moyenne 1 0.35 0.57

Manning et Schütze, 1999

(39)

Quelques techniques complémentaires

Filtrage

• Parcours de l'ensemble des documents de la collection

→ coûteux

• Filtrage des documents non-pertinents par un index

Réduction de l'espace

• Racinisation des mots (ex. algorithme de Porter avec nltk)

• Filtrage des mots grammaticaux (ex. le, la, un, à, de, ...)

(40)

Quelques techniques complémentaires

Extension de la requête

• Ajout de synonymes à l'aide de ressources linguistiques

• Précision des requêtes avec de nouveaux mots (calculés à partir de statistiques de cooccurrence)

Algorithme pseudo-feedback

Vecteur de la nouvelle requête : r' = αr + β - γ

R, ensemble de documents pertinents

NR, ensemble de documents non pertinents

• Pseudo-feedback : γ = 0

• Vrai feedback : γ << β

dj Σ d R j dj NR

|R|

Σ dj

|NR|

(41)

Quelques techniques complémentaires

Autres critères de recherche

PageRank (Google)

• Positionnement des mots de la requête dans le document (ex. titre)

• Distance entre les mots de la requête dans le document

• ...

(42)

Distances de cooccurrence

Calcul de la matrice de distance entre mots

fenêtre glissante S largeur w

Pas de

glissement s

matrices de cooccurrence

O11, O12, O21, O22 matrice de dissimilarité sémantique

chi squared, mutual information, liddel, dice, jaccard, gmean,

hyperlex, minimum sensitivity, odds ratio, zscore, log likelihood, poisson-stirling...

Evert, Statistics of words cooccurrences, thèse, 2005 Gambette, User manual for TreeCloud, 2009

Texte

Pour 2 mots u et v

La dissimilarité sémantique entre deux mots u et v dépend du nombre de fenêtre S où ils apparaissent ensemble.

Références

Documents relatifs

Nous précisons que d’après nos expérimentations sur les don- nées réelles, le monde lexical pertinent se trouve toujours parmi les quatre mondes lexicaux les mieux classés par

Virginie Trachsel 06/2011 36 Au vu de la quantité de situations pouvant générer des émotions chez les élèves, il nous paraît important de prévoir des moments plus fréquents

Dans cette partie nous avons présenté les densités de flux thermiques qui sont générées.. par différentes catégories de feux et montré que globalement les valeurs se situaient

The results indicate a decrease in performance when supervising multiple UAVs  instead  of  a  single  UAV,  regardless  of  the  audio  condition.   

Dans la section 2, nous décrivons le corpus des offres d’emploi étudiées et proposons une méthode d’extraction des mots-clés du titre ainsi qu’un modèle pour tester l’effet

[r]

En constatant que dans de nombreux contextes de science des données, les experts ont souvent capitalisé une partie de leur connaissance dans des modèles mathématiques, l’ori-

1. Création de modèles dont les probabilités de transition sont équiprobables. La moyenne et l’écart-type de l’ensemble des observations sont calculés et affectés