From bb579f2f6f491967a78fb38a62a77d0d8e032823 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 26 Jun 2018 17:12:43 +0200 Subject: [PATCH] fix per product score calculation --- recommendation_engine.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recommendation_engine.py b/recommendation_engine.py index 8608dd1..98c1b26 100644 --- a/recommendation_engine.py +++ b/recommendation_engine.py @@ -107,15 +107,15 @@ class Engine: ) videos += playlists[:channels['globalKeywords']] playlists = playlists[channels['globalKeywords']:] - # Count tags for the user + # Count products the user has seen count = defaultdict(lambda: 0) for event in user.get('events', []): if event.get('data', {}).get('product'): count[event['data']['product']] += 1 - # For each tag in playlist, increment score by count + # For each product in playlist tags, increment score by count for playlist in playlists: score[playlist['name']] = random.random() - for tag in [tag for tag in playlist['tags'] if tag not in sliders]: + for tag in set(playlist['tags']) & set(count): score[playlist['name']] += count[tag] # Select highest scoring playlists videos += sorted(