Spaces:
Sleeping
Sleeping
from transformers import XLMRobertaForSequenceClassification, XLMRobertaTokenizer | |
import torch | |
import gradio as gr | |
# Nombre del modelo en Hugging Face | |
model_path = "natmarinn/sentimientos-milei" # Cambia esto si tu modelo est谩 en otro repositorio | |
# Cargar el modelo y el tokenizador desde Hugging Face | |
model = XLMRobertaForSequenceClassification.from_pretrained(model_path) | |
tokenizer = XLMRobertaTokenizer.from_pretrained(model_path) | |
# Definir las etiquetas de las clases | |
clases = ["Negativo", "Neutro", "Positivo"] | |
def clasificar_texto(texto): | |
# Tokenizar el texto de entrada | |
inputs = tokenizer(texto, return_tensors="pt", truncation=True) | |
# Realizar la predicci贸n y obtener las probabilidades | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
logits = outputs.logits | |
probs = torch.softmax(logits, dim=1).squeeze().tolist() # Convertir a probabilidades | |
# Crear una lista de categor铆as y probabilidades | |
categorias_prob = list(zip(clases, probs)) | |
# Ordenar por probabilidad de mayor a menor | |
categorias_prob = sorted(categorias_prob, key=lambda x: x[1], reverse=True) | |
# Formatear el resultado en un string para mostrarlo en Gradio | |
resultado = "\n".join([f"{categoria}: {probabilidad:.2%}" for categoria, probabilidad in categorias_prob]) | |
return resultado | |
# Crear la interfaz en Gradio | |
iface = gr.Interface( | |
fn=clasificar_texto, # Funci贸n que ejecuta la clasificaci贸n | |
inputs="text", # Tipo de entrada: texto | |
outputs="text", # Tipo de salida: texto | |
title="Clasificaci贸n de Sentimientos - Javier Milei - Debate Presidencial", | |
description="Escribe un comentario sobre el debate presidencial y el modelo clasificar谩 el sentimiento con sus probabilidades.", | |
examples=[["Vamos leon"], ["Gatito mimoso"], ["viva la libertad carajo"]] | |
) | |
# Ejecutar la aplicaci贸n | |
iface.launch(share=True) |