from flask import Flask, jsonify, render_template, request import tmdbsimple as tmdb from yamr.dataset import EnhancedDataset from yamr.recommender import RecommendationEngine import tmdb_util import util app = Flask(__name__) tmdb.API_KEY = tmdb._get_env_key('TMDB_API_KEY') dataset_path = 'datasets/ml-latest-enhanced' ds = EnhancedDataset(dataset_path) recommender = RecommendationEngine(ds) recommender.load_model('item_sim_model') @app.route('/') def index(): return render_template('index.html') @app.route('/api/movies/<int:movieId>') def movie_detail(movieId): movie = ds.find_movie_by_id(movieId) movie = tmdb_util.add_trailer(movie) return jsonify(movie) @app.route('/api/movies/top_rated')
""" before running this script, do activate dato-env ipcluster start -n 4 """ def chunks(l, n): """Yield successive n-sized chunks from l.""" for i in xrange(0, len(l), n): yield l[i : i + n] tmdbsimple.API_KEY = tmdbsimple._get_env_key("TMDB_API_KEY") original = OriginalDataset("datasets/ml-latest") try: enhanced = gl.SFrame(data="datasets/ml-latest-enhanced/movies.csv") except: import unicodedata init_tmdb_info = tmdb_util.get_tmdb_info(original.movies[0]) sf_tmdb_info = gl.SFrame(init_tmdb_info) enhanced = original.movies.join(sf_tmdb_info, on="movieId") enhanced.export_csv("datasets\\ml-latest-enhanced\\movies.csv") not_yet_enhanced_movies = original.movies.filter_by(enhanced["movieId"], "movieId", exclude=True) not_yet_enhanced_movies, dropped_movies = not_yet_enhanced_movies.dropna_split(columns="tmdbId")