GMARTINEZMILLA mariaorri commited on
Commit
fdf715a
1 Parent(s): f25f15d

Update utils.py (#10)

Browse files

- Update utils.py (ee5a880430c4eacefdf2d0c0cc64b579fdc12d6d)


Co-authored-by: María Ortega Rivas <mariaorri@users.noreply.huggingface.co>

Files changed (1) hide show
  1. utils.py +1 -52
utils.py CHANGED
@@ -57,7 +57,7 @@ def recomienda_tf(new_basket, cestas, productos):
57
  })
58
  recommendations_df = pd.DataFrame(recommendations_data)
59
 
60
- return recommendations_df
61
 
62
  def retroalimentacion(cestas, cesta_nueva):
63
  # Pasamos de lista a cadena de texto
@@ -88,54 +88,3 @@ def retroalimentacion(cestas, cesta_nueva):
88
 
89
  return None
90
 
91
- # def recomienda_tf(new_basket,cestas,productos):
92
- # # Cargar la matriz TF y el modelo
93
- # tf_matrix = load('tf_matrix.joblib')
94
-
95
- # count = load('count_vectorizer.joblib')
96
- # # Convertir la nueva cesta en formato TF (Term Frequency)
97
- # new_basket_str = ' '.join(new_basket)
98
- # new_basket_vector = count.transform([new_basket_str])
99
- # new_basket_tf = normalize(new_basket_vector, norm='l1') # Normalizamos la matriz count de la cesta actual
100
- # # Comparar la nueva cesta con las anteriores
101
- # similarities = cosine_similarity(new_basket_tf, tf_matrix)
102
- # # Obtener los índices de las cestas más similares
103
- # similar_indices = similarities.argsort()[0][-4:] # Las 4 más similares
104
- # # Crear un diccionario para contar las recomendaciones
105
- # recommendations_count = {}
106
- # total_similarity = 0
107
- # # Recomendar productos de cestas similares
108
- # for idx in similar_indices:
109
- # sim_score = similarities[0][idx]
110
- # total_similarity += sim_score # Suma de las similitudes
111
- # products = cestas.iloc[idx]['Cestas'].split()
112
- # # Usar un conjunto para evitar contar productos múltiples veces en la misma cesta
113
- # unique_products = set(products) # Usar un conjunto para obtener productos únicos
114
- # # Con esto evitamos que la importancia crezca por las unidades
115
- # for product in unique_products:
116
- # if product.strip() not in new_basket: # Evitar recomendar lo que ya está en la cesta
117
- # recommendations_count[product.strip()] = recommendations_count.get(product.strip(), 0) + sim_score
118
- # # Almacena el conteo de la relevancia de cada producto basado en cuántas veces aparece en las cestas similares, ponderado por la similitud de cada cesta.
119
- # # Calcular la probabilidad relativa de cada producto recomendado
120
- # recommendations_with_prob = []
121
- # if total_similarity > 0: # Verificar que total_similarity no sea cero
122
- # recommendations_with_prob = [(product, score / total_similarity) for product, score in recommendations_count.items()]
123
- # else:
124
- # print("No se encontraron similitudes suficientes para calcular probabilidades.")
125
-
126
- # recommendations_with_prob.sort(key=lambda x: x[1], reverse=True) # Ordenar por puntuación
127
- # # Crear un nuevo DataFrame para almacenar las recomendaciones
128
- # recommendations_data = []
129
-
130
- # for product, score in recommendations_with_prob:
131
- # # Buscar la descripción en el DataFrame de productos
132
- # description = productos.loc[productos['ARTICULO'] == product, 'DESCRIPCION']
133
- # if not description.empty:
134
- # recommendations_data.append({
135
- # 'ARTICULO': product,
136
- # 'DESCRIPCION': description.values[0], # Obtener el primer valor encontrado
137
- # 'RELEVANCIA': score
138
- # })
139
- # recommendations_df = pd.DataFrame(recommendations_data)
140
-
141
- # return recommendations_df
 
57
  })
58
  recommendations_df = pd.DataFrame(recommendations_data)
59
 
60
+ return recommendations_df.head(5)
61
 
62
  def retroalimentacion(cestas, cesta_nueva):
63
  # Pasamos de lista a cadena de texto
 
88
 
89
  return None
90