natmarinn's picture
Create app.py
9da202d verified
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)