Spaces:
Runtime error
Runtime error
File size: 1,734 Bytes
4d5c963 08baf09 4d5c963 |
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import gradio as gr
from setfit import SetFitModel
import spacy
# Cargar el modelo
model = SetFitModel.from_pretrained("desarrolloasesoreslocales/SetFitArgumentos")
# Cargar el modelo de spaCy para espa帽ol
spacy.cli.download("es_core_news_sm")
nlp = spacy.load("es_core_news_sm")
# Mapear las etiquetas
id2label = {0: "49", 1: "994", 2: "1002", 3: "2014"}
# Definir la funci贸n para dividir en p谩rrafos
def dividir_en_parrafos(texto):
doc = nlp(texto)
parrafos = []
parrafo_actual = []
for oracion in doc.sents:
parrafo_actual.append(oracion.text)
if oracion.text.endswith((".", "!", "?")):
parrafos.append(" ".join(parrafo_actual))
parrafo_actual = []
if parrafo_actual:
parrafos.append(" ".join(parrafo_actual))
return parrafos
# Definir la funci贸n de predicci贸n
def predict(payload):
# Dividir el texto en p谩rrafos
parrafos = dividir_en_parrafos(payload)
# Inicializar un conjunto para almacenar etiquetas 煤nicas
etiquetas_encontradas = set()
# Procesar cada p谩rrafo por separado
for parrafo in parrafos:
# Predecir con el modelo
results = model.predict_proba([parrafo])[0]
# Filtrar etiquetas con score > 0.60
etiquetas_filtradas = [id2label[i] for i, score in enumerate(results) if score > 0.60]
# Agregar etiquetas al conjunto
etiquetas_encontradas.update(etiquetas_filtradas)
return "\n".join(etiquetas_encontradas)
# Crear una interfaz Gradio
iface = gr.Interface(
fn=predict,
inputs=gr.Textbox(),
outputs=gr.Textbox(),
live=False,
title="Clasificador de Texto"
)
# Iniciar la interfaz Gradio
iface.launch()
|