Skip to content

A Movie Recommendation and review system. Data taken from IMDB. Used collaborative filtering for Recommendation system. Sentiment analysis using NLP. Deployed on Heroku. Developed using Flask.

License

Notifications You must be signed in to change notification settings

abhishek-parashar/Binge-Watcher

Repository files navigation

Binge-Watcher

A Movie Recommendation and review system. Data taken from IMDB. Used collaborative filtering for Recommendation system. Sentiment analysis using NLP. Deployed on Heroku. Developed using Flask.

Functionalities

  • Multilingual, Movies available in almost all the languages.
  • Autocomplete Option, Suggests movie names.

  • Details about the cast and information about the cast

  • Reviews regarding the particular movie, Classification as positive or negative review

  • Recommended movies, Movies similar to the particular movie.

Structure

The directory contains web sub directories and a sub directory for hosting model and other scripts:

  1. main.pyThe file which contains all the main backend operations of the website and used to run the flask server locally.

  2. Procfile for setting up heroku.

  3. requirement.txt contains all the dependencies.

  4. templates contains the html file.

  5. static contains the css file.

Codebase

The entire code has been developed using Python, HTML, CSS, Javascript programming languages and is hosted on Heroku. The analysis and model is developed using SkcitLearn library and various machine learning models, The website is developed using Flask.

How to run the project:

  1. Open the Terminal.
  2. Clone the repository by entering https://github.com/abhishek-parashar/Binge-Watcher.
  3. Ensure that Python3 and pip are installed on the system.
  4. Create a virtualenv by executing the following command: virtualenv venv.
  5. Activate the venv virtual environment by executing the follwing command: source venv/bin/activate.
  6. Enter the cloned repository directory and execute pip install -r requirements.txt.
  7. Now, execute the following command: flask run and it will point to the localhost server with the port 5000.
  8. Enter the IP Address: http://localhost:5000 on a web browser and use the application.

Dependencies

The following dependencies can be found in requirements.txt:

  1. scikit-learn
  2. Flask
  3. Gensim
  4. pandas
  5. numpy
  6. scikit-learn
  7. gunicorn
  8. NLTK

I tried many models for sentiment analysis I got the best results with Multinomial Naive Bayes.

Recommendation System developed using Cosine similarity (Collaborative Filtering)

References

For Building machine learning model:

  1. https://medium.com/themlblog/splitting-csv-into-train-and-test-data-1407a063dd74
  2. https://towardsdatascience.com/multi-class-text-classification-model-comparison-and-selection-5eb066197568
  3. https://medium.com/@robert.salgado/multiclass-text-classification-from-start-to-finish-f616a8642538
  4. https://www.analyticsvidhya.com/blog/2018/04/a-comprehensive-guide-to-understand-and-implement-text-classification-in-python/
  5. https://www.districtdatalabs.com/text-analytics-with-yellowbrick
  6. Applied AI course- https://www.appliedaicourse.com/

For Building the Website and Deploying it:

  1. https://towardsdatascience.com/designing-a-machine-learning-model-and-deploying-it-using-flask-on-heroku-9558ce6bde7b
  2. https://towardsdatascience.com/deploying-a-deep-learning-model-on-heroku-using-flask-and-python-769431335f66
  3. https://medium.com/analytics-vidhya/deploy-machinelearning-model-with-flask-and-heroku-2721823bb653
  4. https://www.youtube.com/watch?v=UbCWoMf80PY
  5. https://www.youtube.com/watch?v=mrExsjcvF4o
  6. https://blog.cambridgespark.com/deploying-a-machine-learning-model-to-the-web-725688b851c7

Complete Tutorial:

https://youtu.be/8KO-rdsWMjk