Калькулятор косинусной близости - Анализ сходства векторов
Мгновенно вычисляйте косинусную близость между двумя векторами. Значение 1 означает одинаковое направление, 0 — перпендикулярность, −1 — противоположное направление.
Введите два числовых вектора одинаковой длины, разделяя значения запятыми или пробелами, затем нажмите «Вычислить», чтобы увидеть косинусную близость и вспомогательные метрики.
Калькулятор косинусной близости - Анализ сходства векторов
Мгновенно вычисляйте косинусную близость между двумя векторами. Значение 1 означает одинаковое направление, 0 — перпендикулярность, −1 — противоположное направление.
Введите числа, разделённые запятыми или пробелами
Введите числа, разделённые запятыми или пробелами
О калькуляторе косинусной близости
Косинусная близость — один из самых широко используемых показателей сходства между двумя ненулевыми векторами в многомерном пространстве. В отличие от евклидова расстояния, которое измеряет, насколько далеко находятся две точки, косинусная близость полностью фокусируется на ориентации векторов — точнее, на косинусе угла между ними. Поэтому она особенно полезна там, где величина неважна, а направление имеет значение, например при сравнении документов разной длины или профилей предпочтений пользователей с разной активностью.
Формула проста: cos(θ) = (A · B) / (‖A‖ × ‖B‖), где A · B — скалярное произведение двух векторов, а ‖A‖ и ‖B‖ — их евклидовы длины (нормы). Скалярное произведение вычисляется умножением соответствующих элементов и суммированием результатов. Длина вектора — это квадратный корень из суммы квадратов его компонент.
Результат всегда находится в диапазоне [−1, 1]. Косинусная близость 1 означает, что оба вектора направлены точно в одну сторону — они идеально сонаправлены. Значение 0 означает, что они перпендикулярны (ортогональны) — в их ориентации нет корреляции. Значение −1 означает, что они направлены в точности в противоположные стороны. На практике многие приложения используют только неотрицательные признаки (например, частоты слов или число оценок), и тогда близость ограничена диапазоном [0, 1].
В обработке естественного языка и информационном поиске косинусная близость — стандартный способ сравнения текстовых документов, представленных как TF-IDF- или bag-of-words-векторы. Поскольку длинные документы естественно имеют большую величину вектора, сравнение по сырому скалярному произведению несправедливо бы их предпочитало. Нормализация делением на произведение длин убирает этот эффект длины и позволяет сосредоточиться только на пропорциональном составе терминов.
Рекомендательные системы используют косинусную близость для сопоставления векторов предпочтений пользователей. Если два пользователя оценивали похожие объекты с похожей относительной заинтересованностью — даже если один из них оценил намного больше объектов в целом — их косинусная близость будет высокой, что указывает на схожие вкусы. Та же логика применима и к распознаванию изображений, где векторы признаков, полученные нейросетями, сравниваются с помощью косинусной близости для поиска визуально похожих изображений.
В этом калькуляторе можно вводить векторы любой длины, если у обоих векторов одинаковое число измерений. Разделяйте значения запятыми или пробелами. Калькулятор показывает косинусную близость, скалярное произведение и длину каждого вектора, чтобы вы могли пошагово проверить вычисление.
Примеры косинусной близости
Три показательных сценария, демонстрирующих разные уровни сходства векторов.
| Векторы | Сходство | Интерпретация |
|---|---|---|
| A = [1, 2, 3], B = [2, 4, 6] | 1.000000 | B — скалярный множитель A (то же направление). Косинусная близость = 1 независимо от коэффициента масштабирования. |
| A = [1, 0, 0], B = [0, 1, 0] | 0.000000 | Стандартные базисные векторы перпендикулярны. Скалярное произведение = 0, значит косинусная близость = 0. |
| A = [5, 3, 0, 2], B = [4, 2, 1, 3] | 0.947758 | Высокая близость, типичная для сравнения документов или пользовательских предпочтений, где большинство измерений совпадает. A·B=32, |A|=√38≈6.164, |B|=√30≈5.477. |
| A = [1, 0], B = [-1, 0] | -1.000000 | Векторы, направленные точно в противоположные стороны, дают косинусную близость = −1. |
Как пользоваться калькулятором косинусной близости
- Введите первый вектор в поле «Первый вектор (A)», разделяя числа запятыми или пробелами, например: 1, 2, 3.
- Введите второй вектор в поле «Второй вектор (B)». Он должен содержать столько же элементов, сколько и первый вектор.
- Нажмите «Вычислить сходство». Панель результатов покажет значение косинусной близости, скалярное произведение и длину каждого вектора.
- Используйте кнопки примеров под таблицей, чтобы мгновенно загрузить готовые пары векторов и посмотреть, как работает вычисление.
- Нажмите «Сбросить», чтобы очистить все поля и начать новый расчёт.
Часто задаваемые вопросы о косинусной близости
Что означает косинусная близость 0.85?
Это означает, что угол между двумя векторами примерно 31,8 градуса, то есть их направленное сходство очень высоко. В анализе текста это обычно говорит о том, что два документа разделяют значительную часть ключевых терминов с похожими относительными частотами. В большинстве приложений значения выше 0.7 считаются очень похожими.
Почему для текста косинусная близость предпочтительнее евклидова расстояния?
Евклидово расстояние чувствительно к величине вектора, поэтому длинный и короткий документ на одну и ту же тему могут выглядеть очень разными только потому, что у длинного больше значений частот терминов. Косинусная близость нормализует величину и смотрит только на угол, что делает документы сравнимыми независимо от длины. Эта инвариантность к длине — главная причина, по которой косинусная близость доминирует в текстовых приложениях.
Может ли косинусная близость быть отрицательной?
Да, косинусная близость находится в диапазоне от −1 до 1. Отрицательное значение означает, что угол между векторами больше 90 градусов — векторы направлены скорее друг от друга, чем друг к другу. В приложениях, где используются только неотрицательные признаки (частоты слов, оценки), все значения лежат в [0, 1], но при работе с признаками со знаком, например с центрированными по среднему оценками или оценками тональности, отрицательные значения возможны и осмысленны.
Что происходит, если один вектор весь из нулей?
Косинусная близость математически не определена, если один из векторов — нулевой, потому что на этапе нормализации возникает деление на ноль. В таком случае этот калькулятор показывает ошибку. На практике нулевой вектор в обработке текста обычно означает, что документ не содержит ни одного слова из словаря, что редко полезно для сравнения сходства.
Сколько измерений могут иметь векторы?
Этот калькулятор поддерживает векторы любой длины, ограниченной только производительностью браузера. На практике реальные приложения нередко используют тысячи или даже миллионы измерений (например, пространства word embeddings). Математическая формула остаётся той же независимо от размерности. Для корректного расчёта оба вектора должны иметь строго одинаковое число элементов.
Косинусная близость — это то же самое, что корреляция?
Косинусная близость и корреляция Пирсона тесно связаны, но не идентичны. Корреляция Пирсона сначала центрирует каждый вектор по среднему (вычитает среднее значение его элементов), а затем вычисляет косинусную близость центрированных векторов. Если ваши векторы уже центрированы по среднему, обе меры дадут одинаковый результат. Для сырых векторов признаков без центрирования косинусная близость и корреляция обычно различаются.