Поиск k ближайших фрагментов по косинусной близости
Напишите top_k(query, docs, k).
query— вектор (список чисел),docs— словарьid → вектортой же размерности.- Косинусная близость:
(a·b) / (|a|·|b|). Документы с нулевым вектором пропускайте. - Верните список до
kпар(id, близость)по убыванию близости; при равенстве — по возрастаниюid. Близость округлите до 4 знаков. - Если вектор запроса нулевой — верните пустой список.
заготовка решения
import math
def top_k(query, docs, k):
# ваш код
return None