SentimentAnalyzer.py 1.28 KB
import argparse

from google.cloud import language_v1

def print_result(annotations):
    score = annotations.document_sentiment.score
    magnitude = annotations.document_sentiment.magnitude

    tot = 0
    positive = 0
    negative = 0
    neutral = 0
    for index, sentence in enumerate(annotations.sentences):
        sentence_sentiment = sentence.sentiment.score
        if sentence_sentiment > 0:
            positive += 1
        elif sentence_sentiment < 0:
            negative += 1
        else:
            neutral += 1
        # print(
            # "Sentence {} has a sentiment score of {}".format(index, sentence_sentiment)
        # )
        tot += 1
    print(
        "Overall Sentiment: score of {} with magnitude of {}".format(score, magnitude)
    )
    return tot, positive, negative

def analyze(movie_review_filename):
    client = language_v1.LanguageServiceClient()

    with open(movie_review_filename, "r", encoding='utf-8-sig') as review_file:
        # Instantiates a plain text document.
        content = review_file.read()
    document = language_v1.Document(content=content, type_=language_v1.Document.Type.PLAIN_TEXT)
    annotations = client.analyze_sentiment(request={'document': document})

    print_result(annotations)

if __name__ == "__main__":
    analyze("data.txt")