File size: 1,975 Bytes
ff1a8b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from transformers import XLMRobertaForSequenceClassification, XLMRobertaTokenizer
import torch
import gradio as gr

# Nombre del modelo en Hugging Face
model_path = "natmarinn/sentimientos-bregman"  # 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 - Myriam Bregman - Debate Presidencial",
    description="Escribe un comentario sobre el debate presidencial y el modelo clasificar谩 el sentimiento con sus probabilidades.",
    examples=[["Vamos rusa"], ["Gatito mimoso"], ["presidenta del centro de estudiantes"]]
)

# Ejecutar la aplicaci贸n
iface.launch(share=True)