import gradio as gr import tensorflow as tf from tensorflow.keras.preprocessing.text import tokenizer_from_json from tensorflow.keras.preprocessing.sequence import pad_sequences import json import numpy as np # Cargar el modelo model = tf.keras.models.load_model('polarisatie_model.h5') # Cargar el tokenizador with open('tokenizer.json', 'r') as f: tokenizer_json = json.load(f) tokenizer = tokenizer_from_json(json.dumps(tokenizer_json)) # Cargar max_length with open('max_length.txt', 'r') as f: max_length = int(f.read().strip()) def preprocess_text(text): sequence = tokenizer.texts_to_sequences([text]) padded = pad_sequences(sequence, maxlen=max_length) return padded def predict_polarization(text): preprocessed_text = preprocess_text(text) prediction = model.predict(preprocessed_text) probability = float(prediction[0][1]) is_polarizing = bool(probability > 0.5) response = "Polariserend" if is_polarizing else "Niet polariserend" return { "Is Polarizing": is_polarizing, "Probability": f"{probability:.2%}", "Response": response } # Crear la interfaz Gradio iface = gr.Interface( fn=predict_polarization, inputs=gr.Textbox(lines=2, placeholder="Voer hier je Nederlandse tekst in..."), outputs=gr.JSON(), title="Dutch Text Polarization Detector", description="Voer een Nederlandse tekst in om te bepalen of deze polariserend is.", examples=[ ["Dit is een neutrale zin."], ["Alle politici zijn leugenaars en dieven!"], ["Het weer is vandaag erg mooi."], ["Die groep mensen is de oorzaak van al onze problemen."] ] ) # Lanzar la app iface.launch()