Что такое косинусное сходство?
Косинусное сходство показывает, насколько похожи два вектора, оценивая угол между ними, а не их длину. Результат лежит в диапазоне от −1 до 1: значение 1 означает, что векторы направлены в одну и ту же сторону, 0 — что они ортогональны (никак не связаны), а −1 — что они направлены в противоположные стороны. Эту метрику активно применяют в анализе текстов, рекомендательных системах, информационном поиске и машинном обучении, чтобы сравнивать документы, эмбеддинги или векторы признаков.
Как пользоваться калькулятором
Введите координаты вектора A и вектора B в виде чисел, разделённых запятыми. Оба вектора должны иметь одинаковую размерность (если размерности различаются, калькулятор берёт меньшую длину). Нажмите «Рассчитать», чтобы увидеть косинусное сходство, скалярное произведение, длину каждого вектора и угол между ними в градусах.
Разбираем формулу
Косинусное сходство — это скалярное произведение двух векторов, делённое на произведение их евклидовых норм (длин):
$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^{2}} \; \sqrt{\sum_{i=1}^{n} B_i^{2}}}$$
Скалярное произведение \(\vec{A} \cdot \vec{B}\) — это сумма попарных произведений координат. Длина \(\lVert \vec{A} \rVert\) равна квадратному корню из суммы квадратов координат. Деление на длины нормирует результат, поэтому он зависит только от направления векторов, а не от их величины.
Пример с расчётами
Пусть A = [1, 2, 3] и B = [4, 5, 6]. Скалярное произведение равно \(1\cdot4 + 2\cdot5 + 3\cdot6 = 4 + 10 + 18 = 32\). Длина вектора A составляет \(\sqrt{1+4+9} = \sqrt{14} \approx 3{,}7417\), а вектора B — \(\sqrt{16+25+36} = \sqrt{77} \approx 8{,}7750\). Тогда $$\cos\theta = \frac{32}{3{,}7417 \times 8{,}7750} \approx \frac{32}{32{,}8329} \approx 0{,}9746,$$ что соответствует углу около 12,93°.
Частые вопросы
Может ли результат быть отрицательным? Да. Если векторы направлены примерно в противоположные стороны, косинусное сходство будет отрицательным — вплоть до −1 при строго противоположных направлениях.
Что делать, если векторы разной длины? Калькулятор сравнивает только совпадающие координаты (по длине более короткого вектора). Чтобы результат имел смысл, используйте векторы одинаковой размерности.
Чем это отличается от евклидова расстояния? Косинусное сходство не учитывает длину и оценивает только направление, поэтому два сонаправленных вектора считаются полностью похожими, даже если один из них намного длиннее другого.