Sentilyze-APP / backend /sentiment_analyzer.py
Numan sheikh
Upload Sentilyze app files to Hugging Face Space
7fb74eb
# backend/sentiment_analyzer.py
from textblob import TextBlob
def analyze_sentiment(text: str) -> dict:
"""
Analyzes the sentiment of a given text.
Args:
text (str): The input text to analyze.
Returns:
dict: A dictionary containing the sentiment class (positive, neutral, negative)
and the polarity score.
"""
if not isinstance(text, str):
return {"class": "invalid_input", "polarity": None}
analysis = TextBlob(text)
polarity = analysis.sentiment.polarity
if polarity > 0.05:
sentiment_class = "positive"
elif polarity < -0.05:
sentiment_class = "negative"
else:
sentiment_class = "neutral"
return {"class": sentiment_class, "polarity": polarity}
# Example Usage (for testing this module independently)
if __name__ == "__main__":
print("--- Testing Sentiment Analysis ---")
text1 = "This is a wonderful product, I love it!"
text2 = "I am so thrilled to have this broken piece of junk."
text3 = "The weather today is neither good nor bad."
print(f"'{text1}' -> {analyze_sentiment(text1)}")
print(f"'{text2}' -> {analyze_sentiment(text2)}")
print(f"'{text3}' -> {analyze_sentiment(text3)}")