natmarinn commited on
Commit
9da202d
1 Parent(s): 7443a80

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import XLMRobertaForSequenceClassification, XLMRobertaTokenizer
2
+ import torch
3
+ import gradio as gr
4
+
5
+ # Nombre del modelo en Hugging Face
6
+ model_path = "natmarinn/sentimientos-milei" # Cambia esto si tu modelo está en otro repositorio
7
+
8
+ # Cargar el modelo y el tokenizador desde Hugging Face
9
+ model = XLMRobertaForSequenceClassification.from_pretrained(model_path)
10
+ tokenizer = XLMRobertaTokenizer.from_pretrained(model_path)
11
+
12
+ # Definir las etiquetas de las clases
13
+ clases = ["Negativo", "Neutro", "Positivo"]
14
+
15
+ def clasificar_texto(texto):
16
+ # Tokenizar el texto de entrada
17
+ inputs = tokenizer(texto, return_tensors="pt", truncation=True)
18
+
19
+ # Realizar la predicción y obtener las probabilidades
20
+ with torch.no_grad():
21
+ outputs = model(**inputs)
22
+ logits = outputs.logits
23
+ probs = torch.softmax(logits, dim=1).squeeze().tolist() # Convertir a probabilidades
24
+
25
+ # Crear una lista de categorías y probabilidades
26
+ categorias_prob = list(zip(clases, probs))
27
+
28
+ # Ordenar por probabilidad de mayor a menor
29
+ categorias_prob = sorted(categorias_prob, key=lambda x: x[1], reverse=True)
30
+
31
+ # Formatear el resultado en un string para mostrarlo en Gradio
32
+ resultado = "\n".join([f"{categoria}: {probabilidad:.2%}" for categoria, probabilidad in categorias_prob])
33
+ return resultado
34
+
35
+ # Crear la interfaz en Gradio
36
+ iface = gr.Interface(
37
+ fn=clasificar_texto, # Función que ejecuta la clasificación
38
+ inputs="text", # Tipo de entrada: texto
39
+ outputs="text", # Tipo de salida: texto
40
+ title="Clasificación de Sentimientos - Javier Milei - Debate Presidencial",
41
+ description="Escribe un comentario sobre el debate presidencial y el modelo clasificará el sentimiento con sus probabilidades.",
42
+ examples=[["Vamos leon"], ["Gatito mimoso"], ["viva la libertad carajo"]]
43
+ )
44
+
45
+ # Ejecutar la aplicación
46
+ iface.launch(share=True)