Website (production version coming soon)
Our team noticed a problem with the way restaurants are discovered online. Typically, numeric ratings are just arbitrary numbers (what does a 4 out of 5 really mean??), and there are way too many text reviews to read everything and make an informed decision. So our question was: how can we more intelligently compare restaurants to one another, and give restaurant-goers more meaningful numeric ratings?
What it does
By analyzing and scoring reviews, we mapped restaurants with emphasis on the most positive experiences.
How We Built It
First, we pull a list of restaurants from Google Places within a given radius (in Montreal, of course). We then pull all their text reviews from Google. There are a variety of experiences people write about (good service, bad service, tasty food, undercooked food, etc.). We feed all these reviews into Microsoft Cognitive Services' Text Analytics API hosted on Azure. This API uses machine learning, classification and natural language processing to provide a numerical rating of the sentiment of the text between 0 and 1 (higher means a more positive experience, negative means lower). We then display these restaurants to the user, with emphasis on the most positive experiences. All of the processing of the data is done with Python and stored in a sqlite database, which gets put into use with a google-mapping Flask app.
Challenges We ran into
Mapping on Google Maps, setting up connections to Google and Azure API's, learning how to write in python and how to use flask.
Accomplishments that we're proud of
A working product that we'd actually use! There are lots of improvements and new features to be worked on, but we are happy with our result.
What we learned
Several new languages, API's, and frameworks, and more importantly, effective project management and knowledge sharing.
What's next for UrbanEatfitters
Filtering and searching, scheduled restaurant scans, new locations, mobile friendliness, more analysis from other media and machine learning platforms, recommendations/suggestions, and last but not least, Drunk Mode.