|
import json
|
|
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
|
|
|
|
def analyze_sentiment_vader(text, analyzer):
|
|
"""
|
|
Analyzes text using VADER and returns a dictionary with the results.
|
|
|
|
Args:
|
|
text (str): The text content to analyze.
|
|
analyzer (SentimentIntensityAnalyzer): An instantiated VADER analyzer.
|
|
|
|
Returns:
|
|
dict: A dictionary containing the sentiment classification, compound score,
|
|
and detailed scores (positive, neutral, negative).
|
|
"""
|
|
scores = analyzer.polarity_scores(text)
|
|
compound_score = scores['compound']
|
|
|
|
if compound_score >= 0.05:
|
|
sentiment = 'Positive'
|
|
elif compound_score <= -0.05:
|
|
sentiment = 'Negative'
|
|
else:
|
|
sentiment = 'Neutral'
|
|
|
|
return {
|
|
'sentiment': sentiment,
|
|
'score': compound_score,
|
|
'details': scores
|
|
}
|
|
|
|
vader_analyzer = SentimentIntensityAnalyzer()
|
|
|
|
def analyze(content):
|
|
return analyze_sentiment_vader(content, vader_analyzer)
|