Ram7379's picture
Create app.py
3ab594a verified
import gradio as gr
from transformers import pipeline
# Load emotion detection model (RoBERTa)
classifier = pipeline(
"text-classification",
model="j-hartmann/emotion-english-distilroberta-base",
top_k=None
)
# Prediction function
def detect_emotion(text):
results = classifier(text)[0]
# Get highest score emotion
best = max(results, key=lambda x: x['score'])
label = best['label']
score = round(best['score'], 3)
# Emoji mapping
emoji_map = {
"joy": "😊",
"anger": "😑",
"sadness": "😒",
"fear": "😨",
"love": "❀️",
"surprise": "😲"
}
emoji = emoji_map.get(label.lower(), "")
return f"{emoji} Emotion: {label} (Confidence: {score})"
# Gradio UI
app = gr.Interface(
fn=detect_emotion,
inputs=gr.Textbox(lines=3, placeholder="Enter text..."),
outputs="text",
title="RoBERTa Emotion Detection",
description="Detect emotions like joy, anger, sadness, fear, love, surprise"
)
app.launch()