Tarea
📝 **Pregunta:** **Escribe la función** \`rrf(rankings, k=60)\` — Fusión de rangos recíprocos. Toma una lista de clasificaciones (cada clasificación es una lista ordenada de ID de documentos de mejor a peor, de un solo recuperador) y devuelve el top-K fusionado como una lista de ID de documentos ordenados por puntuación RRF total, el más alto primero.
Fórmula para un documento en una clasificación en la posición \`rank\` indexada a cero:
\`\`\`
puntuación = 1 / (k + rango)
\`\`\`
Sumar puntuaciones en todas las clasificaciones de cada documento; ordenar documentos por puntuación total descendente.
Luego fusione un vector y un recuperador BM25 para una consulta "SKU-4471":
\`\`\`
vector = ["doc-A", "doc-B", "doc-C", "doc-D"] # vector cree que A es mejor
bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 pone D primero (coincide con el SKU)
\`\`\`
Imprima el top 4 fusionado como una lista de Python:
\`\`\`
['doc-A', 'doc-D', 'doc-B', 'doc-C']
\`\`\`
A aparece en ambas listas en los rangos más altos → gana. D fue el número 1 en BM25 → supera a B y C aunque el vector no lo favoreció. Eso es RRF: documentos altamente clasificados según CUALQUIER superficie de recuperador.
📋 Elige la respuesta correcta.
💡 **Pista:** Vuelve a leer la teoría anterior si no estás seguro.