Spaces:
Runtime error
Runtime error
File size: 986 Bytes
dddf97f 63d0aa5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from fastai.learner import Learner
import pandas as pd
from tracks import get_unlistened_tracks_for_user, predictions_to_tracks
def get_recommendations_for_user(learn: Learner, user_id: str, limit: int = 5):
not_listened_tracks = get_unlistened_tracks_for_user(user_id)
# Get predictions for the tracks user hasn't listened yet
input_dataframe = pd.DataFrame({'user_id': [user_id] * len(not_listened_tracks), 'entry': not_listened_tracks})
test_dl = learn.dls.test_dl(input_dataframe)
predictions = learn.get_preds(dl=test_dl)
# Associate them with prediction score and sort
tracks_with_predictions = list(zip(not_listened_tracks, predictions[0].numpy()))
tracks_with_predictions.sort(key=lambda x: x[1], reverse=True)
# Pick n and return as full tracks
recommendations = predictions_to_tracks(tracks_with_predictions[:limit])
return {
"user_id": user_id,
"limit": limit,
"recommendations": recommendations
} |