Даны векторы документов docs, вектор запроса query той же размерности и число k. Косинусное сходство — скалярное произведение, делённое на произведение длин векторов.
Верните индексы k документов с наибольшим сходством, по убыванию сходства; при равенстве — меньший индекс раньше. Нулевых векторов нет.
В работе: Подобрать k самых похожих обращений в поддержку к новому по эмбеддингам.
Пример 1
Ввод
docs = [[1, 0], [0, 1], [1, 1]] query = [1, 0] k = 2
Вывод
[0, 2]
Сходство 1, 0 и 0,707.
Ограничения
- 1 ≤ k ≤ число документов ≤ 10⁴
- Размерность ≤ 300
- Лимит — 1 с на тест.
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def top_k_cosine(docs, query, k):
Источник: Сбер, Data Scientist NLP, гайд h.careers, 2026. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.