💻sciences

Réviser les algorithmes des moteurs de recherche en NSI efficacement en 1 semaine

18 juillet 2026 7 min de lecture

Tu as une semaine pour réviser les moteurs de recherche en NSI ? Pas de panique. Avec un plan clair et des exercices ciblés, tu peux comprendre en profondeur le fonctionnement des moteurs comme Google, le PageRank, l'indexation inversée et les algorithmes de classement. Cet article te guide jour par jour pour être prêt le jour J.

Jour 1 : Comprendre l'architecture d'un moteur de recherche

Un moteur de recherche repose sur trois étapes principales : le crawling (exploration du web), l'indexation (organisation des pages) et le ranking (classement des résultats). En NSI, on s'intéresse surtout aux algorithmes derrière ces étapes.

Crawling et indexation

Le crawler parcourt les pages web en suivant les liens. Il récupère le contenu textuel et le stocke dans une structure de données appelée index inversé. Un index inversé associe chaque mot à la liste des documents qui le contiennent. Par exemple :

index = {
    "chat": ["doc1", "doc3"],
    "chien": ["doc2", "doc3"]
}

Pour construire un index inversé en Python :

def construire_index(documents):
    index = {}
    for doc_id, texte in documents.items():
        mots = set(texte.lower().split())
        for mot in mots:
            if mot not in index:
                index[mot] = []
            index[mot].append(doc_id)
    return index

docs = {"doc1": "Le chat dort", "doc2": "Le chien court", "doc3": "Le chat et le chien"}
print(construire_index(docs))
# {'le': ['doc1', 'doc2', 'doc3'], 'chat': ['doc1', 'doc3'], 'dort': ['doc1'], 'chien': ['doc2', 'doc3'], 'court': ['doc2'], 'et': ['doc3']}

Jour 2 : L'algorithme PageRank

Le PageRank est un algorithme inventé par Larry Page et Sergey Brin pour classer les pages web selon leur importance. Il repose sur l'idée qu'une page est importante si beaucoup de pages importantes pointent vers elle. En NSI, on étudie sa version simplifiée avec des itérations.

Principe mathématique

Chaque page a un score initial (souvent 1/N). À chaque itération, le score se redistribue via les liens sortants. On ajoute un facteur d'amortissement d (souvent 0.85) pour éviter les impasses. La formule :

PR(p) = (1-d)/N + d * somme(PR(q)/L(q)) pour chaque q qui pointe vers p

où L(q) est le nombre de liens sortants de q.

Implémentation Python simple

def pagerank(graphe, d=0.85, iterations=10):
    n = len(graphe)
    pr = {page: 1/n for page in graphe}
    for _ in range(iterations):
        nouveau_pr = {}
        for page in graphe:
            somme = 0
            for autre in graphe:
                if page in graphe[autre]:
                    somme += pr[autre] / len(graphe[autre])
            nouveau_pr[page] = (1-d)/n + d * somme
        pr = nouveau_pr
    return pr

graphe = {
    'A': ['B', 'C'],
    'B': ['C'],
    'C': ['A'],
    'D': ['C']
}
print(pagerank(graphe))
# Exemple de sortie : {'A': 0.368, 'B': 0.142, 'C': 0.368, 'D': 0.122}

Jour 3 : Pondération TF-IDF

Le TF-IDF (Term Frequency – Inverse Document Frequency) est une mesure statistique qui évalue l'importance d'un mot dans un document par rapport à une collection. Il est utilisé pour le ranking dans les moteurs de recherche.

Calcul du TF-IDF

  • TF = (nombre d'occurrences du mot dans le document) / (nombre total de mots dans le document)
  • IDF = log(N / nombre de documents contenant le mot) où N est le nombre total de documents
  • TF-IDF = TF * IDF

Exemple en Python :

import math

def tf_idf(documents):
    N = len(documents)
    idf = {}
    for doc in documents:
        mots = set(doc.split())
        for mot in mots:
            idf[mot] = idf.get(mot, 0) + 1
    for mot in idf:
        idf[mot] = math.log(N / idf[mot])
    
    resultats = []
    for doc in documents:
        mots = doc.split()
        tf = {}
        for mot in mots:
            tf[mot] = tf.get(mot, 0) + 1
        for mot in tf:
            tf[mot] /= len(mots)
        tfidf = {mot: tf[mot] * idf.get(mot, 0) for mot in tf}
        resultats.append(tfidf)
    return resultats

docs = ["le chat dort", "le chien court", "le chat et le chien"]
print(tf_idf(docs))

Jour 4 : Mise en pratique avec un mini moteur de recherche

Construis un mini moteur de recherche combinant index inversé et PageRank. Tu peux utiliser une petite collection de pages web factices (fichiers HTML). Entraîne-toi à écrire les requêtes et à classer les résultats. Pour t'aider, consulte le cours NSI sur le site : https://www.nsi-lycee.fr/cours.

Jour 5 : Exercices type bac et évaluations

Révise avec des exercices sur les algorithmes de recherche. Le site https://www.nsi-lycee.fr/exercices propose des QCM et des problèmes corrigés. Entraîne-toi aussi sur des sujets de bac : analyse d'un algorithme PageRank, calcul de TF-IDF, index inversé.

Jour 6 : Approfondissement et notions avancées

Explore des notions comme le web crawling avec gestion de la politesse (delay entre requêtes), le PageRank personnalisé, ou encore le HITS (Hyperlink-Induced Topic Search). Si tu veux aller plus loin, regarde les ressources sur AlloBac et AlloLycée.

Jour 7 : Synthèse et simulation d'épreuve

Réalise une synthèse sous forme de fiche mémo. Simule une épreuve écrite de 30 minutes : décris l'architecture d'un moteur de recherche, explique le PageRank, code un index inversé. Relis tes notes et vérifie que tu maîtrises les termes clés : crawl, index, PageRank, TF-IDF, requête, pertinence.

Conseils pour le bac NSI

À l'épreuve, on te demandera souvent de comprendre un algorithme existant plutôt que de l'inventer. Entraîne-toi à lire du code Python et à expliquer son fonctionnement. N'oublie pas de mentionner les structures de données (dictionnaires, listes) et les complexités. Pour réviser les bases de données liées aux moteurs de recherche, consulte https://www.nsi-lycee.fr/sql.

Conclusion

En une semaine, tu peux acquérir une solide compréhension des moteurs de recherche en NSI. L'essentiel est de pratiquer régulièrement : code chaque algorithme, teste-le, modifie-le. Tu verras, les concepts deviennent vite familiers. Bon courage, tu es capable !

📚 Pour aller plus loin

Questions fréquentes

Qu'est-ce qu'un moteur de recherche en NSI ?

En NSI, un moteur de recherche est un système qui permet de trouver des informations sur le web en utilisant des algorithmes de crawling, d'indexation et de classement comme le PageRank.

Comment fonctionne l'algorithme PageRank ?

Le PageRank attribue un score à chaque page web en fonction du nombre et de la qualité des liens entrants. Il utilise un facteur d'amortissement et une itération jusqu'à convergence.

Quelle est la différence entre crawling et indexation ?

Le crawling est l'exploration automatique du web pour découvrir des pages, tandis que l'indexation consiste à organiser le contenu de ces pages dans une structure (comme un index inversé) pour faciliter la recherche.

Comment implémenter un index inversé en Python ?

On peut utiliser un dictionnaire où chaque clé est un mot et la valeur est une liste d'identifiants de documents contenant ce mot. Exemple : index = {'mot': ['doc1', 'doc3']}.

Qu'est-ce que le TF-IDF ?

Le TF-IDF est une mesure statistique qui évalue l'importance d'un mot dans un document par rapport à une collection. Il combine la fréquence du mot dans le document (TF) et la rareté du mot dans la collection (IDF).

Comment réviser le moteur de recherche pour le bac NSI ?

Il faut comprendre les concepts clés (crawling, indexation, PageRank, TF-IDF), savoir les implémenter en Python, et s'entraîner avec des exercices type bac. Utilise les ressources sur nsi-lycee.fr.

Quel est le rôle du facteur d'amortissement dans PageRank ?

Le facteur d'amortissement (souvent 0.85) permet de modéliser la probabilité qu'un utilisateur continue de cliquer sur des liens plutôt que de sauter vers une page aléatoire. Il assure la convergence de l'algorithme.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
moteur de recherche NSIPageRankalgorithme PageRankindexationcrawling
Pixel