Explorer, indexer, classer : comment trouver une page parmi des milliards
Le Web compte un nombre gigantesque de pages. Pourtant, un moteur de recherche te donne des résultats en une fraction de seconde. Il ne parcourt pas le Web au moment de ta recherche : il a préparé son travail à l'avance.
CoursLes trois étapes
Explorer, indexer, classer : les trois étapes d'un moteur de recherche.
Explorer. Des programmes appelés robots d'exploration partent de quelques pages, suivent leurs liens, puis les liens des pages découvertes, et ainsi de suite. Une page vers laquelle aucun lien ne pointe n'est jamais découverte.
Indexer. Pour chaque page trouvée, le moteur note les mots qu'elle contient. Il construit un index inversé : pour chaque mot, la liste des pages où il apparaît, comme l'index à la fin d'un livre.
Classer. Quand tu fais une recherche, le moteur retrouve dans l'index les pages qui contiennent tes mots, puis les trie : le nombre d'apparitions des mots, l'endroit où ils se trouvent (titre ou texte), et la popularité de la page (voir la partie W6).
Un fichier pour les robots
Un site peut indiquer aux robots ce qu'il ne souhaite pas voir explorer, dans un fichier nommé robots.txt. C'est une demande de politesse : les robots sérieux la respectent.
CoursUn moteur en miniature
Pour comprendre, on utilise un mini-Web de six pages sur les animaux. Voici leurs textes, puis le graphe de leurs liens.
N°
Titre
Texte de la page
1
chat
Le chat est un animal domestique. Le chat dort beaucoup et chasse la nuit.
2
adopter
Pour adopter un chat, il faut un refuge ou un éleveur. Un chat adopté demande des soins.
3
chien
Le chien est un animal fidèle. Le chien aime courir et jouer dehors.
4
refuge
Un refuge accueille des chats et des chiens abandonnés. On peut adopter un animal au refuge.
5
nourriture
Croquettes pour chat et pour chien. Choisis une nourriture adaptée à ton animal.
6
poisson
Le poisson rouge vit dans un aquarium. Ce n'est pas un chat, ni un chien.
Les liens entre les six pages : une flèche de a vers b signifie que la page a contient un lien vers la page b.
Un robot démarre sur la page 6 et suit tous les liens.
Quelles pages découvre-t-il après un clic ? après deux clics ?
Quelle page n'est atteinte depuis aucune autre ?
Que se passerait-il pour cette page si le robot démarrait ailleurs ? Que peut faire son auteur pour qu'elle soit trouvée ?
Indice
Après un clic : les pages vers lesquelles la page 6 pointe. Après deux clics : ajoute celles vers lesquelles pointent ces pages.
📝 réponses dans ton compte rendu, exercice 25
EX 26Je m'entraîne🌶️🌶️application
Exercice 26 — Construire l'index
À partir des textes du tableau, complète l'index inversé pour les quatre mots suivants : indique pour chacun les numéros des pages qui le contiennent (le mot exactement écrit ainsi).
chat ; chien ; refuge ; adopter.
La page 4 parle de chats et de chiens. Pourquoi n'apparaît-elle ni pour chat ni pour chien ?
Que devrait faire un moteur réel pour que chats et chat soient réunis ?
Indice
Cherche le mot lettre pour lettre : chats est un mot différent de chat.
chat : dans quel ordre apparaissent les pages ? Pourquoi les pages 1 et 2 sont-elles à égalité d'occurrences, et comment sont-elles départagées ?
chat chien : quelles pages sont trouvées ? Pourquoi la page 3 ne l'est-elle pas ?
refuge adopter : quelle page arrive en premier ? Pourquoi ?
Indice
Le moteur affiche le nombre d'occurrences de chaque mot dans chaque page, et le PageRank de la page.
📝 réponses dans ton compte rendu, exercice 27
CoursUn index en Python
Un dictionnaire Python convient très bien pour un index : la clé est le mot, la valeur est la liste des pages. Pour découper un texte en mots, on utilise .split().
console
>>> "le chat dort".split()
['le', 'chat', 'dort']
Pour construire l'index
On parcourt les pages une par une.
Pour chaque mot de la page : si le mot n'est pas encore dans l'index, on crée sa liste vide.
Si la page n'est pas encore dans la liste de ce mot, on l'ajoute avec append.
EX 28Je programme🌶️🌶️🌶️plusieurs étapes
Exercice 28 — Mon index en Python
Copie le programme, complète les deux lignes indiquées, puis enregistre-le sous le nom demandé.
index.py
pages = {
1: "le chat est un animal domestique",
2: "adopter un chat demande des soins",
3: "le chien est un animal fidele",
}
index = {}
for numero in pages:
for mot in pages[numero].split():
if mot notin index:
index[mot] = ... # à compléter : une liste videif numero notin index[mot]:
index[mot].append(...) # à compléter : le numéro de la pageprint(index)
Exécute le programme. Quelles sont les pages qui contiennent le mot animal ? le mot chat ?
À la fin du programme, ajoute des lignes pour afficher les pages du mot chien, et un message « aucun résultat » si le mot n'est pas dans l'index. Teste avec poisson.
Un texte contient « Chat » avec une majuscule. L'index le rapproche-t-il de chat ? Quelle méthode de texte permet de tout passer en minuscules ?
Indice 1
Une liste vide s'écrit [].
Indice 2
On ajoute à la liste index[mot] le numéro de la page courante, c'est-à-dire la variable numero.
Indice 3
Pour tester si un mot est dans l'index : if mot in index:.
💾 NOM_Prenom_ex28.py
CoursBien chercher
Les moteurs comprennent quelques outils pour affiner une recherche (la plupart des moteurs en acceptent au moins une partie) :
Ce que tu écris
Effet
"chat noir" entre guillemets
cherche exactement cette expression
chat -noir
exclut les pages qui contiennent noir
chat site:wikipedia.org
limite la recherche à un site
EX 29Je m'entraîne🌶️🌶️application
Exercice 29 — Bien chercher
Dans le moteur de ton choix :
Compare chat noir et "chat noir" : qu'est-ce qui change dans les résultats ?
Cherche jaguar : quels sens différents trouves-tu ? Comment affiner pour obtenir uniquement l'animal ?
Limite une recherche à un site avec site:, par exemple climat site:education.gouv.fr. À quoi cela peut-il servir ?
Indice
Pour jaguar, ajoute un mot : jaguar animal ou jaguar -voiture.
📝 réponses dans ton compte rendu, exercice 29
EX 30Je synthétise🌶️🌶️application
Exercice 30 — Qui paie ? Les résultats personnalisés
Fais une recherche d'un produit (par exemple « chaussures de sport ») sur un moteur de recherche, puis compare avec ton voisin.
Repère les résultats marqués comme annonce ou sponsorisé. Où sont-ils placés ?
Pourquoi ces résultats sont-ils placés à cet endroit ? Qui les finance ?
Ton voisin et toi obtenez-vous exactement les mêmes résultats ? Propose deux raisons possibles.
Indice
Une annonce est signalée par un mot ou une étiquette : « Annonce », « Sponsorisé ».