Feladat
📝 **Kérdés:** **Írja be a függvényt** \`rrf(rangings, k=60)\` — Reciprocal Rank Fusion. Elveszi a rangsorok listáját (minden rangsor a legjobbtól a legrosszabbig, egyetlen retrievertől származó dokumentumazonosítók rendezett listája), és az összevont top-K-t adja vissza a dokumentumazonosítók listájaként, a teljes RRF-pontszám szerint rendezve, a legmagasabb első helyen.
Képlet egy dokumentumhoz egy rangsorban nulla indexelt pozícióban \`rank\`:
\`\`\`
pontszám = 1 / (k + rang)
\`\`\`
Összes pontszámok az összes rangsoron minden dokumentumnál; Rendezze a dokumentumokat összpontszám szerint csökkenő sorrendben.
Ezután kapcsoljon össze egy vektort és egy BM25 retrievert egy "SKU-4471" lekérdezéshez:
\`\`\`
vektor = ["doc-A", "doc-B", "doc-C", "doc-D"] # vektor szerint A a legjobb
bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 a D-t helyezi előtérbe (egyezik az SKU-val)
\`\`\`
Nyomtassa ki az egyesített top-4-et Python-listaként:
\`\`\`
['doc-A', 'doc-D', 'doc-B', 'doc-C']
\`\`\`
Az A mindkét listán magasan jelenik meg → nyer. D #1 volt a BM25-ben → legyőzi B-t és C-t, bár a vektor nem kedvezett neki. Ez az RRF: BÁRMILYEN retriever felület alapján magasan rangsorolt dokumentumok.
📋 Válassza ki a megfelelő választ.
💡 **Tipp:** Ha nem biztos benne, olvassa el újra a fenti elméletet.