Spaces:
Sleeping
Sleeping
import gradio as gr | |
import torch | |
from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
model = AutoModelForSequenceClassification.from_pretrained("roycett/fine-tuned-roberta-yt-sentiment") | |
tokenizer = AutoTokenizer.from_pretrained("roycett/fine-tuned-roberta-yt-sentiment") | |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') | |
model.to(device) | |
def predict_sentiment(transcript): | |
inputs = tokenizer(transcript, return_tensors="pt", max_length=100, truncation=True, padding="max_length") | |
inputs = {k: v.to(device) for k, v in inputs.items()} | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
logits = outputs.logits | |
probabilities = torch.softmax(logits, dim=1) | |
prediction = torch.argmax(probabilities, dim=1) | |
label = "positive" if prediction.item() == 1 else "negative" | |
probability = probabilities[0][prediction.item()].item() | |
return f"Sentiment: {label} (Confidence: {probability:.2f})" | |
iface = gr.Interface( | |
fn=predict_sentiment, | |
inputs=gr.Textbox(lines=5, placeholder="Enter your transcript here..."), | |
outputs="text", | |
title="YouTube Transcript Sentiment Analysis", | |
description="Paste a YouTube transcript to analyze its sentiment." | |
) | |
iface.launch() |