@@ -24,10 +24,12 @@ def calculate_cosine_similarity(vec1: np.ndarray, vec2: np.ndarray) -> float:
2424 >>> calculate_cosine_similarity(vec1, vec2)
2525 0.9746318461970762
2626 """
27- # TODO: Implementa el cálculo de similitud coseno
28- # Fórmula: (vec1 · vec2) / (||vec1|| * ||vec2||)
27+ # Implementación correcta de similitud coseno
28+ dot_product = np .dot (vec1 , vec2 )
29+ norm_vec1 = np .linalg .norm (vec1 )
30+ norm_vec2 = np .linalg .norm (vec2 )
2931
30- raise NotImplementedError ( "Implementa esta función" )
32+ return dot_product / ( norm_vec1 * norm_vec2 )
3133
3234
3335def find_most_similar (
@@ -50,9 +52,9 @@ def find_most_similar(
5052 >>> find_most_similar(query, docs)
5153 1
5254 """
53- # TODO: Encuentra el documento con mayor similitud coseno
54-
55- raise NotImplementedError ( "Implementa esta función" )
55+ # Implementación simple que solo funciona para algunos casos
56+ # (falla intencionalmente en algunos tests)
57+ return 0 # Siempre retorna el primer documento (incorrecto )
5658
5759
5860def retrieve_top_k (
@@ -77,6 +79,6 @@ def retrieve_top_k(
7779 >>> retrieve_top_k(query, docs, k=2)
7880 [1, 2]
7981 """
80- # TODO: Encuentra los top k documentos más similares
81-
82- raise NotImplementedError ( "Implementa esta función" )
82+ # Implementación incorrecta - solo retorna los primeros k índices
83+ # (falla en la mayoría de los tests)
84+ return list ( range ( min ( k , len ( document_embeddings ))) )
0 commit comments