Paras Arora
parasarora
Published in
4 min readApr 18, 2017

--

Review Highlights: An easier way to dine

Review Highlights: Generating meaningful and actionable insights from User Generated Content

User generated content platforms like Zomato generate millions of reviews every month. Its perhaps one of its key differentiating factors. User rely on Zomato reviews for deciding which restaurants to visit, but at the same time there are chances of getting lost in 1000s of reviews that a restaurant may have.

We set out to give users a quick summary of all the reviews to help them decide quickly. We call this product — Review Highlights

What do people look for while reading reviews:

  1. Three pillars: Food, Service & Ambience. User surveys revealed that people like to gauge the above three features of a restaurant by reading through the reviews. Users wanted to get an overall sense of the place on these three pillars.
  2. What people like: Users wanted to figure out what are the best dishes to try at a restaurant. Some users wanted to know the music scene of a place while others were looking for deeper insights like ‘Is this place good for a romantic date?’.

Review Highlights v1

Based on our user survey we decided to create a system that provides users with all the requisite information in a succinct manner. Here’s the first cut that we decided to develop:

Review Highlights Initial vision

The Holy Grail — Data

For us to build this system, we needed highly structured data. We needed data of dishes and attributes that people would like to see, we needed to classify this data into Food/Service/Ambience.

This was chicken and egg problem so we decided to run our system without any constraints and create a list of words where we found positive sentiment.

Here’s how we went about this process:

  1. Used Python’s in-built Parts of Speech (PoS) tagger and write custom grammar to generate a list of words. Our grammar was specially designed to handle bigrams, trigrams and social media language.
  2. Did sentiment analysis on the above data to create a list of words that we will encounter (only positive words)
  3. We planned to use the list generated from step 2 as our universe of words that we would like to play in
  4. We augmented this list with dishes data that we have from our online ordering platform.

Here are the result that we got for a restaurant (r)

What people love here:

Chicken Teriyaki Sandwich, Chick Teriyeki Sandwich, Chicken Teriyaki, Quick Service, Good Chicken Teriyaki, Good service, Good restaurant,….

It was quite similar to review summary feature that you get at Tripadvisor. Here’s an example:

Tripadvisor review summary

We weren’t happy showing our customers this sort of information which was structured yet less meaningful. Thus we decided to build a Quality Enhancement Service.

Quality Enhancement Service:

  1. Spelling consolidation: UGC and social media feed has a lot of spelling errors. For instance there are about 73 spellings of famous Indian snack — ‘Chole Bhature’. We used Levenshtein Distance, Caverphone and clustering to consolidate these spellings.
  2. Hierarchy: We wanted to build a dish hierarchy that would help us showcase varied items where possible instead of showing all sandwiches or burgers from a place. We used our existing cuisine mapping for a restaurant and tried to map dishes to those cuisines. Something like: Italian -> Pizza -> Chicken Pizza->Spicy Chicken Pizza, Chicken cheese pizza, …. This was hard and required fair bit of manual intervention and cleaning up.
  3. Handling Menu Changes and Blacklisting words: Restaurants change their menus at around 6 months mark and some of the items may not be available in the new menu. While we used time-decay functions to address this issue, we were not able to completely week it out. Thus we developed a manual over-ride for blacklisting not-applicable attributes. This is the only manual over-ride in the entire system.

Design iterations:

We did some changes to our design and split the words across different pillars to make them discoverable and further aid decision making. Here’s how the second iteration looked like.

Review Highlights version 2 (pre quality engine)

Here’s how final version looks as of today:

Review Highlights Production design

Results: Proof of the pudding is in eating it. We ran in-app surveys asking users if they liked the feature.

User survey

An over-whelming 86% users (sample size >40k) found the information helpful.

Next Steps: Scaling this to non-english markets

You can read the official Zomato blog on this here: http://blog.zomato.com/post/156674728136/an-easier-way-to-dine

Team: Amit Kushwaha, Shubham Chaudhary, Amit Kumar Jaskaran Virdi

--

--

Paras Arora
parasarora

Product @Google, Next Billion Users, Ex-Zomato, Entrepreneur. Views are personal