from sklearn.metrics.pairwise import cosine_similarity import numpy as np def calculate_cosine_similarity(user_embedding, product_embeddings, product_ids, top_n=5): user_embedding = user_embedding.reshape(1, -1) product_embeddings = np.array(product_embeddings) similarities = cosine_similarity(user_embedding, product_embeddings).flatten() top_indices = similarities.argsort()[::-1][:top_n] recommendations = [(product_ids[i], similarities[i]) for i in top_indices] return recommendations