💻 Petit défi : recoder BM25 en EduCode


Vous savez ce qui se passe quand vous tapez une recherche et que le « bon » résultat apparaît tout en haut ? Souvent, c'est un algorithme appelé BM25 qui travaille en coulisses. Je l'ai réimplémenté entièrement en EduCode.


L'idée de BM25 tient en une phrase : donner à chaque document une note de pertinence pour une recherche donnée.


Imaginez que vous cherchez « chat salon » dans une base de documents.
Comment classer ceux qui sont les plus pertinents ?


BM25 combine trois idées simples mais puissantes :
✨ Un mot qui revient souvent dans un document : ce document parle probablement du sujet.
✨ Un mot rare dans toute la collection : il est précieux, on lui donne plus de poids (c'est l'IDF).
✨ Un document très long : on ajuste, sinon il serait avantagé juste parce qu'il contient plus de mots.
On combine les trois, et hop : un classement, du plus pertinent au moins pertinent.


Le plus intéressant dans l'exercice ? Réécrire un algorithme soi-même, c'est le seul moyen de vraiment le comprendre. Tant qu'on lit la formule, ça reste abstrait.


Dès qu'il faut gérer chaque mot, chaque document, chaque calcul à la main… tout devient limpide.
Et le faire dans un langage en français, où l'on écrit littéralement si le mot est présent alors, rend la logique encore plus visible.