Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import nltk | |
| from nltk.sentiment.vader import SentimentIntensityAnalyzer | |
| # Download VADER lexicon on first run | |
| nltk.download("vader_lexicon") | |
| # Instantiate once | |
| sid = SentimentIntensityAnalyzer() | |
| def classify_sentiment(text: str) -> str: | |
| """ | |
| Returns one of: "Positive", "Neutral", "Negative" | |
| based on VADER’s compound score. | |
| """ | |
| comp = sid.polarity_scores(text)["compound"] | |
| if comp >= 0.05: | |
| return "Positive 😀" | |
| elif comp <= -0.05: | |
| return "Negative 😞" | |
| else: | |
| return "Neutral 😐" | |
| demo = gr.Interface( | |
| fn=classify_sentiment, | |
| inputs=gr.Textbox( | |
| lines=2, | |
| placeholder="Type an English sentence here…", | |
| label="Your text" | |
| ), | |
| outputs=gr.Radio( | |
| choices=["Positive 😀", "Neutral 😐", "Negative 😞"], | |
| label="Sentiment" | |
| ), | |
| examples=[ | |
| ["I absolutely love this product!"], | |
| ["It was okay, nothing special."], | |
| ["This is the worst experience ever…"] | |
| ], | |
| title="3-Way Sentiment Classifier", | |
| description=( | |
| "Classifies English text as **Positive**, **Neutral**, or **Negative**\n" | |
| "using NLTK’s VADER (thresholds at ±0.05 on the compound score)." | |
| ), | |
| allow_flagging="never" | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |