La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Xavier Tannier Indexation Indexation et Recherche d'Information.

Présentations similaires


Présentation au sujet: "Xavier Tannier Indexation Indexation et Recherche d'Information."— Transcription de la présentation:

1 Xavier Tannier Indexation Indexation et Recherche d'Information

2 Rappels des épisodes précédents

3 Indexation et Recherche d'Information Indexation Xavier Tannier Les acteurs de la Recherche d'Information Utilisateur : un besoin d'information et/ou une tâche à accomplir Collection : un ensemble de documents Les systèmes de RI doivent pouvoir traiter : De grandes masses d'information En langage naturel (et créée pour des humains) De façon rapide et pertinente

4 Indexation et Recherche d'Information Xavier Tannier Indexation Recherche d'Information 4 Collections dynamiques vs. statiques Collections dynamiques vs. statiques Requête Indexation (modèle de document) Modèle de recherche Évaluation

5 Indexation et Recherche d'Information Indexation Xavier Tannier Indexation : pourquoi ? Le parcours complet de l'ensemble des documents avec les termes d'une requête est impossible : trop de documents et temps de réponse prohibitif. On passe par un traitement préalable : l'indexation Le but de l'indexation automatique : "transformer des documents en substituts capables de représenter le contenu de ces documents" (Salton et McGill, 1983) Les difficultés de l'indexation sont pour beaucoup celles inhérentes à la langue des documents. Les index peuvent prendre plusieurs formes : mots simples, termes complexes, syntagmes, entrées de thésaurus... 5

6 Indexation et Recherche d'Information Xavier Tannier Indexation Construction de lindex : vue générale 6 TEXTE Rien ne sert de courir; il faut partir à point : Le lièvre et la tortue en sont un témoignage. «Gageons, dit celle-ci, que vous n'atteindrez point Sitôt que moi ce but. - Sitôt? Êtes-vous sage ? Repartit l'animal léger : Ma commère, il vous faut purger Avec quatre grains d'ellébore.) - Sage ou non, je parie encore." Ainsi fut fait; et de tous deux On mit près du but les enjeux : Savoir quoi, ce n'est pas l'affaire, Ni de quel juge l'on convint. Notre lièvre n'avait que quatre pas à faire, J'entends de ceux qu'il fait lorsque, prêt d'être atteint, Il s'éloigne des chiens, les renvoie aux calendes, Et leur fait arpenter les landes. Ayant, dis-je, du temps de reste pour brouter, Pour dormir et pour écouter D'où vient le vent, il laisse la tortue Aller son train de sénateur. Elle part, elle s'évertue, Elle se hâte avec lenteur. Lui cependant méprise une telle victoire, Tient la gageure à peu de gloire, Croit qu'il y a de son honneur De partir tard. Il broute, il se repose, Il s'amuse à toute autre chose Qu'à la gageure. A la fin, quand il vit Que l'autre touchait presque au bout de la carrière, Il partit comme un trait; mais les élans qu'il fit Furent vains : la tortue arriva la première. "Eh bien! lui cria-t-elle, avais-je pas raison ? De quoi vous sert votre vitesse ? Moi l'emporter! et que serait-ce Si vous portiez une maison ?" TERMES Rien nesert de couririlfaut partir à point TERMES NORMALISÉS rien sert courirfaut partirpoint DOCUMENTS INDEX

7 Indexation et Recherche d'Information Xavier Tannier Indexation Fichier inverse 7

8 Indexation et Recherche d'Information Indexation Xavier Tannier Indexation : le fichier inverse Notion "classique" de l'index Un fichier inverse associe des index aux documents qui les contiennent. Chaque document possède un identifiant unique. – a d1, d2, d3, d4, d5... – à d1, d2, d3, d4, d5... – abaissa d3, d4... – abaissable d5 – abandon d1, d5 – abandonna d2 – abasourdi d1 – … 8

9 Construction dun index

10 Indexation et Recherche d'Information Xavier Tannier Indexation Construction de lindex 10 Doc #1 I didenact julius caesarIwas killed i the Capitol Brutuskilledme Doc #2 So letit be caesarThe with hath was told Brutus ambitious you noble caesar Séquence de termes Terme Id. Doc

11 Indexation et Recherche d'Information Xavier Tannier Indexation Construction de lindex 11 Tri par termes (puis par documents) Terme Id. Doc ….. Terme Id. Doc

12 Indexation et Recherche d'Information Xavier Tannier Indexation Construction de lindex 12 ….. Terme Id. Doc TermeFréquence Liste Fichier inverse (dictionnaire) En RI, "fréquence" = "nb doccurrences"

13 Indexation et Recherche d'Information Xavier Tannier Indexation Construction de lindex 13 TermeFréquence Liste Questions pour plus tard Pourquoi conserver la fréquence ? Comment construire cet index de façon efficace et économe ? Comment le conserver (mémoire, disque, quelle structure de données) ? Mais pour linstant : comment faire une requête sur cet index ?

14 Requête dans un index

15 Indexation et Recherche d'Information Indexation Xavier Tannier Retrouver les documents Brutus AND Caesar – On recherche « Brutus » dans le dictionnaire On récupère la liste de documents – On recherche « Caesar » dans le dictionnaire On récupère la liste de documents – On fusionne les deux listes 15 BrutusCaesar

16 Indexation et Recherche d'Information Indexation Xavier Tannier Fusion Les listes de documents sont ordonnées ! On traverse les deux listes l1 et l2 simultanément 16 fusion = <> id1 = l1[0], id2 = l2[0] Tant que les listes ne sont pas vides si id1 = id2 alors ajouter(fusion, id1) id1 = suivant(l1) id2 = suivant(e2) sinon si id1 < id2 alors id1 = suivant(l1) sinon id2 = suivant(l2) BrutusCaesar Fin ! Complexité ?

17 Indexation et Recherche d'Information Indexation Xavier Tannier Fusion Brutus AND Caesar AND Calpurnia Comment faire la fusion de trois listes (ou plus) ? Indice On a conservé dans lindex le nombre de documents contenant le terme 17

18 Indexation et Recherche d'Information Indexation Xavier Tannier Fusion par sauts Pour éviter de parcourir des morceaux de liste inutilement Par exemple lorsque lon fusionne un mot fréquent et un mot peu fréquent On ajoute des pointeurs de « saut »

19 Indexation et Recherche d'Information Indexation Xavier Tannier Fusion par sauts Comment et où place-t-on les sauts ? – Plus de sauts plus de chances de sauter des sauts plus courts – Moins de sauts moins de chances de sauter des sauts plus longs – En pratique, pour une liste de longueur L, on met des sauts tous les L. 19

20 Indexation et Recherche d'Information Indexation Xavier Tannier Fusion par sauts Gain de temps pour la fusion Mais : – Plus de pointeurs, donc plus de place dans lindex – Si lindex est sur le disque, plus dentrées-sorties pour le lire – Compliqué à mettre en place si lindex évolue beaucoup ( L…) 20

21 Recherche de groupes de mots 21

22 Indexation et Recherche d'Information Indexation Xavier Tannier Recherche de groupes de mots Recherche sur Nicolas Sarkozy. On veut obtenir des textes contenant « Nicolas Sarkozy », et non par exemple : « Nicolas Bedos après son sketch sur DSK et Carla Bruni-Sarkozy. » De nombreuses requêtes sont implicitement des recherches de groupes de mots, au moins en partie : « Nicolas Sarkozy » Disneyland Nos index inversés ne suffisent plus

23 Indexation et Recherche d'Information Indexation Xavier Tannier La notion de n-gramme n-gramme : une sous-séquence de n éléments extraite dune séquence donnée. Ici, n-grammes de mots uni-gramme : tous les mots bi-gramme : une sous-séquence de 2 éléments etc. Différent du groupe de mots dun point de vue linguistique 23 (cf. modèles de Markov) Combien de bi-grammes théoriquement possibles pour m mots uniques dans un vocabulaire ? Combien de tri-grammes ? Jusquà quelle valeur de n devrait-on aller pour couvrir raisonnablement les besoins dun utilisateur de moteur de recherche ? Combien de bi-grammes théoriquement possibles pour m mots uniques dans un vocabulaire ? Combien de tri-grammes ? Jusquà quelle valeur de n devrait-on aller pour couvrir raisonnablement les besoins dun utilisateur de moteur de recherche ?

24 Indexation et Recherche d'Information Indexation Xavier Tannier Index de bi-grammes Indexer (en plus des mots simples) toutes les paires de termes du texte. On considère donc chaque bi-gramme comme un terme du dictionnaire Une requête sur un bi-gramme est immédiate 24 Comment éviter dindexer toutes les paires ? Rien nesert de couririlfaut partir à point Rien ne ne sertsert de courir il faut partir de courir il faut partir à à point

25 Indexation et Recherche d'Information Indexation Xavier Tannier Index de bi-grammes Les requêtes plus longues (n-grammes, n > 2) « pommes de terre » et ainsi de suite pour des requêtes encore plus longues… 25 « pommes de » AND « de terre » Risque de faux positifs, pourquoi ?

26 Indexation et Recherche d'Information Indexation Xavier Tannier Index de bi-grammes Autre solution plus économique, on supprime les « mots vides » dans lindex et dans la requête « pommes de terre » Ça ne suffit pas pour « Université Paris-Sud 11 » ou « Centre National de la Recherche Scientifique » 26 « pommes terre » Encore un risque de faux positifs, pourquoi ?

27 Indexation et Recherche d'Information Indexation Xavier Tannier Index de bi-grammes Conduit à des faux positifs Dictionnaire beaucoup plus gros et index vite ingérable Impraticable pour n > 2 On peut utiliser des index bi-grammes dans certaines circonstances ou pour certains groupes de mots, mais ce nest pas la solution standard pour la recherche de groupes de mots. 27 Index de positions si on a termes uniques et si on considère les n-grammes de n = 1 à 5 on obtient un dictionnaire de 3,2 × entrées !

28 Indexation et Recherche d'Information Indexation Xavier Tannier Index de position Idée : dans les listes de documents de lindex, ajouter la position de chaque occurrence de terme dans le document. 28

29 Indexation et Recherche d'Information Indexation Xavier Tannier Index de position : parcours « Université Paris-Sud 11 » Extraction des entrées du dictionnaires Utilisation récursive de lalgorithme de fusion, pour les documents puis pour les positions. Mais utiliser une comparaison incrémentale au lieu dune égalité stricte. 29

30 Indexation et Recherche d'Information Indexation Xavier Tannier Recherche de proximité Souvent les recherches de groupes de mots sont implicites. Même pour des recherches de mots simples, la proximité des termes est importante. Cette proximité peut être demandée dans la requête… – déclaration /3 droits /3 Angleterre /3 – déclaration NEAR droits Angleterre … mais dans la plupart des moteurs ce nest pas le cas – déclaration droits Angleterre 30

31 Indexation et Recherche d'Information Indexation Xavier Tannier Recherche de proximité Ici les index de n-grammes sont inutiles… … Mais les index de position peuvent servir. 31 Comment adapter lalgorithme de fusion linéaire pour tenir compte de la proximité des termes ? Comment garder cet algorithme efficace ? Comment adapter lalgorithme de fusion linéaire pour tenir compte de la proximité des termes ? Comment garder cet algorithme efficace ?

32 Indexation et Recherche d'Information Indexation Xavier Tannier Recherche de proximité La recherche de proximité est devenue indispensable pour un moteur de recherche dans les grands corpus. Mais un index de position augmente fortement la taille de lindex. – Une entrée par occurrence au lieu dune entrée par document. – La taille de lindex dépend directement de la taille moyenne des documents 32 Pourquoi ? Indices Une page Web moyenne contient moins de 1000 termes De la documentation, un livre, etc , voire beaucoup plus Considérons un terme avec une fréquence de 0.1 %...

33 Indexation et Recherche d'Information Indexation Xavier Tannier Index de position Un index de position est environ 2 à 4 fois plus grand quun index « sac de mots ». Le volume dun index de position représente environ 35 à 50 % de celui du texte original. Nous verrons plus tard comment on peut compresser (un peu) cet index. 33 Rappel On ne parle ici que dune certaine catégorie de langues…

34 Structures de données 34

35 Indexation et Recherche d'Information Indexation Xavier Tannier Les questions à se poser Que veut-on faire ? – Indexer Quoi ? – Recherche littérale – Racinisation, lemmatisation, rien ? Vite ? En économisant la place ? En facilitant la lecture de l'index ? Un index, plusieurs index ? Modifications fréquentes ? – Chercher Quoi ? Vite ? Souvent avec les mêmes requêtes ? Avec des fautes ? Avec des expressions régulières ?

36 Indexation et Recherche d'Information Indexation Xavier Tannier Une base de données Vous savez faire… mais attention de bien gérer les index ! Permet d'éviter la redondance (avec des tables bien conçues) Manipulation parfois peu aisée et rigide Les jointures peuvent être très longues à exécuter Pour assurer des réponses en un temps raisonnable, la base doit entrer en mémoire 36 Plutôt non

37 Indexation et Recherche d'Information Indexation Xavier Tannier Une hashtable Association clé-élément ( terme-liste de documents) Recherche très rapide (O(1)) Compliqué de gérer les variations mineures (fautes dorthographe, fautes de frappe) Pas de recherche par préfixes 37

38 Indexation et Recherche d'Information Indexation Xavier Tannier Arbres binaires de recherche 38 jeu je jeudi jeux jard jante jeu je jeudi jeux jard jante Dépend de l'ordre d'insertion ! (au pire : liste chaînée)

39 Indexation et Recherche d'Information Indexation Xavier Tannier Arbres binaires de recherche BST : Binary Search Tree En RAM Chaque nœud de l'arbre contient un mot Chaque nœud pointe vers deux sous-arbres : – Le sous-arbre des éléments "plus grands" – Le sous-arbre des éléments "plus petits" Recherche et ajout rapide Recherche par préfixes simple Redondance des préfixes Plus lent : O(log M) 39

40 Indexation et Recherche d'Information Indexation Xavier Tannier B-Tree 40 a-hu hy-m n-z

41 Indexation et Recherche d'Information Indexation Xavier Tannier Trie Arbre N-aire (automate à états finis déterministe) En RAM L'arc entre les nœuds représente l'ajout d'une lettre Un arc sortant du nœud par lettre ajoutée Plus de nœuds, mais moins d'information stockée Un nœud ne contient rien, sauf l'information qu'il s'agit d'une fin de mot Coûteux en RAM Chaque préfixe est stocké une seule fois Nombreux algorithmes possibles (recherche approximative…) 41

42 Indexation et Recherche d'Information Indexation Xavier Tannier Trie 42 j jar je jeux ja jan jardjant jante jeud jeu jeudi j a e nr d t e u d i x Les nœuds sont étiquetés pour la clarté de l'illustration, mais en pratique ils ne contiennent pas la chaîne de caractères. Les nœuds représentant un mot existant sont "marqués".

43 Indexation et Recherche d'Information Indexation Xavier Tannier Arbre des suffixes Suffix tree Une structure de trie Stockage de tous les suffixes d'un texte Utile pour : – La recherche de motifs – La détection de répétition Moins adapté pour le stockage "simple" 43

44 Indexation et Recherche d'Information Indexation Xavier Tannier Arbres des suffixes A NA $ NA$ $ Tous les suffixes du mot BANANA Le '$' indique la fin du mot Le chiffre indique la position du suffixe dans le mot 3 $ 0 BANANA$

45 Indexation et Recherche d'Information Indexation Xavier Tannier Patricia Trie Un type de Trie Remplace les listes (segments non arborescents) par des chaînes de caractères Les chaînes de caractères sont externes à la structure et les arcs indiquent les offset et les longueurs dans ce tableau On peut stocker le tableau sur le disque, et la structure est plus petite en RAM Le tableau est fragmenté Les ajouts demandent de réorganiser l'arbre 45

46 Indexation et Recherche d'Information Indexation Xavier Tannier Patricia Trie 46 c t e c i t e c (0,1) t (2,2) c (1,1) eite

47 Indexation et Recherche d'Information Indexation Xavier Tannier Mais aussi… Splay Tree Ternary Search Tree Burst Tree Judy Tree String B-Tree (dynamiques et statiques) Trie compilés … 47


Télécharger ppt "Xavier Tannier Indexation Indexation et Recherche d'Information."

Présentations similaires


Annonces Google