import gradio as gr import tensorflow as tf import numpy as np import joblib from tensorflow.keras.preprocessing.sequence import pad_sequences from transformers import pipeline # Fonction de prédiction pour le lstm def analyser_sentiment_lstm(tweet): sequence = tokenizer.texts_to_sequences([tweet]) padded = pad_sequences(sequence) prediction = model.predict(padded)[0] sentiment = "Positif" if prediction[0] >= 0.5 else "Négatif" return {sentiment: float(prediction[0]) if sentiment == "Positif" else 1 - float(prediction[0])} def analyser_sentiment_camembert(tweet): # charger le modèle sentiment_pipeline = pipeline("sentiment-analysis", model="cmarkea/distilcamembert-base-sentiment") # appliquer le modèle result = sentiment_pipeline(tweet)[0]['label'] return result # Charger le modèle LSTM model = tf.keras.models.load_model("lstm_model.h5") # Charger le tokenizer utilisé pendant l'entraînement tokenizer = joblib.load('tokenizer.joblib') # définir les blocks demo = gr.Blocks(theme='earneleh/paris') # Interface Gradio interface1 = gr.Interface( fn=analyser_sentiment_lstm, inputs=gr.Textbox(lines=3, placeholder="Entrez un tweet en français ici..."), outputs=gr.Label(num_top_classes=2), title="Analyse de Sentiment de Tweets aves lstm", description = """Cette application compare deux approches d’analyse de sentiment sur des tweets en français : 🔹 LSTM personnalisé : un modèle de réseau de neurones entraîné localement sur des tweets, capable de prédire si le sentiment est positif ou négatif avec une probabilité. 🔹 DistilCamemBERT : un modèle pré-entraîné de type Transformer (CamemBERT) spécialisé pour la langue française, utilisé via Hugging Face pour une classification rapide du sentiment. Saisissez un tweet pour voir l’interprétation des deux modèles côte à côte.""" ) interface2 = gr.Interface( fn = analyser_sentiment_camembert, inputs=gr.Textbox(lines=3, placeholder="Entrez un tweet en français ici..."), outputs=gr.Textbox(label='Output'), title="Analyse de Sentiment de Tweets camembert", description = """Cette application compare deux approches d’analyse de sentiment sur des tweets en français : 🔹 LSTM personnalisé : un modèle de réseau de neurones entraîné localement sur des tweets, capable de prédire si le sentiment est positif ou négatif avec une probabilité. 🔹 DistilCamemBERT : un modèle pré-entraîné de type Transformer (CamemBERT) spécialisé pour la langue française, utilisé via Hugging Face pour une classification rapide du sentiment. Saisissez un tweet pour voir l’interprétation des deux modèles côte à côte.""" ) # faire un tabbing des interfaces with demo: gr.TabbedInterface([interface1, interface2], ['LSTM_SAM', 'CAMEMBERT_SAM']) # lancer l'interface demo.launch()