Spaces:
Runtime error
Runtime error
| 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() | |