arssite's picture
Upload 2 files
ef8e1a1 verified
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
MODEL_NAME = "nlptown/bert-base-multilingual-uncased-sentiment"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
LABELS = {
0: "Very Negative",
1: "Negative",
2: "Neutral",
3: "Positive",
4: "Very Positive"
}
def predict_sentiment(text):
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
outputs = model(**inputs)
probs = torch.nn.functional.softmax(outputs.logits, dim=1)
confidence, prediction = torch.max(probs, dim=1)
sentiment = LABELS[prediction.item()]
return {
"Sentiment feeling": sentiment,
"Confidence score": f"{confidence.item():.3f} ({'Highly Certain' if confidence.item() > 0.8 else 'Somewhat Certain' if confidence.item() > 0.6 else 'Uncertain'})"
}
iface = gr.Interface(
fn=predict_sentiment,
inputs=gr.Textbox(lines=2, placeholder="Enter text (any language)..."),
outputs="json",
title="🌍 Multilingual Sentiment Analysis",
description="Check your text's sentiment instantly using a multilingual BERT model trained on reviews. Supports languages like English, Spanish, French, German, etc.",
theme="soft",
allow_flagging="never"
)
iface.launch()