Below is the code I tried but it runs with the error shown below
from google.cloud import bigquery
from google.cloud.language import enums
from google.cloud.language import types
import sys
import six
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
client = bigquery.Client.from_service_account_json('simple_project//MQ News Matching-2443b471b5ff.json')
with open('articles.txt',mode='r', encoding="utf8") as reader:
text=reader.read()
if isinstance(text,six.binary_type):
text = text.decode('utf-8')
document = types.Document(content=text.encode('utf-8'),type=enums.Document.Type.PLAIN_TEXT)
# Detect and send native Python encoding to receive correct word offsets.
encoding = enums.EncodingType.UTF32
if sys.maxunicode == 65535:
encoding = enums.EncodingType.UTF16
result = client.analyze_entity_sentiment(document, encoding)
sentiment = client.analyze_sentiment(document=document).document_sentiment
print('Text: {}'.format(text))
print('Sentiment: {}, {}'.format(SentimentIntensityAnalyzer.score, sentiment.magnitude))
And the error I get is as below
print('Sentiment: {}, {}'.format(SentimentIntensityAnalyzer.score, sentiment.magnitude)) AttributeError: type object 'SentimentIntensityAnalyzer' has no attribute 'score'
What you want to do is this:
from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types
def analyze(movie_review_filename):
"""Run a sentiment analysis request on text within a passed filename."""
client = language.LanguageServiceClient()
with open(movie_review_filename, 'r') as review_file:
# Instantiates a plain text document.
content = review_file.read()
document = types.Document(
content=content,
type=enums.Document.Type.PLAIN_TEXT)
annotations = client.analyze_sentiment(document=document)
# Print the results
print_result(annotations)
def print_result(annotations):
score = annotations.document_sentiment.score
magnitude = annotations.document_sentiment.magnitude
for index, sentence in enumerate(annotations.sentences):
sentence_sentiment = sentence.sentiment.score
print('Sentence {} has a sentiment score of {}'.format(
index, sentence_sentiment))
print('Overall Sentiment: score of {} with magnitude of {}'.format(
score, magnitude))
You may need to set GOOGLE_APPLICATION_CREDENTIALS, if so you can do so like this:
export GOOGLE_APPLICATION_CREDENTIALS='/path/to/your/client_secret.json'
This would be the same JSON file you used in your question.
You can find more Cloud Natural Language samples here: https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/language