ZSC-2 / app.py
pzangara's picture
Update app.py
b956289
# Imports
import os
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
import transformers
import gradio as gr
#from pysentimiento import create_analyzer
import pandas as pd
model_name_c = "MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7"
tokenizer_c = AutoTokenizer.from_pretrained(model_name_c)
classifier = pipeline("zero-shot-classification", model=model_name_c,tokenizer=tokenizer_c)
# Inicializa Modelo de Clasificación de Sentimientos
model_name_sent = 'pysentimiento/robertuito-sentiment-analysis'
classifier_sent = pipeline("text-classification", model=model_name_sent)
def classify_text(text):
"""
Clasifica un texto como positivo, negativo o neutro utilizando un clasificador.
Args:
text (str): El texto a clasificar.
Returns:
str: La clasificación del texto, que puede ser "Positivo", "Negativo" o "Neutro".
"""
#return classifier_sent(text)
result = classifier_sent(text)[0]['label']
if result == "POS":
return "Positivo"
elif result == "NEG":
return "Negativo"
else:
return "Neutro"
def clasificador(input1, input2):
sequence_to_classify = input1
input2_list = input2.split(",") # Parse the input string as a list
candidate_labels= [item.strip() for item in input2_list]
output0 = classifier(sequence_to_classify, candidate_labels, multi_label=False)
output1=pd.DataFrame(output0)
output1=output1.iloc[:,1:3]
#analyzer = create_analyzer(task="sentiment", lang="es")
#output2 = analyzer.predict(input1)
output2=classify_text(input1)
return output1, output2
iface = gr.Interface(
fn=clasificador,
inputs=[gr.inputs.Textbox(label="Ingrese texto"),gr.inputs.Textbox(label="Ingrese lista de labels")],
#outputs=[gr.outputs.Textbox(label="Clasificación"),gr.outputs.Textbox(label="Sentimiento")],
outputs=[gr.DataFrame(label="Clasificación"),gr.outputs.Textbox(label="Sentimiento")],
#outputs=[gr.outputs.Textbox(label="Sentimiento")]#,
#examples=[
# ['Antes de que avancemos con el tema, si yo tengo las cuentas bloqueadas por un fraude, yo lo explique por quinta vez, ya está todo resuelto, el tema del fraude online que se hizo y demás, sí por un préstamo sí, pero tengo las cuentas bloqueadas, no solamente no puedo pagar Galicia, sino no puedo pagar nada, soy vos, me haces un favor si podes de alguna manera acelerar que me desactiven la el bloqueo de la cuenta para yo poder pagar todo lo que debo pagar, me haces un favor, ya me llamaron, anoche volví a repetir lo mismo, que evidentemente no quedó claro. Sí, estoy queriendo, hoy nuevamente, comunicarme con la oficial de cuenta, María soledad, de la sucursal de Ramos Mejía, si damos para tener una respuesta con respecto al desbloqueo de mi cuenta. E claro, si voy a tener que hablar con la oficial señora, nosotros Por lo pronto todavía no lo vemos, pero llamamos justamente para. A ver lo que te pido es que por favor no me llamen mas, sí hasta que no. Cheque de que la cuenta esté desbloqueada porque no pagó nada, pero no, Galicia no pago nada, ni siquiera la empleada. ¿Me entiendes porque tengo bloqueada la cuenta?','desconocimiento de deuda, financiacion, fraude, imposibilidad de pago'],
#]
)
iface.launch()