Recherche plein texte
Transcription
Recherche plein texte
Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Recherche plein texte Auteurs : Raphaël Fournier-S’niehotta, Philippe Rigaux, Nicolas Travers pré[email protected] Département d’informatique Conservatoire National des Arts & Métiers, Paris, France Bases de données documentaires et distribuées Cours NFE04 Le poids des mots Pondération des termes Le classement s’appuie sur l’idée qu’il est possible d’identifier l’importance des termes dans un document. Deux idées essentielles : Plus un terme est fréquent dans un document, plus il est représentatif du contenu du document. Ex. : contrepoint apparaît 10 fois dans le document d , ⇒ d est un document important pour une recherche sur “contrepoint”. Normalisation : si d est très long, il est normal de trouver plus d’occurrences des termes ; on peut décider de normaliser cet indicateur pour éviter ce biais. Plus un terme est rare dans la collection, plus sa présence dans un document est importante. Ex. : musicologie apparaît 100 fois dans une grande collection, 4 fois dans le document d ⇒ d est un document important pour une recherche sur “musicologie”. Bases de données documentaires et distribuées Cours NFE04 Le poids des mots Premier indicateur : la fréquence du terme Soit un document d , t un terme. La fréquence du terme t dans d , noté nt,d , est simplement le nombre d’occurrences de t dans d . Attention On parle bien de termes, résultats de la normalisation lexicale (racinisation, élimination des mots inutiles, etc.) Exemple : soit d le document suivant : Spider Cochon Spider Cochon, il peut marcher au plafond, Est ce qu’il peut faire une toile ? Bien sûr que non, c’est un cochon. Prends garde ! Spider Cochon est là ! Donc tf (cochon, d) = 4 Bases de données documentaires et distribuées Cours NFE04 Le poids des mots Deuxième indicateur : fréquence inverse des documents Soit t un terme, une collection D. On mesure sa rareté de t par l’inverse de sa fréquence dans D. Le nombre total de documents est |D| le nombre de documents avec t est |{d 0 ∈ D, |, nt,d 0 > 0}| La rareté de t est donc mesurée par : |D| |{d 0 ∈ D | nt,d 0 > 0}| Ajustement. La valeur obtenu par la formule ci-dessus croît très vite avec la taille de la collection. On ajuste en prenant le logarithme et on obtient la fréquence inverse des documents (inverse document frequency, idf) |D| . idf(t) = log 0 d ∈ D | nt,d 0 > 0 Bases de données documentaires et distribuées Cours NFE04 Le poids des mots Pondération par TF-IDF Le poids d’un terme dans un document est représenté par l’indicateur Term Frequency—Inverse Document Frequency (tf-idf) |D| tfidf(t, d ) = nt,d · log 0 d ∈ D | nt,d 0 > 0 nt,d D nombre d’occurrences de t dans d ensemble de tous les documents le tf-idf décroît quand un terme est présent dans beaucoup de documents ; il décroît également quand il est peu présent dans un document ; il est maximal pour les termes peu fréquents apparaissant beaucoup dans un document particulier. Descripteurs Le tf.idf remplace l’indicateur 0/1 dans la matrice d’incidence. Bases de données documentaires et distribuées Cours NFE04 Le poids des mots Pondérons nos cochons Voici des documents A, B et C. Spider Cochon Spider Cochon, il peut marcher au plafond, Est ce qu’il peut faire une toile ? Bien sûr que non, c’est un cochon. Prends garde ! Spider Cochon est là ! Un petit cochon, pendu au plafond Les Trois Petits Cochons est un conte traditionnel européen mettant en scène trois jeunes cochons et un loup. Test Calculer le tf et l’idf pour les termes "cochon", "loup" et "plafond" et pour chaque document. En déduire la matrice d’incidence. Bases de données documentaires et distribuées Cours NFE04 Similarité basée sur le tf-idf Calcul de la similarité À ce stade, on peut décrire un document par un vecteur composé des poids de tous ses termes. Descr(C) = [’cochon’ : 2, ’plafond’ : 0, ’loup’ : 4] Le poids est à 0 pour les termes qui n’apparaissent pas dans le document. On a un espace vectoriel E = N|V | , V étant le vocabulaire. [’cochon’ : 0, ..., ’jaguar’ : 4, ..., ’loup’ : 0, ..., ’python’ : 2, ...., ’mouton’ : 0] L’espace a beaucoup de dimensions (des millions d’axes / termes). Chaque vecteur est principalement constitué de 0. Distance Euclidienne ? Potentiellement très coûteuse à calculer, et introduit un biais lié à la longueur des documents. Bases de données documentaires et distribuées Cours NFE04 Similarité basée sur le tf-idf Classement par cosinus Plus deux documents sont “proches” l’un de l’autre, plus l’angle de leurs vecteurs descripteurs est petit. Rappel : le cosinus est une fonction décroisante sur l’intervalle [0, 90]. Bases de données documentaires et distribuées Cours NFE04 Similarité basée sur le tf-idf La similarité cosinus La similarité cosinus est un bon candidat pour mesurer la proximité des vecteurs dans E N|V | Indifférent la la longueur (norme) des vecteurs. Maximal si même direction (angle = 0, cosinus = 1) Minimal si directions "orthogonales" (pas de terme en commun) Varie continuement entre 0 et 1. En pratique Calcul efficace car nécessite seulement les coordonnées non nulles. Bases de données documentaires et distribuées Cours NFE04 Similarité basée sur le tf-idf Calcul du cosinus de deux vecteurs Produit scalaire de deux vecteurs (niveau 3ème !) n v1 .v2 = ||v1 || × ||v2 || × cosθ = ∑ v1 [i] × v2 [i] i=1 où θ désigne l’angle entre les deux vecteurs et ||v || la norme d’un vecteur. Donc : cosθ = ∑ni=1 v1 [i] × v2 [i] ||v1 || × ||v2 || Normalisation La division par la norme revient à éliminer le biais lié à la longueur des documents. Bases de données documentaires et distribuées Cours NFE04 Similarité basée sur le tf-idf Calcul du cosinus, en pratique Première étape : on calcule la norme du vecteur représentant chaque document, on la stocke. Norme du vecteur ~d : ||~d || = q Σi di2 Seconde étape : d le document, q la requête ; on prend les vecteurs ~q (calculé à la volée) et ~d (stocké dans un index). 1 1 × × Σi d i q i ~ ||d || ||~q|| Approximation On peut ignorer la norme de la requête (qui est constante), et la racine carré pour la calcul des normes : c’est le classement qui nous intéresse.