Skip to content

RahulReady/Food-Pulse

Repository files navigation

Food-Pulse

Goal: Obtain a real time analysis for the top food items (via Google reviews) of a particular restaurant.

"The Investor Pitch":
https://docs.google.com/presentation/d/1zmt0hzcZGN_2xa4g52mCSlGNywuGCue9xSln1kV3Xp8/edit

Check out our finished project (includes a video tutorial) !
https://chrome.google.com/webstore/detail/food-pulse/jnaadlondamcfedkbhlkpojimipbclbo?hl=en&authuser=0

Version 1.1

Navigating this madness

  • DataScience
    • output_dir: Trained Spacy model.
    • scrapped_restaurant_reviews: contains a scraped restaurant json file for local testing (intentionally misspelled).
    • NER_CRF.ipynb: Attempt at using Conditional Random Fields for NER. Shout out to Susan Li's article on CRF implementation.
    • NER_Spacy.ipynb: Notebook that created the trained Spacy model. Shout out to Spacy Docs.
    • review_train.txt: Review training data. Big shout out to this research paper for the model training data. Unfortunately, this was not the most 'high quality' data due to many errors in the labeled data, but when you have a 0 dollar budget, this was gold.
  • extension
    • css: Css for the Materialize library and for the popup.
    • content.js: Script that sends the restaurant name from the webpage to the extension.
    • manifest.json: Template for setting up the Chrome extension.
    • materialize.min.js: Javascript add-on features from the materialize library.
    • popup.html: The face of Food Pulse (interface you interact with).
    • popup.js: The heart of Food Pulse (sends and receives messages from the Lambda function among other things).
  • src (brain 1):
    • lambda_function.py: What the lambda functions runs by default. Runs the review scraper, invokes lambda function 2, and returns the top foods.
    • review_scraper.py: Scraping Google reviews script.
  • src1 (brain 2):
    • entity: Contains the final trained model to be uploaded to lambda (same one in DS folder).
    • lambda_function.py: Runs the ner, sentiment analysis, and returns the result to lambda function 1.
    • ner.py: Performs named entity recognition on the reviews.
    • sentiment.py: Performs sentiment analysis and returns the top food items.
  • .gitignore: Files we don't push to this repo.
  • docker-compose.yml: Setting up the local Docker env to be used for local testing.
  • Dockerfile: Instructions needed to setup the Docker image.
  • Makefile: A set of instructions that can be run with a single specified command. This was used for local testing that simulated running Lambda functions on the cloud, and helped create deployment packages for Lambda. Big shoutout to Jairo Vadillo.
  • requirements-scraper.txt: Update needed.

Special Thanks

  • Madhur Malhotra - For helping us create a bomb a$$ logo and powerpoint presentation.
  • Pranay Marella - For helping with tricky front-end features.
  • Leyuan Yu - For helping with the Data Science components.

About

Finding Top Dishes at your Local Restaurant

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •