Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiAI Engineering with PythonModulo 3 · RAG (Retrieval-Augmented Generation)Ricerca ibrida: BM25 + vettorewrite37 / 105
+100 XP
Compito
📝 **Domanda:** **Scrivi la funzione** \`rrf(rankings, k=60)\` — Reciprocal Rank Fusion. Prende un elenco di classifiche (ogni classifica è un elenco ordinato di ID di documenti dal migliore al peggiore, da un singolo retriever) e restituisce la top-K fusa come un elenco di ID di documenti ordinati in base al punteggio RRF totale, dal più alto per primo. Formula per un documento in una classifica in posizione indicizzata a zero \`rank\`: \`\`\` punteggio = 1 / (k + rango) \`\`\` Somma i punteggi di tutte le classifiche per ciascun documento; ordinare i documenti in base al punteggio totale decrescente. Quindi unisci un vettore e un retriever BM25 per una query "SKU-4471": \`\`\` vettore = ["doc-A", "doc-B", "doc-C", "doc-D"] # vettore pensa che A sia il migliore bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 mette D per primo (corrisponde allo SKU) \`\`\` Stampa i primi 4 fusi come elenco Python: \`\`\` ['doc-A', 'doc-D', 'doc-B', 'doc-C'] \`\`\` A appare in entrambe le liste ai gradi più alti → vince. D era il numero 1 in BM25 → batte B e C anche se il vettore non lo favoriva. Questo è RRF: documenti classificati in alto da QUALSIASI superficie retriever. 📋 Scegli la risposta giusta. 💡 **Suggerimento:** Rileggi la teoria sopra se non sei sicuro.
✏️ Scrivi il tuo codice qui
🐍
Caricamento Python...
Download una tantum (~1 MB). Poi è istantaneo.
📊 Risultato
Premi Esegui per vedere il risultato...

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…