Information is key to greater knowledge and further success, but without proper analysis it could be very futile. With the recent increase in use of social media platforms for mass communication, visualization of social responses becomes key. Socialytics uses cutting edge technology, via natural language processing, to visualize social responses to provide valuable feedback in seconds!
What it does
Socialytics uses natural language processing to perform sentimental analysis of comments associated with posts on social media. It then visualizes this data into graphs that allow the user to assess the sentiment associated with the comments. There are three perspectives that Socialytics provides the user with:
- A web-map that displays emotions associated with the overall comments related to posts,
- Ratio of positive to negative comments on a pie chart. In order to show the latter, each comment is classified as either a positive or negative comment via the use of natural language processing. This was done without the use of a readily available API, but instead it was implemented from scratch by our team!
- The top 6 words (based on word count) associated with the comments on the post were shown on a histogram. This feature can be used to map certain words with certain emotions that the words induce. The latter feature also has applications which can further help expand the project and include additional functionality such as predictive sensitivity analysis.
Furthermore, an emoji is also presented beside each comment to indicate one of five emotions: anger, disgust, fear, joy, or sadness while allowing a constant real-time feed of new comments coming in.
With a great, east to use, and visually appealing website, it is now possible to get a quick summary of social media responses at the tip of your fingers.
How I built it
We developed the web application using Ruby on Rails with the front-end written in React.js. To summarize comments, we trained clusters around the most frequent keywords. The sentiment analysis is built on a Naive-Bayes machine learning model developed in Python while querying the Watson API for emotions. Together, the machine learning pipeline is running on Python and the pipeline was later made into a Flask API to communicate with the React front-end. As a result, we are able to perform analysis on comments in real time.
Challenges I ran into
Training several machine learning models including logistic regression, naive bayesian, & neural networks. This required over 1.6 million lines of tweets from Twitter as training data for supervised learning.
Accomplishments that I'm proud of
Integration of machine learning pipeline with Ruby on Rails backend in real time.
What's next for Socialytics
Socialytics plans to expand features and add versatility due to the scope of the design. Many forms of data, not only from social media, can be used to perform quick analysis to provide graphic visualization of the content. Some of the additional features include heat maps of emotions, comment rates, predictive sensitivity analysis of post based on large scaled natural language processing. It will also try to gather data from different social media platforms and other news providers while showing an indicator of overall bias that are inherent within each source.