Partie W5 · exercices 25 à 30

Le moteur de recherche

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

① Explorerdes robots suiventles liens de page en page② Indexeron note quels motssont dans quelles pages③ Classeron trie les pagestrouvées pour ta requêteLes étapes ① et ② se font à l'avance ; l'étape ③ se fait à chaque recherche.
Explorer, indexer, classer : les trois étapes d'un moteur de recherche.
  1. 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.
  2. 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.
  3. 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°TitreTexte de la page
1chatLe chat est un animal domestique. Le chat dort beaucoup et chasse la nuit.
2adopterPour adopter un chat, il faut un refuge ou un éleveur. Un chat adopté demande des soins.
3chienLe chien est un animal fidèle. Le chien aime courir et jouer dehors.
4refugeUn refuge accueille des chats et des chiens abandonnés. On peut adopter un animal au refuge.
5nourritureCroquettes pour chat et pour chien. Choisis une nourriture adaptée à ton animal.
6poissonLe poisson rouge vit dans un aquarium. Ce n'est pas un chat, ni un chien.
1chat2adopter3chien4refuge5nourriture6poisson
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.

Tu peux interroger ce mini-Web avec le Moteur de recherche en miniature.

ExercicesExplorer et indexer

EX 25Je découvre 🌶️prise en main

Exercice 25 — Le robot explore

Un robot démarre sur la page 6 et suit tous les liens.

  1. Quelles pages découvre-t-il après un clic ? après deux clics ?
  2. Quelle page n'est atteinte depuis aucune autre ?
  3. 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).

  1. chat ; chien ; refuge ; adopter.
  2. La page 4 parle de chats et de chiens. Pourquoi n'apparaît-elle ni pour chat ni pour chien ?
  3. 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.

📝 réponses dans ton compte rendu, exercice 26

EX 27Je comprends 🌶️🌶️application

Exercice 27 — Interroger le mini-moteur

Dans le Moteur de recherche en miniature, garde les réglages d'origine et lance les recherches suivantes.

  1. 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 ?
  2. chat chien : quelles pages sont trouvées ? Pourquoi la page 3 ne l'est-elle pas ?
  3. 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

  1. On parcourt les pages une par une.
  2. Pour chaque mot de la page : si le mot n'est pas encore dans l'index, on crée sa liste vide.
  3. 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 not in index:
            index[mot] = ...                  # à compléter : une liste vide
        if numero not in index[mot]:
            index[mot].append(...)            # à compléter : le numéro de la page

print(index)
  1. Exécute le programme. Quelles sont les pages qui contiennent le mot animal ? le mot chat ?
  2. À 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.
  3. 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 écrisEffet
"chat noir" entre guillemetscherche exactement cette expression
chat -noirexclut les pages qui contiennent noir
chat site:wikipedia.orglimite la recherche à un site
EX 29Je m'entraîne 🌶️🌶️application

Exercice 29 — Bien chercher

Dans le moteur de ton choix :

  1. Compare chat noir et "chat noir" : qu'est-ce qui change dans les résultats ?
  2. Cherche jaguar : quels sens différents trouves-tu ? Comment affiner pour obtenir uniquement l'animal ?
  3. 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.

  1. Repère les résultats marqués comme annonce ou sponsorisé. Où sont-ils placés ?
  2. Pourquoi ces résultats sont-ils placés à cet endroit ? Qui les finance ?
  3. 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é ».

📝 réponses dans ton compte rendu, exercice 30