This machine learning program will predict movie ratings based on runtime, director, genre, and poster image.
Please download the models here and place the models
folder in the same directory as predict_rating.py. Please also download an updated model here and place it in the models
folder.
JavaScript package manager, npm, and react (can be done through npm) should be installed.
Python 2.7 should be used.
You will need the following modules installed in your local machine in order to run the script:
numpy
pandas
sklearn
urllib
PIL
scipy
keras
tornado
Everything will run in localhost 127.0.0.1
Start the Tornado back-end:
$ cd server
$ python hi.py
If a window pops up asking "Do you want the application “Python.app” to accept incoming network connections?" click "Allow."
Start the React front-end:
$ cd ui
$ npm install
$ npm start
Go to "localhost:3000" in your browser.
Parameter | Data type | Required? | Notes |
---|---|---|---|
Runtime | int | Yes | |
Director | string | No | Only choose director from the drop-down options |
Genre | string | No | For all genre, only choose genre from the drop-down options |
Actor | string | No | IMPORTANT: Currently Unstable. Some options may not work. Also, search is currently very slow; it is advisable to just scroll through the options and click |
Poster URL | string | Yes | Only use IMDB image url's: goto the IMDB page for a movie; click the poster image; right-click and select 'Copy Link Address' or equivalent |
Please wait for around 5 seconds for the prediction output. The output will be shown as follows:
Predicted rating:
x
where x is the rating (double) that follows a 5-star rating system [0-5].
Starting Screen | Results Screen |
---|---|
The best way to see the MVP is to checkout the commit with message "MVP Done": $ git checkout 50760f0
. You should restart the back-end server. After you are done looking around, you can go back to the most current branch by$ git checkout master
.
- Drop-down menu for Director, Genre, Actor
- "Prettier" UI
- Display poster passed
- Slide show of posters
- Improve model by adding more features (actors)
- Try different model storage to improve prediction speed, if possible
- Error Handling
- Decouple preprocessing and predictor
Starting Screen | Results Screen |
---|---|
- REST API
- Train (and use) a Model
- More than one service
Our JIRA subscription ended; however, we followed the agile workflow, doing sprints, stand-ups, and retros.
- Stabilize Actor parameters
- Faster indexing for Actor options
- Director and Actor name encoding problem (quotes and Unicode)
- Add wait-time
- Star Rating display