Opdracht
📝 **Vraag:** **Schrijf de functie** \`rrf(rankings, k=60)\` — Wederzijdse rangschikking. Neemt een lijst met ranglijsten (elke rangschikking is een geordende lijst met document-ID's van beste naar slechtste, van één enkele retriever) en retourneert de gefuseerde top-K als een lijst met document-ID's gesorteerd op totale RRF-score, de hoogste eerst.
Formule voor één document in één rangschikking op nul-geïndexeerde positie \`rang\`:
\`\`\`
score = 1 / (k + rang)
\`\`\`
Tel de scores op van alle ranglijsten voor elk document; sorteer documenten op aflopende totale score.
Combineer vervolgens een vector en een BM25-retriever voor een "SKU-4471" -query:
\`\`\`
vector = ["doc-A", "doc-B", "doc-C", "doc-D"] # vector denkt dat A het beste is
bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 plaatst D op de eerste plaats (komt overeen met de SKU)
\`\`\`
Print de gefuseerde top-4 als een Python-lijst:
\`\`\`
['doc-A', 'doc-D', 'doc-B', 'doc-C']
\`\`\`
A verschijnt in beide lijsten met hoge rangen → wint. D was #1 in BM25 → verslaat B en C, ook al was vector daar geen voorstander van. Dat is RRF: documenten die hoog scoren op ELK retrieveroppervlak.
📋 Kies het juiste antwoord.
💡 **Hint:** Herlees de bovenstaande theorie als je het niet zeker weet.