We were brainstorming on what we could possibly make and we came up with implementing sentiment analysis in current applications. We thought of one of the best platforms has reviews and the first that came to mind is yelp. In yelp, there are millions of reviews where the actual feelings about specific foods from specific restaurants go unexplored because nobody has enough time to read it all. We thought if we could use their comments to create a ranking of the food offered at the restaurant it will be easy for first timers to figure out what to eat.
What it does
When the user searches for surrounding restaurants, the algorithm collects yelp reviews for each of those restaurants if not already calculated. Then the application scans the reviews for the mention of specific foods. Then it analyzes user sentiment about each food and creates a table of positive, neutral, and negative. Then it drafts a menu for a restaurant based on popularity of how much it is mentioned and the culmination of the user ratings of the food.
How we built it
Getting the algorithm to collect yelp reviews was done through a simple html parser searching for paragraphs using the class identifier of "description". We decided to use IBM Watson for natural language processing and sentiment analysis. It simply compares nouns looking for whether it is a food and then ibm watson analyzes the sentiment directed towards the noun. Then it adds the entry to a hash map basically creating the entry or adding to it if already pre-exisiting.
Challenges we ran into
- IBM Watson only allows 1000 free API calls and yelp reviews per restaurant can have from 50 to 1000 reviews. It was clear IBM Watson was not going to work out so we decided to create our own sentiment analyzer but the downside is the time spent training the analyzer.
- Accuracy was a problem because IBM Watson is optimized for everything rather than just food related sentiment so the accuracy was at maximum of 80% for test cases.
- Domain.com rejected our attempts to use a domain of our choice making us unable to have a domain.
- Google Maps API was deprecated and restricted our options in API usage.
Accomplishments that we're proud of
We are proud that we created a working convolution neural network for sentiment analysis using python and tensorflow within a 24 hour hackathon. Creating an application that helps with a legitimate issue and has business applications. We are also proud of overcoming all the issues, big and small, that we faced along the way.
What we learned
We learned a lot of things including:
- How to set up a website using react and github site
- How sentiment analysis works and how to create a convolution neural network that implements it
- How to integrate IBM Watson with our program
- How to parse html for specific data using data collectiont techniques
What's next for Apeeling Eats
We are planning to:
- Implement our own design of sentiment analyzer
- Implement a more optimized scraper for better parsing speed
- Implement a more intuitive ranking system rather than a linear number and giving an output of 1-5 stars
- Provide options for small businesses to see what they can improve on through our application