TP2 Construction d`une matrice terme x document

Transcription

TP2 Construction d`une matrice terme x document
Université Montpellier II
Année 2013-2014
Département des Sciences Mathématiques
L3 Math & Info, Module Mathématiques du web.
TP2 Construction d’une matrice terme x document
Exemple d’utilisation de décomposition SVD
Le but de ce TP est la construction d’un petite matrice terme document et SVD. D’après
Berry-Browne, voir références du cours).
Le tableau suivant donne les titres de livre correspondant à une recherche sur amazon.com.
T1
T2
T3
T4
T5
T6
T7
T8
T9
termes
bab(y,ies,y’s)
child(ren’s)
guide
health
home
infant
proofing
safety
toddler
D1
D2
D3
D4
documents
infant and toddler first aid
babies and children’s room (for your home)
child safety at home
your baby’s health and safety : from infant to toddler
D5
D6
D7
baby proofing basics
your guide to easy rust proofing
beanie babies collector’s guide
(1) Construire la matrice terme/document de taille 9 × 7. La normaliser, i.e. faire en
sorte que chaque colonne soit de norme euclidienne unité.Soit A la matrice ainsi
construite.
(2) Effectuer la requête « child proofing ». Calculer le vecteur q correspondant à la
requête et calculer la pertinence de chaque document, i.e. calculer cos θj de l’angle
entre q et aj , où aj est la j-ème colonne de A. Avec un seuil de pertinence de 0.5 ;
quels seraient les documents selectionnés ?
(3) Quel est le rang de A ?
(4) A quoi correspond le sous-espace vectoriel des colonnes (resp. lignes) ? Interpréter
la matrice AT A. Effectuer la décomposition de valeur singulière A = U ΣV T . A
quoi correspond l’espace engendré par U (:, 1), U (:, 2), . . . U (:, 7) (resp . V (:, 1), V (:
, 2), . . . V (:, 7)) ?
(5) Approximation de rang faible pour la recherche sémantique.
A l’aide de la svd de A, construire une approximation de A de rang 5 (resp. 4),
notée A5 (resp. A4 ) . Quel est l’erreur relative en norme
||A − Ak ||
?,
||A||
k = 4, 5
2
(6) calculer à nouveau les scores de pertinences (avec la matrice A remplacée par A5
ou A4 ? Commenter. Indication : Soit Ak = Uk Σk VkT . Soit sj = Σk VkT ej . Montrer
que
sj T (UkT q)
cos θj =
||sj ||||q||
les k composantes de sj sont les coordonnées de la j-ème colonne de Ak dans la base
définie par les colonnes de Uk . Les k composantes de UkT q sont les composantes
dans cette même base de la projection Uk UkT q du vecteur requête q sur l’espace des
colonnes de Ak .
(7) Calculer une approximation de rang 2. Représenter les documents D1 , . . . D7 dans le
plan U2 (:, 1), U2 (:, 2) engendré par les deux colonnes de U2 . Représenter la requête
« child proofing » dans ce plan. Projeter également les termes T1 . . . T9 dans le plan
sémantique engendré par V2 (:, 1), V2 (:, 2) . Essayer d’interpréter.
Pour effectuer la décomposition de valeur singulière en MATLAB, utiliser la commande
[U,Sigma,V]=svd(A)
Essayer la même démarche pour un autre tableau terme x documents, fabriqué à partir
d’une recherche sur amazon. Effectuer la requête “les moteurs de recherche”.
termes
documents
T1
moteur(s)
D1
référencement de votre site web
T2
automobile
D2
la combustion dans les moteurs d’automobile
T3
recherche
D3
moteurs de recherche adaptatifs au contexte de la requête
T4
données
D4 Google hacking : vos données sensibles à l’abri des moteurs de recherc
T5 apprentissage
T6
université
D5
apprentissage moteur et conditions d’apprentissage
T7 développement D6
développement moteur de l’enfant : un parcours de recherche
T8
contexte
D7
Université et la recherche : moteur de création d’entreprises.
T9
web
D8
Moteurs : recherche de la puissance
T10
Google
D9
Google (Moteur de recherche).
Essayer d’autres matrices termes x documents crées par vous-mêmes. Est-ce que la décomposition svd permet de résoudre une partie de la polysémie du langage ?