Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from tensorflow.keras.models import load_model | |
from tensorflow.keras.preprocessing.sequence import pad_sequences | |
import pickle | |
# Cargar el modelo y el tokenizer | |
model_path = "modelo.h5" | |
tokenizer_path = "tokenizer.pkl" | |
modelo = load_model(model_path) | |
with open(tokenizer_path, 'rb') as file: | |
tokenizer = pickle.load(file) | |
# Diccionario de consejerías y números | |
consejeria_a_numero = { | |
'Consejería de Agricultura, Ganadería y Medio Ambiente': 0, | |
'Consejería de Salud': 1, | |
'Consejería de Políticas Sociales, Familia, Igualdad y Justicia': 2, | |
'Consejería de Fomento y Política Territorial': 3, | |
'Consejería de Desarrollo Económico e Innovación': 4, | |
'Consejería de Desarrollo Económico e InnovaciónII': 5, | |
'Consejería de Educación, Formación y Empleo': 6, | |
'Consejería de Administración Pública y Hacienda': 7, | |
'Consejería de Presidencia, Relaciones Institucionales y Acción Exterior': 8 | |
} | |
numero_a_consejeria = {v: k for k, v in consejeria_a_numero.items()} | |
def predict_consejeria(description): | |
# Preprocesar la descripción | |
description_sequence = tokenizer.texts_to_sequences([description]) | |
maxlen = 450 | |
description_padded = pad_sequences(description_sequence, maxlen=maxlen) | |
# Realizar la predicción | |
prediction = modelo.predict(description_padded) | |
predicted_class = np.argmax(prediction, axis=1)[0] | |
predicted_consejeria = numero_a_consejeria[predicted_class] | |
return predicted_consejeria | |
# Definir la función respond adaptada a nuestro modelo | |
def respond(description): | |
predicted_consejeria = predict_consejeria(description) | |
return predicted_consejeria | |
# Crear la interfaz de Gradio | |
demo = gr.Interface( | |
fn=respond, | |
inputs=gr.Textbox(lines=2, label="Descripción"), | |
outputs="text", | |
title="Clasificación de Consejerías", | |
description="Introduce una descripción para predecir a qué consejería pertenece." | |
) | |
if __name__ == "__main__": | |
demo.launch() | |