Game of Thrones never stops surprising its viewers. And the way the show’s fans react to the episode never stops surprising our data scientists either. Our ongoing sentiment analysis experiment shows that what the critics focus on is not always the same as what the masses are talking about.
In this week’s episode, Book of the Stanger (season 6, episode 4), the fan reactions to the two main storylines were not what we expected and it’s obvious that the Twitterverse has its own views on which character’s story was more important.
There were seven storylines covered in the episode, spread across an equal number of locations. This time, we are summarizing the sentiments of Twitter users for every storyline shown in this episode instead of analyzing the reaction to each character. This gives us an aggregate score of what viewers thought of each sub-plot. We are also including one example for each of the top three emotions displayed in the charts.
At the Wall
The long-awaited Sansa Stark and Jon Snow reunion finally happened in the first few minutes of this episode. Twitter users seem to have gotten all sentimental over this scene as shown by our sentiment analysis (pun intended). But it’s the Tormund-Brienne chemistry potential that has put this sub-plot’s sentiments so high in the joy category.
Joy – I think Tormund sexily eating a large hunk of meat at Brienne is my favorite thing to happen in this episode of #GameofThrones
https://twitter.com/AlyssaRosenberg/status/732025354261565440
Sadness – RT @ditzkoff: Did we miss the part where Jon casually explains to Sansa that he was stabbed to death and resurrected?
Anger – ‘Brienne is that girl that brings drama up for no f***ing reason #GoTSeason6’
https://twitter.com/jordan_lane/status/732057902035275777
In Runestone aka the Vale
Littlefinger’s back and Twitter users are happy to have another character to hate. With an uncle like Petyr, “who needs enemies?” seems to be the common reaction to his devious plans for little Arryn.
Sadness – When Baelish is your very own ‘Uncle Petyr’ then you are 4000% SCREWED! It’s a bit like having an Uncle Ramsey. #GameofThrones
https://twitter.com/cutler2306/status/732160096378064896
Joy – I am so glad to have Littlefinger’s schemes and dodgy accent back in my life
https://twitter.com/KyleLovesTV/status/732016536257331200
Anger – Petyr Baelish coming back to f*** s*** up in Westeros
https://twitter.com/leilabianka_/status/732013345461653504
In Meereen
Game of Thrones is a fictional show taking place in a fictional world of magic and dragons. But occasionally, the stories and characters resonate to our current realities. Tyrion’s exchanges with Grey Worm and Missandei in this episode were one of those moments. Tyrion’s plan to slowly phase out slavery as opposed to the latter two’s plan to end it quickly, even if it involved bloodshed, drew the Twitterverse into conversations about white privilege and the morality of trying to avoid bloodshed versus ending slavery.
Disgust – Missandei and Grey Worm are fed up with Tyrion’s white privilege.
https://twitter.com/astoldbyTiffy/status/732018273886277632
Sadness – Tyrion: My own recent experience with slavery has taught me the horrors of that institution.” Missandei:“How many days were you a slave?”
https://twitter.com/loai_rahal/status/732150937440137218
Joy – Missandei and Grey Worm the best dressed couple across the narrow sea #DemThrones
https://twitter.com/SupDre/status/732018088003178496
In King’s Landing
The High Sparrow’s charm, manipulation of the people around him and religious fanaticism has made him another fan favorite who steals every scene that he is in. The character is now being compared to real-life politicians and religious leaders.
Joy – Jonathan Pryce absolutely kills his role as high sparrow in the Game of Thrones.
https://twitter.com/PrinceToia/status/732215252461326336
Sadness – Literally can’t understand why the high sparrow is still alive. Tommen so useless. #GameofThrones
https://twitter.com/kelsiwhitney/status/732243657944924160
Disgust – Tweeting during the High Sparrow shit because I can’t manage to listen to this for more than 20 seconds. Such a low point in a great show.
https://twitter.com/aimeok/status/732022373147279360
In the Iron Islands
This episode had another sibling reunion – the Greyjoys. But Theon and Yara’s reunification did not seem to gather much emotion from the show’s fans with so few tweets being made about them that it was not possible to carry out a proper sentiment analysis of this sub-plot.
In Winterfell
Ramsay Bolton is the one character that never disappoints when it comes to our sentiment analysis experiment. He is the only character so far to whom the fans react in such a varied manner that all the emotions are almost evenly spread out in the bar chart.
Joy – RT @spirdeypool: I want to say thank you Natalia Tena. Osha deserved better, in memory of her and her woman power #GameofThrones
https://twitter.com/spirdeypool/status/732030103618764801
Sadness – Why OSHA had to die tho? Why not like….Kill Olly again or sumthin! ???? #GameofThrones https://t.co/T2KlOmpHkJ
https://twitter.com/HelenLuvsVSPink/status/732072036206436352
Anger – They kill OSHA too? GODDAMIT!!! WTF Ramsey! #GameofThrones
In Vaes Dothrak
Daenerys killing all the khals by putting the temple on fire and walking out naked and unburnt was the most talked about scene when it came to the episode’s reviews. The big review websites were covering how actress Emilia Clarke once again did a nude scene, did not use a body double for that and whether it was the right decision for her. But the responses of Twitter users to that scene, while positive, were nowhere near the responses that the Jon Snow-Sansa Stark reunion gathered.
This fact alone shows that when it comes to social media analytics, our perception of what is popular can often be wrong. Data analytics can give us an unbiased picture of what people are actually talking about.
Joy – All I’ve been doing since “Game of Thrones” ended is randomly yelling out “Daenerys Targaryen, THE UNBURNT” at random intervals.
https://twitter.com/The_SAlexander/status/732039081140457472
Fear- DAENERYS THE UNBURNT WHO KILLED DOZENS OF GREAT KHALS OMFG
https://twitter.com/ayussssha/status/732109838386237440
Disgust – Disappointing double standards in #GameofThrones coverage. Nevermind the Unburnt Mother of Dragons’ epic win, let’s talk about her nudity!
https://twitter.com/prachisrk/status/732194505491922946
Disgust – .OK, I retract my comment about the absence of gratuitous nudity-Ep 4 brought us badass #unburnt #Daenerys – naked of course #GameofThrones
https://twitter.com/vanessahistory/status/732054963472486400
How we do it
Total tweets analyzed: 55,169 | Unique tweets: 36,137
Tweet with most likes from the ones we analyzed:
Text: “This moment!!!!! OMG I cried @SophieT Jon and Sansa’ reunion #GameofThrones https://t.co/TcMvcXGcUZ”
User: M.J. | Favorite count: 2,368
We chose Python for our analysis mainly because of the abundance of powerful built-in global functions (no praise needed for <code>map</code>, <code>reduce</code> and <code>sorted</code>!), list comprehensions, and, most importantly, NLTK. In addition, we love the fact that we could do everything from service calls, to IO, to data analysis, to visualizations purely using Python without having to leave Jupyter Notebook/Visual Studio (yup, we love PTVS!).
We downloaded tweets using the tweepy Python package, which, among other things, helps us use Twitter’s Search API. We used a variety of keywords and search terms to ensure we did not miss anything. We set a search result limit of 40,000, but a bit surprisingly, got those many only for characters occurring in the first location of this episode. For the remaining locations combined we got only ~15,000 tweets. We stored the tweepy’s results in flat files.
We used Python’s NLTK package for stemming and lemmatization, which basically removes suffixes and converts words to their root form. We also removed common stop words. Finding a good lexicon was a significant challenge. We used a weighted combination of several lexicons in addition to one we created ourselves for some context-specific concepts.
The most fun part of the analysis—and a terrific learning experience—was rolling an algorithm to assign scores to tweets. The current version assigns raw scores for each emotion category, thus accounting for multiple emotions possibly depicted in a single tweet. In our previous experiment, the algorithm was slow due to some redundant calls. This time we did some clever caching and optimizations to the code: it is several orders of magnitude faster (%%timeit for the win!).
Finally we rendered our results using an open-source Python visualization library known as Seaborn. We find Python infinitely capable and customizable for text analysis. We have planned a slew of exciting things to do in the analyses of upcoming episodes.
Come back next week to find out how Twitter users are reacting to the fifth episode.
Check out our sentiment analysis of Twitter users for the first, second and third episodes here.
Image Source: HBO.com