Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиAI Engineering with PythonМодуль 3 · RAG (доповнена пошуково-пошукова генерація)Гібридний пошук: BM25 + векторwrite37 / 105
+100 XP
Завдання
📝 **Питання:** **Напишіть функцію** \`rrf(rankings, k=60)\` — взаємне злиття рангів. Бере список рейтингів (кожен рейтинг — це впорядкований список ідентифікаторів документів від найкращого до найгіршого, від одного ретривера) і повертає об’єднаний top-K як список ідентифікаторів документів, відсортованих за загальним балом RRF, найвищий спочатку. Формула для одного документа в одному рейтингу на позиції \`rank\` з нульовим індексом: \`\`\` оцінка = 1 / (k + ранг) \`\`\` Сума балів за всіма рейтингами для кожного документа; сортувати документи за загальною кількістю балів за спаданням. Потім об’єднайте вектор і ретрівер BM25 для запиту «SKU-4471»: \`\`\` vector = ["doc-A", "doc-B", "doc-C", "doc-D"] # вектор вважає, що А найкраще bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 ставить D на перше місце (відповідає SKU) \`\`\` Надрукуйте злиті топ-4 як список Python: \`\`\` ['doc-A', 'doc-D', 'doc-B', 'doc-C'] \`\`\` A з’являється в обох списках на високих рангах → перемагає. D був №1 у BM25 → перевершує B і C, хоча вектор не сприяв цьому. Це RRF: документи високо оцінені БУДЬ-ЯКОЮ поверхнею ретриверів. 📋 Виберіть правильну відповідь. 💡 **Підказка:** Перечитайте наведену вище теорію, якщо не впевнені.
✏️ Пиши код тут
🐍
Завантаження Python...
Одноразове завантаження (~1 МБ). Далі — миттєво.
📊 Результат
Натисніть «Запустити», щоб побачити результат...

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…