With 310 million monthly active users, Twitter is an excellent place for brands to learn and make decisions based upon their image in the public space. Providing clients with a dashboard to monitor the discussion online will grant marketing professionals valuable insights in the discussion. It is important to see what users are talking about online about your brand. This is why we highlight the most negative and the most positive tweets.

We are entering the JCPenny and DAIR competitions

What it does

Our application uses the Twitter API to load tweets for analysis. This project focuses on sentiment analysis to classify each tweet's sentiment as "positive", "negative", or "neutral." We used the Valence Aware Dictionary and sEntiment Reasoner (VADER) for the analysis. This tool is specifically tuned for social media and handles acronyms, initialisms, emoticons, and sarcasm. VADER also considers the "intensity" of sentiment. Where some algorithms may classify "This movie is good" with the same score as "This movie is great." Vader's distinction of these two is important in calculating overall sentiment for a brand.

This application is also useful for institutions. Universities can track the conversations about their events, professors or tuition online.

Note that tweets are classified using a "compound score" between -1 and positive 1.

positive sentiment: compound score >= 0.05 neutral sentiment: (compound score > -0.05) and (compound score < 0.05) negative sentiment: compound score <= -0.05

How I built it

The application is built using Dash, on top of Flask using the Twitter API for collecting tweets and VADER Sentiment Analysis. Note: Currently, the applicaiton is hosted locally.

Challenges I ran into

The way the data was collected limited our ability to make dynamic visualizations due to Twitter API Limits. This could by using an existing database. However, Twitter historical data is locked behind premium APIs and doesn't allow public Twitter Datasets. Instead, we could create our own database to stream and collect the data.

Additionally, I was unable to query based off of user input or update the graphs programmatically using user input.

Accomplishments that I'm proud of

I'm proud to have a minimal viable product and proud I was able to learn and use several tools like Dash,Tweepy, Vader Sentiment Analysis, and Pandas. I'm also proud of the future impact this application could have on organizations if expanded to provide more insights.

What I learned

I learned about Plotly's Dash, an excellent interactive visualization tool built for Python. I learned about Dash projects on the web and I learned about available sentiment analysis algorithms for text.

What's next for Social Media Sentiment Analysis

On this application, we will work towards allowing users to search their own hashtag or group of hashtags to monitor their own brand. Additionally, we will work to add live updates to the application while also using historical data. Pairing this with both historical and live data will make it a more powerful tool for social insights regarding over a brand. This would allow us to circumvent hard-coding our search keyword.

Share this project: