File size: 2,026 Bytes
5f69511
14f18b1
 
 
 
 
 
bac6028
14f18b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5f69511
 
 
14f18b1
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
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()