Have you taken a rideshare in America in the last 3 years?

If so, chances are good that it was with either Lyft or Uber. The two companies — both launched in the San Francisco Bay area — are monopolizing the ridesharing industry across most U.S. markets, and are constantly competing with each other for customers’ attention, retention and loyalty.

What if I told you there’s a (fairly) simple way to see how Lyft and Uber’s customers feel about them? That we can track loyalty and user satisfaction with each of these brands, can do so with a high degree of confidence, and that we're not talking about spending hundreds of hours collecting and analyzing every single opinion that's out there on the internet?

We’re also not talking about physically stopping people on the street and asking for their feedback. We’re talking about using actual data that can be easily extracted and analyzed to see how customers rate pretty much any company out there.

Are you intrigued?

We certainly were when we decided to embark on this quest!

Instead of looking at anecdotal evidence about Uber and Lyft, we decided to use the power of Google’s recently released Sentiment Analysis API. We cannot overemphasize how powerful this API really is. Without it, this analysis would have taken us tens of hours (or more!), enormous amount of resources and would have cost a fortune!

Google’s Sentiment Analysis API allows us to extract and analyze people’s views on Lyft and Uber through a single API call. If there was ever a “the future is here” moment, this is it.

I don’t like to keep people waiting, so let’s dive right into the results. After the charts, we'll dive deeper into how it was done (read: technical)

I also need to state the obvious. Just because one company is more loved than another doesn’t mean that their business is inferior to the other, or that it's not doing as well.

Don’t shoot the messenger!

The results. Here's who's loved more.

We began our analysis of the Lyft vs Uber sentiment by looking at the latest reviews that customers left for the respective mobile applications on iTunes. Since both companies are primarily operating through their mobile apps, it sounded like the logical place to start. So what exactly did we do ? We extracted the 500 most recent reviews from iTunes and assigned a sentiment value for each review. Note that the cool part about the Google API is that it assigned a sentiment value based on the actual content of the review, not the number of stars a user gives to an app.

This is how the sentiment towards Uber looks based on these parameters:

What do we learn from this? First, the overall ratings for Uber have been on a downward projection. At its best, Uber’s customers are “OK” with the service, giving it an average of 2.7 out of 5 starts. Second, we can see that the overall trend is not going in the right direction and that — at least based on the small sample we collected — Uber’s users are becoming more and more frustrated with the service, rating it lower and lower.

Now, how do things look for the Lyft application, using the same parameters?

As we can see, Lyft users have a much better opinion about the app than Uber users. We also notice two other critical things. First, Lyft’s ratings over the last five hundred users have been getting better and better over time. Second, Lyft’s ratings are more stable and show a lot less variation in the overall sentiment ratings than Uber. As a side note, it’s interesting to note that Lyft’s lowest average score across the 500 most recent reviews correspond to Ubers highest score during the same time period.

After we saw what people thought about Lyft and Uber in the app store we thought, "Hey, why not looking at the sentiment people exhibit towards the two companies on Twitter?" We had two reasons for choosing Twitter as a platform from which to extract information via the Google Sentiment Analysis API.

First, Twitter allows a larger number of data points to be extracted than iTunes, which provides more accuracy to the overall analysis and statistical model.

Second, customers often use Twitter to communicate with businesses when they have issues with them. Twitter serves as a public “naming and shaming” platform, where customers often expect to get some sort of reaction from the business they’re interacting with. How companies respond to the public naming and shaming shapes how often other people will engage with the brands through social channels.

Here’s what Lyft and Uber’s customer sentiment looks like on Twitter, based on the Google API analysis of the last 8000 tweets published on the platform using the @uber and @lyft hashtags.

What we see from these charts is that both Lyft and Uber are struggling on Twitter. Both companies’ overall scores have been decreasing steadily over time. There are various factors that could explain this trend:

Recent app releases have inadvertently impacted users’ perception of the app. This is often correlated with production bugs or a sluggish app performance.

Neither company allocates enough resources to support their Twitter feeds and get in touch with unsatisfied customers in order to solve whatever issues they’re reporting on Twitter.

If we take a bird's eye view of both Lyft and Uber across the last 1000 tweets and the last 500 reviews, a clear pattern starts to emerge. Let’s look at them:

The conclusion is pretty straightforward: Lyft gets significantly better reviews and sentiment ratings across platforms than Uber does.

Where it's true that Uber is more profitable and popular across most markets where it directly competes with Lyft, the latter’s ability to keep its customers more satisfied could pay off in the long term. It's certainly something the Lyft management tries to promote – the idea that when customers join Lyft, they’re not simply joining another ridesharing company — they’re joining a community. So far — from what we can tell — this strategy is translating into significantly better sentiment ratings for Lyft.

One of the other things we noticed about the Google Sentiment API is that businesses that operate internationally can watch trends happening across the world, and use country-specific breakdowns for sentiment analysis.

Let’s look at Uber’s and Lyft’s international presence and their respective ratings:

Uber operates in multiple countries, so extracting regional data for it was fairly simple (more details on the technical implementation below!)

As we can see, Uber’s average sentiment hovers around 2 out of 5 points on the sentiment scale, with India and Singapore constituting Uber’s biggest detractor and enabler markets.

For Lyft, we could only pull data from the U.S. and Singapore, where Lyft operates through a partnership with the local ridesharing agency.

Comparing how customers look at Uber and Lyft in the countries where Lyft operates shows that in both cases, Lyft has the upper hand in terms of users’ perceptions and reviews towards its ride-sharing services.

To sum up, even when you look at data points for specific countries where both companies operate, Lyft still has the overall upper hand in terms of users’ perceptions, attitudes and sentiments.

The technical analysis behind: How we arrived at the results

Now that we've looked at data points about people’s perceptions of Lyft and Uber, we're sure you're interested in figuring out exactly how we go to the datasets we showed.

Let’s dive right in and learn how to use Google Sentiment API.

The API currently supports three kinds of analysis of text.

Entities Syntax Sentiment

Entities

Entities API documentation gives this description

Finds named entities (currently finds proper names) in the text, entity types, salience, mentions for each entity, and other properties.

To understand its capabilities, let’s try passing in a sample tweet to this API.

It clearly identifies many entities in the statement. It even links to Wikipedia articles.

iPhone 7 : CONSUMER_GOOD

Apple, Y Media Labs : ORGANIZATION

CODRIN ARSENE : PERSON

This can be applied to some really good use cases. Let’s say we want to create a trending topics list. We can pass text through entity API to generate topics of interest and create trending categories. We can group related content and present suggestions.

Syntax

Advanced API that analyzes the document and provides a full set of text annotations, including semantic, syntactic, and sentiment information.

We have come a long way in contextual understanding of a sentence. This has been going on for over 50 years and we have finally managed to have arrived at a technological breakthrough where we can identify the contextual information at a much higher degree. To give you an example of how advanced this is, let’s add a grammatically correct sentence and see how the API breaks it down.

Time flies like an arrow; fruit flies like a banana

Flies was correctly identified based on context. Verb in first context and Noun in the second. ?

This API can be used to identify verbs, nouns and run specific analyses on words. If we're looking at generating stats on how those affect an article, then this is useful. From use case perspective, it's not quite as strong for analyzing our sentence and see if it's correctly inferring the context.

Sentiment Analysis

Advanced API that analyzes the document and provides a full set of text annotations, including semantic, syntactic, and sentiment information.

Sentiment analysis is quite powerful. API can deduce sentiments from arbitrary text. The API itself is straight-forward. Let’s take this ambiguous review for Uber.

It’s clear that the person loves Uber, but rated it 1 star. That’s painful for Uber. Let’s try and fit this through Google sentiment analysis.

Sure enough, it gives a great rating. Here's the rating chart.[2]

Apple iTunes provide RSS of customer reviews for apps in json format.

For example, Lyft iOS app, whose app id is 529379082, the RSS of customer reviews json can be found at : https://itunes.apple.com/rss/customerreviews/id=529379082/json

Similarly, we got the RSS of customer reviews for the Uber app, whose app id is 368677368 through: https://itunes.apple.com/rss/customerreviews/id=368677368/json

We wrote small Go code to parse the json body. For each of the reviews we called the Google sentiment analysis API to get the polarity and magnitude.

In our analysis, we were able to compare Lyft vs Uber by looking at the breakdown of reviews for specific countries where both companies operate. To fetch the RSS of customer reviews for Uber in different countries, replace the country code as specified in ISO_CODE_FOR_COUNTRY at “sg” in below url:

https://itunes.apple.com/sg/rss/customerreviews/id=368677368/json

For example, to get United States based reviews, the country code is “US” and the url will be :

https://itunes.apple.com/US/rss/customerreviews/id=368677368/json

So how is Google sentiment analysis different from just App Store ratings? Google sentiment analysis overcomes the user’s bias in giving star ratings and only considers the true description. We can also combine this with Twitter feeds sentiment analysis, along with other forums and internet feeds, to get overall sentiment from everyone. Then, instead of rating for just an app, we can obtain a rating for a Brand!

Twitter Stream ---> Google NL API ---> Google BigQuery ---> Google Data Studio [3]

If we set up architecture as shown above, we can easily generate sentiment analysis on brands, which is much more valuable.

Links to get you started with the Google API:

Summary

In this article we took a deep dive into the Google Sentiment Analysis API by leveraging its capabilities to compare two popular American ridesharing companies.

As we saw, this amazing API can provide lots of interesting and useful information for company executives. Knowing your brand engagement across markets and geographical regions, as well as your users’ and customers’ overall perception towards the brand, is critical to the overall success of any digital business.

The overall opportunities for Language Processing and Machine Learning platforms are endless. Across the board, companies receive a tremendous amount of feedback through various channels. Google Sentiment’s API is paving the way for developers and business executives to become aware of the overall sentiments their current or prospective users have towards their brand, products and services.