Fatima1228's picture
Create app.py
ae8c22d verified
import gradio as gr
from transformers import pipeline
# 3-class model (negative / neutral / positive)
MODEL_ID = "cardiffnlp/twitter-roberta-base-sentiment-latest"
sentiment_pipeline = pipeline("sentiment-analysis", model=MODEL_ID)
LABEL_MAP = {
"LABEL_0": "Negative",
"LABEL_1": "Neutral",
"LABEL_2": "Positive",
"NEGATIVE": "Negative",
"NEUTRAL": "Neutral",
"POSITIVE": "Positive",
}
def analyze_sentiment(text):
text = (text or "").strip()
if not text:
return "⚠️ Please enter some text."
result = sentiment_pipeline(text, truncation=True)[0]
label = LABEL_MAP.get(result["label"], result["label"].title())
score = round(float(result["score"]), 3)
return f"{label} (confidence: {score})"
demo = gr.Interface(
fn=analyze_sentiment,
inputs=gr.Textbox(lines=3, placeholder="Type a sentence here..."),
outputs="text",
title="Sentiment Analyzer",
description="Classifies text as Negative, Neutral, or Positive using a Hugging Face transformer.",
examples=[["I love this!"], ["This is okay, I guess."], ["I hate it."]],
)
if __name__ == "__main__":
demo.launch()