import pandas as pd import os DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data") def load_data(): products = pd.read_csv(os.path.join(DATA_DIR, "products.csv")) users = pd.read_csv(os.path.join(DATA_DIR, "users.csv")) ratings = pd.read_csv(os.path.join(DATA_DIR, "ratings.csv")) return products, users, ratings def build_user_item_matrix(ratings_df): return ratings_df.pivot_table( index="user_id", columns="product_id", values="rating" ) def get_user_preferences(users_df, user_id): user = users_df[users_df["user_id"] == user_id] if user.empty: return {} user = user.iloc[0] return { "preferred_categories": set( user["preferred_categories"].split(",") ) if isinstance(user["preferred_categories"], str) else set(), "budget_min": float(user["budget_min"]), "budget_max": float(user["budget_max"]), "favorite_brands": set( user["favorite_brands"].split(",") ) if isinstance(user["favorite_brands"], str) else set(), "name": str(user["name"]), "age": int(user["age"]), }