Cosine Similarity¶
Libraries¶
In [1]:
Copied!
# 3pps
import numpy as np
# 3pps
import numpy as np
Functions¶
In [2]:
Copied!
def normalizar_matriz(matriz: np.ndarray) -> np.ndarray:
return matriz/np.expand_dims((np.sqrt(np.sum(np.power(matriz, 2), axis=1))), axis=-1)
def cosine_similarity(matriz: np.ndarray) -> np.ndarray:
return matriz @ matriz.T
def normalizar_matriz(matriz: np.ndarray) -> np.ndarray:
return matriz/np.expand_dims((np.sqrt(np.sum(np.power(matriz, 2), axis=1))), axis=-1)
def cosine_similarity(matriz: np.ndarray) -> np.ndarray:
return matriz @ matriz.T
Main¶
In [3]:
Copied!
X = np.array([
[1, 2, 3],
[4, 5, 6],
[1, 0, 0],
[0, 1, 0]
], dtype=float)
print("Embeddings originales:\n", X)
X_normalized = normalizar_matriz(matriz=X)
print("\nEmbeddings normalizados:\n", X_normalized)
similarity_matrix = cosine_similarity(matriz=X_normalized)
print("\nMatriz de similitud:\n", similarity_matrix)
X = np.array([
[1, 2, 3],
[4, 5, 6],
[1, 0, 0],
[0, 1, 0]
], dtype=float)
print("Embeddings originales:\n", X)
X_normalized = normalizar_matriz(matriz=X)
print("\nEmbeddings normalizados:\n", X_normalized)
similarity_matrix = cosine_similarity(matriz=X_normalized)
print("\nMatriz de similitud:\n", similarity_matrix)
Embeddings originales: [[1. 2. 3.] [4. 5. 6.] [1. 0. 0.] [0. 1. 0.]] Embeddings normalizados: [[0.26726124 0.53452248 0.80178373] [0.45584231 0.56980288 0.68376346] [1. 0. 0. ] [0. 1. 0. ]] Matriz de similitud: [[1. 0.97463185 0.26726124 0.53452248] [0.97463185 1. 0.45584231 0.56980288] [0.26726124 0.45584231 1. 0. ] [0.53452248 0.56980288 0. 1. ]]