How to Analyze Social Media Sentiment with Python

Social Media Sentiment

Table of Contents

Introduction

Understanding how your audience feels about your brand or content on social media can be invaluable. By analyzing social media sentiment, you can gain insights into public perception, identify trends, and adjust your strategy accordingly. This tutorial will guide you through using Python to analyze social media sentiment using the Tweepy and TextBlob libraries.

Requirements for Social Media Sentiment Analysis

  • Basic knowledge of Python
  • A Twitter Developer account
  • Tweepy and TextBlob libraries installed (pip install tweepy textblob)
  • A text editor (e.g., VSCode, PyCharm)

Step 1: Setting Up Twitter API Access

  1. Create a Twitter Developer Account: Go to the Twitter Developer site and create an account.
  2. Create an App: In your developer dashboard, create a new app to get your API keys.
  3. Generate Access Tokens: Obtain your API key, API secret key, access token, and access token secret.

Step 2: Installing Required Libraries

Install the Tweepy and TextBlob libraries:

pip install tweepy textblob

Step 3: Writing the Python Script

Create a new Python file, social_sentiment.py, and add the following code:

import tweepy
from textblob import TextBlob

# Replace with your own credentials
API_KEY = 'YOUR_API_KEY'
API_SECRET_KEY = 'YOUR_API_SECRET_KEY'
ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
ACCESS_TOKEN_SECRET = 'YOUR_ACCESS_TOKEN_SECRET'

# Authenticate to Twitter
auth = tweepy.OAuthHandler(API_KEY, API_SECRET_KEY)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

# Function to fetch tweets and analyze sentiment
def fetch_and_analyze(keyword):
    public_tweets = api.search_tweets(q=keyword, count=100, lang='en')
    
    for tweet in public_tweets:
        print(f'Tweet: {tweet.text}')
        analysis = TextBlob(tweet.text)
        sentiment = 'Positive' if analysis.sentiment.polarity > 0 else 'Negative' if analysis.sentiment.polarity < 0 else 'Neutral'
        print(f'Sentiment: {sentiment}')
        print('---')

# Example usage
fetch_and_analyze('YourBrandName')

Replace the placeholder strings with your actual Twitter API credentials. The fetch_and_analyze function fetches tweets containing the specified keyword and analyzes their sentiment using TextBlob.

Step 4: Interpreting the Results

Run your script in the terminal:

python social_sentiment.py

You’ll see the fetched tweets and their corresponding sentiment (Positive, Negative, or Neutral). This provides a quick overview of public sentiment regarding the specified keyword.

Step 5: Visualizing Sentiment Data

To gain deeper insights, you can visualize the sentiment data using a library like Matplotlib. Modify your script to include visualization:

import matplotlib.pyplot as plt

def fetch_and_analyze(keyword):
    public_tweets = api.search_tweets(q=keyword, count=100, lang='en')
    
    sentiments = {'Positive': 0, 'Negative': 0, 'Neutral': 0}
    
    for tweet in public_tweets:
        analysis = TextBlob(tweet.text)
        sentiment = 'Positive' if analysis.sentiment.polarity > 0 else 'Negative' if analysis.sentiment.polarity < 0 else 'Neutral'
        sentiments[sentiment] += 1
    
    labels = sentiments.keys()
    sizes = sentiments.values()
    colors = ['green', 'red', 'grey']
    
    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
    plt.axis('equal')
    plt.title(f'Sentiment Analysis for {keyword}')
    plt.show()

# Example usage
fetch_and_analyze('YourBrandName')

This script fetches tweets, analyzes their sentiment, and displays a pie chart of the sentiment distribution.

Conclusion

Analyzing social media sentiment with Python can provide valuable insights into public opinion about your brand or content. This tutorial demonstrated how to use the Tweepy and TextBlob libraries to fetch tweets and analyze their sentiment. By visualizing the sentiment data, you can better understand and respond to audience perceptions.

Try
RecurPost

Schedule and Publish your posts on multiple social accounts, read and reply to incoming messages with social inbox, and collaborate with your team and clients with ease.

Scroll to Top