Constellation

Constellation

Jesse Gaulin, Bryan Nguon, Huyen Nguyen, Brian Zylich

This web application is designed to allow users to easily find businesses near them, as well as inform them of the quality of the location. In addition, this application suggests alternative businesses nearby from the same category of business. This is done by accessing the APIs for Yelp and Google and displaying combined ratings and reviews. We designed a novel ranking algorithm, combining information from Google and Yelp.

DEMO: LINK
CODE: LINK

Purpose

This application is necessary because when consumers are searching for a business they want to compare different reviews for each business in order to decide where to go. This would be used by somebody who is trying to decide which business or location to visit, whether it be a restaurant, a gym, or any other type of business. By combining reviews, the application helps users save time and get a better idea about the quality of a business or location.

Requires: To run node.js and react:
  • git pull
  • cd client
  • yarn install
  • cd ..
  • yarn install
  • yarn dev

Methods

To gather the data on businesses, we used the Yelp API and Google API. The Node.js framework was used to develop the server, and the React.js framework was used to develop the user interface. The main focus of this project was to develop an intelligent ranking algorithm that combined aspects of the businesses’ profiles on Yelp and Google Places to produce a listing of the top businesses in a given category that are nearby the user.

Data

We used the Yelp and Google Places APIs to retrieve information and reviews about businesses.

Given a search term and a zipcode, we obtain a list of relevant businesses. Using the top result, we can obtain the overall rating for that specific location as well as a list of nearby busiensses, list of reviews, number of reviews, etc. With this data, we apply tf-idf on the reviews to extract and display relevant key words and we also combine the reviews across each platform to present a more informative rating. The application also utilizes Google Maps API to allow the user to see nearby business within proximity of their original search.

Key Takeaways

  • Extracting key words via tf-idf is not ideal, sometimes it will return words that are simply nouns and do not describe the business well.
  • APIs have a limit of the amount of information you can get. Specifically, Google Places API gives 5 reviews, and Yelp API gives only 3 reviews.
  • The application is not viable for production use because it violates the terms of service and the number of API calls are limited.
  • Evaluation

    The use cases that were proposed for evaluation were:

  • The application is able to gather and return relevant details for the searched business or location.
  • The application is able to identify nearby businesses of the same category. The Google Maps snippet can be used to visually justify the accuracy of the application in terms of addresses of nearby businesses, their reviews, locations, etc.
  • The application presents users with information that cannot be found at Yelp or Google Places when either of these is used by themselves.
  • This is an example of a user looking up The Fix.

    As illustrated by the images, the user was able to retrieve information from both Google and Yelp. Specifically, the reviews from Yelp and Google were displayed, as well as the combined review score, and information about similar businesses such as the Similar Average Rating.

    Possible Areas for Exploration

  • Calculate and compare ratings of individual locations with ratings of the overall business.
  • Perform sentiment analysis on key words to separate them into positive key words and negative keywords.
  • Perform image tagging for reviews and add them to the list of keywords, and perform sentiment analysis.
  • Use yelp's offline dataset to pre-train the tf-idf model.