Встречается на собеседованиях • сегодня
Как быстро отранжировать вектора по близости к запросу
Для ранжирования векторов по близости к запросу можно использовать косинусное расстояние или евклидову норму. В Python с помощью numpy и scipy это делается в несколько строк:
python
import numpy as np
from scipy.spatial.distance import cdist
query = np.array([0.5, 0.2, 0.3]) # Вектор запроса
vectors = np.random.rand(100, 3) # Массив векторов для сравнения
Косинусная близость (чем больше, тем ближе)
cos_sim = 1 - cdist([query], vectors, 'cosine')[0]
sorted_indices = np.argsort(cos_sim)[::-1] # Сортировка по убыванию
Или евклидово расстояние (чем меньше, тем ближе)
eucl_dist = cdist([query], vectors, 'euclidean')[0]
sorted_indices = np.argsort(eucl_dist)
text
Для больших датасетов эффективнее использовать `faiss` или `annoy` для приближенного поиска.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы