Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import nltk | |
| from nltk.sentiment import SentimentIntensityAnalyzer | |
| # Download VADER lexicon for sentiment analysis | |
| nltk.download('vader_lexicon', quiet=True) | |
| def perform_sentiment_analysis(text): | |
| """Analyzes the sentiment of the given text using VADER.""" | |
| sia = SentimentIntensityAnalyzer() | |
| return sia.polarity_scores(text) | |
| def categorize_sentiment(compound_score): | |
| """Categorizes sentiment based on the compound score.""" | |
| if compound_score > 0.1: # Adjusted threshold for more balanced classification | |
| return 'Positive' | |
| elif compound_score < -0.1: | |
| return 'Negative' | |
| else: | |
| return 'Neutral' | |
| def analyze_sentiment(input_text): | |
| """Performs sentiment analysis and categorizes the sentiment.""" | |
| scores = perform_sentiment_analysis(input_text) | |
| sentiment = categorize_sentiment(scores['compound']) | |
| return {"Sentiment": sentiment, "Scores": scores} | |
| # Improved examples for sentiment analysis | |
| examples = [ | |
| "Absolutely thrilled about my vacation next week! Can't wait!", # Positive | |
| "The customer service was terrible. I wouldn't recommend this place to anyone.", # Negative | |
| "I'm not sure what to think about the new policy. It has pros and cons.", # Neutral | |
| "This product exceeded my expectations! The quality is fantastic.", # Positive | |
| "I'm feeling overwhelmed with all these assignments due tomorrow.", # Negative | |
| "Did you complete your homework for the AI course?", # Neutral | |
| ] | |
| # Create Gradio interface | |
| demo = gr.Interface( | |
| fn=analyze_sentiment, | |
| inputs=gr.Textbox(label="Enter text for sentiment analysis", placeholder="Type your text here..."), | |
| outputs="json", | |
| title="Sentiment Analysis Tool", | |
| description="Analyze the sentiment of any text. Enter your own text or choose an example below.", | |
| examples=examples | |
| ) | |
| demo.launch() | |