arinbalyan's picture
Upload folder using huggingface_hub
d3d47eb verified
Raw
History Blame Contribute Delete
1.88 kB
import gradio as gr
from transformers import pipeline
# ponytail: single pipeline call, no wrapping class needed
classifier = pipeline(
"sentiment-analysis",
model="distilbert-base-uncased-finetuned-sst-2-english",
)
# ponytail: examples embedded, no external file
EXAMPLES = [
"This movie was absolutely incredible! Best I've seen all year.",
"Waste of time. Terrible acting, predictable plot.",
"It was okay, nothing special but not bad either.",
"The cinematography was stunning but the story fell flat.",
"I've watched it three times already. Pure masterpiece.",
]
def analyze(text):
result = classifier(text[:512])[0] # ponytail: hard truncate, no tokenizer logic
label = result["label"]
score = result["score"]
emoji = "😊" if label == "POSITIVE" else "😞"
return {emoji: score if label == "POSITIVE" else 1 - score}
with gr.Blocks(theme=gr.themes.Soft(), title="Sentiment Analyzer") as demo:
gr.Markdown(
"""
# 🎭 Sentiment Analyzer
Tiny model, big opinions. Type any text and see if it's positive or negative.
**Model:** DistilBERT fine-tuned on SST-2 (67M params, runs on CPU)
"""
)
with gr.Row():
text_input = gr.Textbox(
label="Your text",
placeholder="What's on your mind?",
lines=3,
)
with gr.Row():
btn = gr.Button("Analyze", variant="primary", scale=0)
with gr.Row():
output = gr.Label(label="Sentiment", num_top_classes=2)
btn.click(fn=analyze, inputs=text_input, outputs=output)
gr.Examples(examples=EXAMPLES, inputs=text_input)
gr.Markdown(
"""
---
Built with [DistilBERT](https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english) | [arinbalyan](https://huggingface.co/arinbalyan)
"""
)
if __name__ == "__main__":
demo.launch()