Mining social media data for customer feedback is perhaps one of the greatest untapped opportunities for customer analysis in many organizations today. Social media data is freely available and allows organizations to personally identify and interact directly with customers to resolve any potential dissatisfaction. In today’s blog post, I’ll discuss using SAP Data Services, SAP HANA, and SAP Predictive Analysis to collect, process, visualize, and analyze social media data related to the recent social media phenomenon Sharknado.
While I’ll be focusing primarily on the analysis of social media data in this blog post, social media data can be collected from any source with an open API by using Python scripting within a User-Defined Transform. In this example, I’ve collected Twitter data using the basic outline provided by SAP in the Data Services Text Data Processing Blueprints available on the SAP Community Network, updated it for the REST version 1.1 Twitter API. This process consists of 2 dataflows, the first tracks search terms and constructs (Get_Search_Tasks transform) and executes (Search_Twitter transform) a Twitter search query to store the data pictured below. In addition to the raw text of the tweet, some metadata is available, including user name, time, and location information (if the user has made it publicly available).
Once the raw tweet data has been collected, I can use either the Text Data Processing transform in SAP Data Services or the Voice of Customer text analysis process in SAP HANA. While both processes give the same result, SAP Data Services is also able to perform preliminary summarization and transformations on the parsed data within the same dataflow. In this case, I will run text analysis in SAP HANA by running the command below in SAP HANA Studio.
Create FullText Index “VOC” On <table name>(<tweet text column name>)
TEXT ANALYSIS ON
This results in a table called $TA_VOC in the same schema as the source table, as shown below.
In this table, the TA_TOKEN—called SOURCE_FORM in SAP Data Services TDP—is the extracted entity or element from the tweet (for example, an identifiable person, place, topic, organization, or sentiment), TA_TYPE (called TYPE in SAP Data Services TDP) is the category the entity falls under. These are the two main text analysis elements used to extract information from Twitter data.
The same VOC text analysis can be performed using the Text Data Processing transform in SAP Data Services. To invoke the full set of VOC dictionaries included in the SAP HANA VOC text analysis described above, include the following custom dictionaries and rules in the Text Data Processing transform’s Options tab:
Details on the above settings and information on accessing rules and dictionaries for other languages are available in SAP’s Text Data Processing Language Reference Guides.
For a more in-depth explanation on Text Data Processing and social media analysis using SAP Data Services, refer to the Decision First Summer EIM Expert Series webinar on Twitter data collection and social media sentiment analysis by Nicholas Hohman.
Once the Twitter data was loaded into SAP HANA and text analysis had been performed, I created an Analytic View and several Calculation Views to allow for visualization and analysis.
In the first Analytical View pictured above, I’ve cleaned up the TYPE categories a bit further to consolidate into top level categories (for example, combining all types of Organizations into one single Organization category) and assigned a numeric sentiment values to each sentiment-type entity as shown in the table below, ranging from 0 (strong negative sentiment) to 1 (strong positive sentiment).
I then created a calculation view that aggregates data to the tweet-level and calculates tweet-level flags for analysis, including flags to indicate whether key types of entities are found in each tweet (location, topic, Twitter hashtag, retweet, sentiment, etc). This also aggregates the average sentiment based on any sentiments found within the tweet. I’ll use these aggregated metrics later for visualization and predictive analysis of the Twitter data.
The final output of the SAP HANA Information Views are 2 analysis sets:
While these analysis sets could also be created using a SAP Data Services ETL process, the SAP HANA Information Views have the advantage of being calculated on the fly rather than as a batch process, so if we are continuously monitoring and collecting Twitter data, users will have real-time access to social media trends and insights without having to wait for an overnight or batch process to finish.
For this analysis, I collected over 33,000 tweets related to the topic “sharknado” over a period of days. After Text Analysis was performed, over 200,000 individual entities were extracted from these tweets. A natural first step is generating descriptive charts to explain the nature of these extracted entities and tweets. The figure below shows an area chart of all the entities extracted from the tweets by category. Twitter hashtags were the most commonly identified entities, followed by sentiments, Twitter users, topics, and organizations. The depth of color indicates the tweet-level average sentiment. This shows that tweets with topic entities have the highest (most positive) overall sentiment, while tweets with hashtags are much less positive.
A few other fast facts on the Sharknado tweets:
Now, we can start to examine the individual entities extracted from the tweets and sentiments associated with each entity. For example, we can pull the Person entities identified by the text analysis in a word cloud, shown below. This word cloud shows the most common entities (larger size) and the sentiment associated with the person entities (depth of color).
This shows that Tara Reid, Cary Grant, Tatiana Maslany, Ian Ziering, and Steve Sanders were the most commonly identified person entities, with Tatiana Maslany and Tara Reid appearing in tweets with higher average sentiments. Tara Reid and Ian Ziering are actors that appeared in Sharknado, and Steve Sanders was Ian Ziering’s character in Beverly Hills, 90210, but I was confused by the appearance of Cary Grant, whom Wikipedia identifies as an English actor with “debonair demeanor” who died in 1986, and Tatiana Maslany, a lesser-known Canadian Actress, neither of whom appeared in Sharknado. Further filtering the tweet text for these particular entities, I find an extremely high retweet frequency for 2 influential tweets:
@TVMcGee: #Sharknado is even more impressive when you realize Tatiana Maslany played all the different sharks.
@RichardDreyfuss: People don’t talk about it much in Hollywood (omertà and everything) but Cary Grant actually died in a #sharknado
The entity “impressive” was strongly positive for Tatiana Maslany, while “n’t talk” (negatory + talk) was considered a minor problem for the Cary Grant tweet. Further analysis can be done to identify popular characters and portions of the movie, which the Sharknado filmmakers can mine to identify the characters, plots, or topics to revisit in the already-approved sequel to Sharknado (coming Summer 2014).
Similarly, investigating location entities shown in the word cloud below, we can see the most common references are to Texas and Hollywood, with tweets about Texas being more positive than Hollywood.
Organizations identified by Text Analysis show SyFy (the channel that brought you Sharknado) and the phrase Public Service Announcement, as well as Lego and Nova were common in tweets, as shown in the word cloud below.
The SyFy and public service announcement phrases were found in a frequently retweeted tweet about a re-airing of the movie:
@Syfy: Public Service Announcement: #Sharknado will be rebroadcast on Thurs, July 18, at 7pm. Please retweet this important information.
Nova was a character in the movie who may have met an untimely end, which apparently did not elicit positive sentiments. The Lego topic/organization was also in a commonly re-tweeted tweet of a picture of a sharknado made of Legos.
After summarizing and visualizing the data, I can leverage SAP Predictive Analysis’s Predict pane to evaluate the models using predictive algorithms. We can further summarize tweet data across multiple numeric characteristics using a clustering algorithm. Clustering is an unsupervised learning algorithm and one of the most popular segmentation methods; it creates groups of similar observations based on numeric characteristics. In this case, the numeric characteristics available are: length of tweet, # of entities extracted from the tweet, and the presence of a topic or a sentiment flag. While binary variables are not technically appropriate to use in a clustering model, we’re including them here to increase the complexity of our model and make the results more interesting.
The clustering model results show 3 groups of tweets, roughly separated by size, with Cluster 3 being the short tweets, Cluster 1 the longer tweets, and Cluster 2 between 3 and 1. This clustering model does show us that longer tweets were more likely to have more entities identified by the text analysis and were more likely to have a sentiment and a topic within the tweet.
While this is an extremely simple example, with additional descriptive statistics we could cluster tweets according to sentiment and occurrences of key phrases or words; if the organization could link these tweet segments to customer satisfaction or other key metrics (such as referrals generated through social media buzz or calls to a customer service center), monitoring the frequency of tweets by segment would be a great, nearly real-time leading indicator of viral buzz, customer complaints, or referral business.
Another potential application for predictive models would be attempting to estimate the impact of tweet characteristic on the sentiment value of the tweet. In this case, I’ve arbitrarily determined that a tweet with an average sentiment of 0.4 or higher is “Positive”. I can then use the R-CNR Decision Tree algorithm or a custom R function for Logistic Regression (see this previous blog on Custom R Modules) to predict which elements are most indicative of positive tweets. In order to compare these models, I use a filter transform to filter out tweets without sentiments. Then, I configure the Logistic Regression and R-CNR Tree modules to include all my descriptive data, including tweet length, number of entities extracted, and presence of location and topic entities.
Once this predictive workflow has been run, I can review results for the logistic regression and decision tree results.
These model output charts show that the logistic regression model is not terribly predictive, showing an AUC (area under the ROC Curve) of only 0.598 (AUC varies from 0 to 1 with a baseline of 0.5 and values closest to 1 indicating more accurate predictions).
This chart shows that there is a slight increase in predicted average sentiment (red line) across the actual average tweet sentiment (x axis). Blue bars represent tweet volume for each level of average sentiment. Ideally, the red line would be approximately diagonal from bottom left to top right.
The Decision tree shows that the model is able to identify large pockets of tweets that are much more likely to be positive.
In summary, the models show potential to distinguish tweet positivity based on tweet content characteristics. These models could be further tuned for accuracy with more Sharknado-related characteristics, such as whether the tweet mentioned specific plot points, emotions, or characters. In these preliminary models, results suggest that having a location entity, longer tweet length, and presence of a retweet contribute to positive sentiments. Perhaps this suggests that people are more likely to retweet positive tweets than negative?
Adding presence of key terms like “chainsaw” or “shark” or specific character names could be used as input predictors and we would be able to see the impact of those specific terms on sentiment positivity. Developers of the Sharknado sequel, could determine which specific aspects of the film were most positively and negatively received by the audience and incorporate these concepts into the sequel.
Based on this experiment, I have a few recommendations for approaching a similar problem going forward.
I think #SharkNado should be a trilogy. Next would be SharkQuake followed by, what is sure to be a hit, SharkNami.
While the Sharknado example is a fun pop culture phenomenon, how does this become relevant to a real-world organization? Collecting Twitter data relevant to an organization could provide nearly free focus group-like feedback directly from customers who are most likely to influence their peers. For example, a hotel chain could collect Twitter data not only from users that mention its brand name, but also from users mentioning competitors’ names or just talking about hotels in the general sense. They can get an idea of what contributes to positive and negative sentiments about hotels. Do negative sentiments most commonly accompany comments about cleanliness? Noise? Wait to check in? Staff? Do positive sentiments stem from amenities like the pool or gym? What is the general sentiment for customers of your hotel chain versus competitors? And are there particularly negative sentiments for users of one particular location that might indicate a serious problem?
Furthermore, having this type of feedback available in a nearly real-time environment allows organizations to monitor, respond to, and leverage social media buzz to increase audience or revenue for the organization. For example, when SyFy executives saw the volume of social media posts and response to the initial Sharknado airing, SyFy was able to quickly schedule subsequent showings, commit to a sequel, and arrange for the film to make its theatrical debut in response and disperse this information via Twitter while the topic was still trending. This equates to increasing awareness and future audience at a very low cost. If the SyFy had missed this window, they would have to expend significant marketing funds to re-generate this level of buzz. In fact, by leveraging this strong social media buzz around the initial airing of Sharknado, SyFy actually garnered higher viewership with the re-airing than they experience during the initial premier.
This type of feedback can give insight not only to what users might think about your organization’s brand overall, but also could give an idea of the importance that specific product aspects hold in a user’s experience. Understanding how the consumer values these factors could guide investment decisions or marketing strategies by highlighting the features that customers care about and those that are not meaningful.
This post originally published on SAP BI Blog and republished with permission.