Application: https://reel-change.herokuapp.com/
Content platforms such as Netflix or Hulu use AI to recommend programs that appeal to viewer’s individual tastes. However, most of these recommendation algorithms lack an ability to suggest a more diverse array of films outside of viewers typical preferences. Our machine learning application bridges this gap by suggesting foreign films, low-budget films, and films directed by women to users.
We first obtained data from The Movie Database API and conneted tables on female directed films, foreign language films, and low-budget films to a SQL database. We then created a similarity matrix through Scikit-Learn’s CountVectorizer and cosine_similarity tools, which returned a sorted list of films based on each film’s unique similarity score. Data was sorted for each endpoint in our final Flask application by percent_female_directed, foreign language, and budget bins from 0 to 15 million.
Our final application includes the following:
- A recommendation page which sorts films by similarity scores only.
- A female focused page that displays female-directed films and percentage of female cast and crew members.
- An international page which displays an interactive map of similar foreign language films.
- A low budget page that displays films with budgets less than $15 million.
movie_app/data_cleaning
- Contains our final data cleaning Jupyter notebook, DataCleaningNew.ipynb. Here we generated data from the Movie Database API and developed a recommender system through Scikit Learn's cosine similarity function.
movie_app/static
- css: Contains our CSS files for styling each page
- data: Contains movie_db.csv file generated through SQLalchemy
- images: Contains our homepage image and TMDB logo
- js: Contains our JavaScript files for our index page and each additional endpoint.
movie_app/templates
- Contains each html file for our index page and each additional endpoint.
movie_app/app.py
- Our main python Flask application that routes data to our similarity.py app and each additional endpoint.
movie_app/similarity.py
- Our similarity matrix that sorts by similar movies from the user’s input.
requirements.txt
- Essential package dependencies needed for our final Heroku application.
female-sort.mov
map-view.mov
low-budget.mov
Data collected from The Movie Database