Sobes.tech
Middle — Senior

¿Cómo calcular la similitud coseno entre preguntas?

sobes.tech AI

Respuesta de la IA

La similitud coseno es una medida de similitud entre dos vectores, que se calcula como el coseno del ángulo entre ellos. Para preguntas (por ejemplo, de texto), primero se debe representar cada pregunta en forma de vector (embedding), por ejemplo, usando modelos como Word2Vec, BERT o TF-IDF.

Cómo calcular la similitud coseno:

  1. Convertir cada pregunta en un vector de números.
  2. Calcular el coseno del ángulo entre los dos vectores:

[ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} = \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}} ]

Ejemplo en Python usando la biblioteca numpy:

import numpy as np

def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm_a = np.linalg.norm(vec1)
    norm_b = np.linalg.norm(vec2)
    return dot_product / (norm_a * norm_b)

# Ejemplo de vectores
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])

similarity = cosine_similarity(q1, q2)
print(f"Similitud coseno: {similarity}")

De esta forma, la similitud coseno muestra qué tan similares son las preguntas en cuanto a su significado en el espacio de embeddings.