Coder Social home page Coder Social logo

mehmetoktay2016 / movie_recommender Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shiyuliucolumbia/movie_recommender

0.0 1.0 0.0 89 KB

A movie recommendation web application based on Flask, postgresql and spark

Python 10.67% HTML 11.25% Jupyter Notebook 78.09%

movie_recommender's Introduction

Movie Recommender

1. Overview

This is a Movie Recommendation System mainly based on Flask, PostgreSQL and Spark. It mainly has two parts:

  • The web server part uses Flask and PostgreSQL as backend, bootstrap and jQuery as frontend.
  • The recommendation part uses three methods to do the recommendation. 1. find highest weighted mean of movie ratings 2. do TF-IDF on movie overviews and find top movies with highest cosine-similarity(content based) 3. Spark ALS algorithm(a kind of collaborative filtering user-user recommendation).

2. Dataset

We use Netflix Prize data to do the algorithm analysis. After analyzing the features of each algorithms, we choose to use MovieLens dataset since it has more movie information.

3. Software Package Installation

  • Spark: Download .sh installation script and install manually.
  • Postgres: brew install postgresql.
  • finspark : $ pip install findspark

All packages list below can be installed directly by Anaconda.

  • Flask: $ pip install flask
  • sqlalchemy: $ pip install sqlalchemy
  • pandas: $ pip install pandas
  • sklearn: $ pip install sklearn
  • numpy: $ pip install numpy

4. Directory

  • algorithm_analysis: The seven recommendation algorithms we compared in our project.
  • data_preprocessing: preprocess data and insert table into database.
  • templates: web pages.
  • app.py: flask backend.
  • recomEngine.py: three recommendation algorithms used in our web application.

5. Steps to run our application

  1. Use $ pg_ctl -D /usr/local/var/postgres start command to start postgres server, try $ psql -U <database_name> <user_name> command to connect it and create your own postgres database, username and password. Revise these three in 'database.ini' and 'app.py' files.
  2. Download dataset first and use jupyter notebook to run 'preprocessing_csvs.ipynb' file to process the datasets, use 'db_operations.ipynb' file to insert table into database.
  3. run our application: $ python app.py.

movie_recommender's People

Contributors

shiyuliucolumbia avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.