Scraping TripAdvisor for Airlines' Customer Reviews

Mustafa Koroglu
Posted on Aug 5, 2017

Contributed by Mustafa Koroglu. He is currently enrolled in the NYC Data Science Academy remote bootcamp program taking place from June-September 2017. This post is based on his third class project, web scraping, focusing on the use of web scraping techniques to acquire, process, and analyze raw data from the web. 

Introduction

This blog post will try to shed some light on the airline rankings, especially for airline companies from North America. Questioning independent organizations' ranking results comes to me interesting as the customer reviews should matter at this point. A recent news at CBC.ca is also asking the same question referring to another survey result conducted by an independent market research firm (the news can be reached from here). Besides these facts, my main aim is to expose any available marketing strategies for the airline companies from the customer reviews.

This project is about scraping customer reviews for eight major airlines from tripadvisor.ca. These companies include Air Canada, American Airlines, British Airways, Delta Airlines, KLM Royal Dutch Airlines, Lufthansa, Turkish Airlines, and United Airlines.

Data

I used scrapy spider to collect the dataset.  The reviews are spanning the period from January 2016 to the current day, August 4, 2017. The following image below is a sample review, where I scraped the title, rating ,content, date, destination, cabin class, and route. The dataset has in total 70015 reviews. The rating variable ranges from 1 to 5, where 1 is for the worst and 5 is for the best.

 

Visualization

The first graph will introduce the comparison of proportions of ratings across airline companies.

 This barplot shows that Delta Airlines, KLM Royal Dutch Airlines, Lufthansa, and Turkish Airlines have almost 75% of the ratings belong to rating level  4 and 5. If we look at the graph from the lowest rating levels, we see that KLM, Delta Airlines, Lufthansa and Turkish Airlines are the ones having the lowest sharing of rating 1 and 2, respectively.

 

 

 

 

The next barplot provides us the total number of ratings for each cabin class across different airlines. This is the general picture of the dataset in terms of ratings and airlines.

 

 

 

 

 

 

Customer reviews and associated ratings are expected to be fluctuated across seasons. As an illustration, the following the line plot shows an increase on the number of ratings for Summer season for Air Canada customer reviews. It is surprising that the number of ratings for each rating level on June 2017 is much higher than its corresponding value last year. Number of  average rating and rating level 4 are almost double other ratings on August 2016.

Word Frequencies

In this section, I will examine the most frequently used words from the content column for Air Canada customer reviews. The total reviews as well as subset of reviews for lowest and highest rating reviews will be analyzed to get more insights from the text mining. I used the "wordcloud" and "tm" packages in R for this section.

The word cloud (left figure) and the barplot of first twenty most frequently used words show that flight, air, and canada are the words used at most by the customers. In order to better understand customer actions reflected on the reviews, I did the same work for a subset of ratings 1, 2 and ratings 4, 5 as a group of reviews. I also dropped the first three most frequently used words, the same as in the figures above for total reviews. The figures are as follows:

       Positive and negative reviews can be seen from these figures. The most frequent words from high ratings reviews are time, good, service, and seat.  The negative reviews include hour, seat, time, service, toronto, and delay as the most frequent words, among others.

Conclusion

The above analysis can be done for other airlines and compared at one figure with using comparison.cloud function from the same package in R. However,  doing the same analysis for all airline reviews at once might cause a memory allocation problem. To sum up, from this project, we see that analyzing customer reviews from different travel websites will enable the data scientist/analyst to see much better picture of the ratings and reflection of customers' reviews.

Further steps in this project could be:

  • scraping detail ratings from the reviews.
  • Travel tips, which are available on the website for scraping, might be useful to find more direct reflection of customer feelings.
  • Sentiment analysis can be used to get more insightful results.

For my GitHub repository, please visit here. For additional readings about scraping the TripAdvisor, see Peter Johnson's page here.

About Author

Mustafa Koroglu

Mustafa Koroglu

Mustafa Koroglu is a post-doctoral fellow in Global Health Policy Lab focusing on survey data analysis to explain global health shocks to health care utilization. He believes in data-driven decisions and policy implications. He is an active learner...
View all posts by Mustafa Koroglu >

Related Articles

Leave a Comment

Your email address will not be published. Required fields are marked *

Avatar
Undangan Pernikahan Unik February 7, 2019
I just couldn't leave your site prior to suggesting that I extremelly enjoyed tthe standard info an individual provide in your visitors? Is gonna be again regularly in order to investigate cross-check new posts
Avatar
bijoux bulgari replique December 15, 2017
Really excellent article Cat! As a newbie to the world of blogging, it helped me structure a plan to get onto the Huffington Post site (I like to dream BIG!) thank you again xx bijoux bulgari replique http://www.anellobvl.cn/fr/bulgari-bzero1-ring-c1.html

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags