Aller au contenu principal
🔒 Mode aperçu. Les quinze premières leçons Foundations sont gratuites ; celle-ci est Pro. Démarrez un trial de 7 jours pour débloquer l'éditeur, les conseils AI et le reste du programme. Carte requise, annulez à tout moment dans Dashboard.Démarrer le trial de 7 jours →
← CoursAI Engineering with PythonModule 3 · RAG (Récupération-Génération Augmentée)Recherche hybride : BM25 + vecteurwrite37 / 105
+100 XP
Tâche
📝 **Question :** **Écrivez la fonction** \`rrf(rankings, k=60)\` — Fusion de rangs réciproques. Prend une liste de classements (chaque classement est une liste ordonnée d'identifiants de documents du meilleur au pire, provenant d'un seul récupérateur) et renvoie le top-K fusionné sous la forme d'une liste d'identifiants de documents triés par score RRF total, le plus élevé en premier. Formule pour un document dans un classement à la position d'indexation zéro \`rank\` : \`\`\` score = 1 / (k + rang) \`\`\` Additionner les scores de tous les classements pour chaque document ; trier les documents par score total décroissant. Fusionnez ensuite un vecteur et un récupérateur BM25 pour une requête "SKU-4471": \`\`\` vecteur = ["doc-A", "doc-B", "doc-C", "doc-D"] # le vecteur pense que A est le meilleur bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 met D en premier (correspond au SKU) \`\`\` Imprimez le top 4 fusionné sous forme de liste Python : \`\`\` ['doc-A', 'doc-D', 'doc-B', 'doc-C'] \`\`\` A apparaît dans les deux listes aux rangs élevés → gagne. D était n°1 dans BM25 → bat B et C même si le vecteur ne le favorisait pas. C'est RRF : des documents classés en tête par N'IMPORTE QUELLE surface de retriever. 📋 Choisissez la bonne réponse. 💡 **Indice :** Relisez la théorie ci-dessus en cas de doute.
✏️ Écris ton code ici
🐍
Chargement de Python...
Téléchargement unique (~1 Mo). Ensuite, c’est instantané.
📊 Résultat
Cliquez sur Exécuter pour voir le résultat...

💬 Discussion

Soyez le premier à poser une question ou partager une astuce.
Connectez-vous pour rejoindre la discussion. La lecture est gratuite.
Chargement de la discussion…