NigelTaruvinga's picture
Upload app.py with huggingface_hub
4194aec verified
import gradio as gr
from transformers import pipeline, DistilBertForSequenceClassification, DistilBertTokenizer
model = DistilBertForSequenceClassification.from_pretrained("NigelTaruvinga/distilbert-imdb-sentiment")
tokenizer = DistilBertTokenizer.from_pretrained("NigelTaruvinga/distilbert-imdb-sentiment")
sentiment = pipeline(
"text-classification",
model=model,
tokenizer=tokenizer,
device=-1
)
def predict(text):
if not text.strip():
return "Please enter a review.", 0.0
result = sentiment(text)[0]
label = "Positive" if result["label"] == "LABEL_1" else "Negative"
confidence = round(result["score"] * 100, 2)
return label, confidence
app = gr.Interface(
fn=predict,
inputs=gr.Textbox(
lines=5,
placeholder="Type or paste a movie review here...",
label="Movie Review"
),
outputs=[
gr.Label(label="Sentiment"),
gr.Number(label="Confidence (%)")
],
title="IMDb Sentiment Classifier",
description="Fine-tuned DistilBERT model trained on IMDb movie reviews. Enter any review to predict whether it is positive or negative.",
examples=[
["This movie was absolutely fantastic. One of the best films I have ever seen."],
["Terrible film. Boring, slow, and a complete waste of time."],
["The visuals were stunning but the plot was confusing and hard to follow."]
],
theme=gr.themes.Soft()
)
app.launch(server_name="0.0.0.0", server_port=7860, share=False)