Skip to content

maneeshrajan/movie_recommender

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Movie Recommender

Movie Recommender using the MovieLens dataset.

Features

  • linear and ALS models
  • similar movies
  • uses the full dataset

Running the App in Local Mode

The movie recommender app is designed for AWS, but can also run locally. The code assumes that port 8000 is available.

Requirements:

  • Python 3
  • NumPy, SciPy

Change to the "app_local" directory. For example:

cd E:\proj2018\movies_recommend\python\app_local

Run the Python server:

python server.py

Under Windows, try to avoid clicking inside the "python server.py" command prompt Window. Doing so seems to freeze the Python interpreter until a key is pressed. If an API request is made during this "freeze" time period, there will be no response. Even after a key is pressed, the software might crash. In the event of software crash, rerun "python server.py".

Open the website in a browser - double click "python/app_local/web_page/index.html"

Running the Full Project

Software Requirements

  • Python 3, with NumPy, SciPy, boto3, requests
  • C++ compiler

Preparations

Installing the MovieLens dataset

  • This project uses the following file: links.csv, movies.csv, ratings.csv, tags.csv
  • Copy the small dataset files to "python/100k_data/data/"
  • Copy the large dataset files to "python/full_data/data/txt/"

The following network port numbers are assumed to be available:

  • 8000 - used by "python/app_local/server.py". Change via the "port_number" variable.
  • 10000 - used by "cluster_server.py" files. Change via the "port_number" variable.
  • 10001 - used by "worker_server.py" files. Change via the "port_number" variable.

Necessary Code Changes

You do not have to do the following right away. You can return to this list when the code does not work.

TMDB API Key

For the "download_tmdb_data.py" file to work, the "api_key" variable needs to be specified.

AWS Lambda Build Bucket

For the "python/app/build.py" and "ec2_build.py" files to work, the "project_files.py" needs to have a valid "s3_bucket_name" variable.

AWS Lambda API Endpoints

The API endpoints at "python/app/web_page/js/global.js", under the "lambda_apis" variable, need to be updated.

Documentation

Under /doc:

About

Movie recommender using the MovieLens dataset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 77.6%
  • C++ 16.2%
  • JavaScript 4.3%
  • HTML 1.4%
  • CSS 0.5%