Social media Sentiment Analysis using C# API
Sentiment Analysis in Social media has become very important for many companies over the last few years as more and more people use this communication channel not only to exchange the messages, but also to express their opinions about the products and services they use or used in the past.
In order to start proper sentiment analysis, we need to use correct Text Analytics and Text Mining techniques. The fastest way is to use external API to get the information we need and then import that data on the daily basis to our system database, where we can visualize and track the results.
In this article I will show you, how you can convert unstructured data e.g. tweets using text2data.org API, into structured information that you can use to track sentiment towards the brand, product or company.
First step is to register in the service and get the private key to be used in your API calls. Next, you need to download API SDK from here
The code below, will just create request object containing your information and post that to platform using json or xml format. The response object will have information you need: Detected Entities, Themes, Keywords, Citations, Slang words and abbreviations. For each of these you can get sentiment result as double, polarity and score (positive, negative or neutral). Received information can be formatted the way you want. Below is complete sample (except for private key):
static void Main(string[] args) { var inputText = "I am not negative about the LG brand."; var privateKey = "-------------"; //add your private key here (you can find it in the admin panel once you sign-up) var secret = ""; //this should be set-up in admin panel as well. var doc = new Document() { DocumentText = inputText, IsTwitterContent = false, PrivateKey = privateKey, Secret = secret }; var docResult = API.GetDocumentAnalysisResult(doc); //execute request if (docResult.Status == (int)DocumentResultStatus.OK) //check status { //display document level score Console.WriteLine(string.Format("This document is: {0}{1} {2}", docResult.DocSentimentPolarity, docResult.DocSentimentResultString, docResult.DocSentimentValue.ToString("0.000"))); if (docResult.Entities != null && docResult.Entities.Any()) { Console.WriteLine(Environment.NewLine + "Entities:"); foreach (var entity in docResult.Entities) { Console.WriteLine(string.Format("{0} ({1}) {2}{3} {4}", entity.Text, entity.KeywordType, entity.SentimentPolarity, entity.SentimentResult, entity.SentimentValue.ToString("0.0000"))); } } if (docResult.Keywords != null && docResult.Keywords.Any()) { Console.WriteLine(Environment.NewLine + "Keywords:"); foreach (var keyword in docResult.Keywords) { Console.WriteLine(string.Format("{0} {1}{2} {3}", keyword.Text, keyword.SentimentPolarity, keyword.SentimentResult, keyword.SentimentValue.ToString("0.0000"))); } } //display more information below if required } else { Console.WriteLine(docResult.ErrorMessage); } Console.ReadLine(); }
You can always validate results by checking the demo site (on text2data.org platform)
Enjoy 🙂