# Similitud coseno

La similitud coseno es una medida de la similitud existente entre dos vectores en un espacio que posee un producto interior con el que se evalúa el valor del coseno del ángulo comprendido entre ellos. Esta función trigonométrica proporciona un valor igual a 1 si el ángulo comprendido es cero, es decir si ambos vectores apuntan a un mismo lugar. Cualquier ángulo existente entre los vectores, el coseno arrojaría un valor inferior a uno. Si los vectores fuesen ortogonales el coseno se anularía, y si apuntasen en sentido contrario su valor sería -1. De esta forma, el valor de esta métrica se encuentra entre -1 y 1, es decir en el intervalo cerrado [-1,1].
Esta distancia se emplea frecuentemente en la búsqueda y recuperación de información representando las palabras (o documento) en un espacio vectorial. En minería de textos se aplica la similitud coseno con el objeto de establecer una métrica de semejanza entre textos. En minería de datos se suele emplear como un indicador de cohesión de clústeres de textos. La similitud coseno no debe ser considerada como una métrica debido a que no cumple la desigualdad triangular.

## Similitud Coseno Suave

El Coseno Suave es una medida de similitud "suave" entre dos vectores, es decir, la medida considera la similitud entre pares de características. La similitud coseno tradicional considera que las características en el modelo espacio vectorial (MEV) son independientes o completamente diferentes, mientras que el coseno suave propone considerar la similitud de características en el MEV, lo cual permite la generalización de los conceptos de similitud coseno y también la idea de similitud (similitud suave).
Por ejemplo, en el área de procesamiento de lenguaje natural (PLN) la similitud entre las características es bastante intuitiva. Las características tales como, palabras, n-gramas, n-gramas sintácticos pueden ser muy similares, aunque formalmente son consideradas como características diferentes en el MEV. Por ejemplo, las palabras "play" y "game" (en inglés) son palabras diferentes y por lo tanto se mapean a dimensiones diferentes en el modelo de espacio vectorial; sin embargo, es obvio que estas palabras están relacionadas semánticamente. En el caso de n-gramas o n-gramas sintácticos se puede usar la distancia de Levenshtein para calcular la similitud entre características.
Para el cálculo del coseno suave, se introduce la matriz s que contiene la similitud entre las características. Se puede calcular utilizando la distancia Levenshtein u otras medidas de similitud, por ejemplo, diversas medidas de similitud de WordNet. Luego solo se multiplica por esta matriz.
Dado dos vectores a y b de dimensión N, el coseno suave es calculado como sigue:
    ${\begin{aligned}\operatorname {soft\_cosine} _{1}(a,b)={\frac {\sum \nolimits _{i,j}^{N}s_{ij}a_{i}b_{j}}{{\sqrt {\sum \nolimits _{i,j}^{N}s_{ij}a_{i}a_{j}}}{\sqrt {\sum \nolimits _{i,j}^{N}s_{ij}b_{i}b_{j}}}}},\end{aligned}}$
donde s$_{ij}$ = similitud(característica$_i$, característica$_j$).
Si no existe similitud entre características (s$_{ii}$ = 1, s$_{ij}$ = 0 para i ≠ j), la ecuación dada es equivalente a la fórmula de similitud coseno convencional.
La complejidad de esta medida es cuadrática, lo cual la hace completamente aplicable a problemas del mundo real. La complejidad incluso puede ser transformada a lineal.