Search code examples
pythontwittertextblobgoogle-cloud-nl

How can I use Google Cloud NL api for sentiment analysis?


How can I use Google cloud NL api for sentiment analysis for tweets from Twitter with topic(Keyword) that I choose?

I can write python script that uses Twitter(Twitter api)that how people are feeling about a topic that I choose using python’s NL library “TextBlob”

 import tweepy from textblob import TextBlob

# Step 1 - Authenticate
consumer_key= 'CONSUMER_KEY_HERE'
consumer_secret= 'CONSUMER_SECRET_HERE'

access_token='ACCESS_TOKEN_HERE'
access_token_secret='ACCESS_TOKEN_SECRET_HERE'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

#Step 3 - Retrieve Tweets
public_tweets = api.search('Trump')



#CHALLENGE - Instead of printing out each tweet, save each Tweet to a CSV file
#and label each one as either 'positive' or 'negative', depending on the sentiment 
#You can decide the sentiment polarity threshold yourself


for tweet in public_tweets:
    print(tweet.text)

    #Step 4 Perform Sentiment Analysis on Tweets
    analysis = TextBlob(tweet.text)
    print(analysis.sentiment)
    print("")

Solution

  • You can use the google-cloud python module:

    # Import the module and create a language client
    from google.cloud import language
    language_client = language.Client()
    
    # Analyze the sentiment
    document = language_client.document_from_html(tweet.text)
    annotations = document.analyze_sentiment()
    print(annotations.score, annotations.magnitude)
    

    Also, you can use the track parameter in the tweepy Streaming API to filter tweets on a particular topic in realtime.