36 lines
1013 B
Python
36 lines
1013 B
Python
|
|
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)
|