moustaphasidibe commited on
Commit
20fb729
·
verified ·
1 Parent(s): 07e215d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ import joblib
5
+ from tensorflow.keras.preprocessing.sequence import pad_sequences
6
+ from transformers import pipeline
7
+ #Importer le tokenizer
8
+ tokenizer=joblib.load('tokenizer.joblib')
9
+ # Fonction de prédiction pour le lstm
10
+ def analyser_sentiment_lstm(tweet):
11
+ sequence = tokenizer.texts_to_sequences([tweet])
12
+ padded = pad_sequences(sequence)
13
+ prediction = model.predict(padded)[0]
14
+
15
+ sentiment = "Positif" if prediction[0] >= 0.5 else "Négatif"
16
+ return {sentiment: float(prediction[0]) if sentiment == "Positif" else 1 - float(prediction[0])}
17
+
18
+ def analyser_sentiment_camembert(tweet):
19
+ # charger le modèle
20
+ sentiment_pipeline = pipeline("sentiment-analysis", model="cmarkea/distilcamembert-base-sentiment")
21
+
22
+ # appliquer le modèle
23
+ result = sentiment_pipeline(tweet)[0]['label']
24
+ return result
25
+
26
+ # Charger le modèle LSTM
27
+ model = tf.keras.models.load_model("lstm_model.h5")
28
+
29
+ # Charger le tokenizer utilisé pendant l'entraînement
30
+ tokenizer = joblib.load('tokenizer.joblib')
31
+
32
+ # définir les blocks
33
+ demo = gr.Blocks(theme = 'shivi/calm_seafoam')
34
+
35
+ # Interface Gradio
36
+ interface1 = gr.Interface(
37
+ fn=analyser_sentiment_lstm,
38
+ inputs=gr.Textbox(lines=3, placeholder="Entrez un tweet en français ici..."),
39
+ outputs=gr.Label(num_top_classes=3),
40
+ title="Analyse de Sentiment de Tweets lstm",
41
+ description="Entrez un tweet en français pour obtenir son sentiment (positif, négatif)."
42
+ )
43
+
44
+ interface2 = gr.Interface(
45
+ fn = analyser_sentiment_camembert,
46
+ inputs=gr.Textbox(lines=3, placeholder="Entrez un tweet en français ici..."),
47
+ outputs=gr.Textbox(label='Output'),
48
+ title="Analyse de Sentiment de Tweets avec camembert",
49
+ description="Entrez un tweet en français pour obtenir son sentiment."
50
+ )
51
+
52
+
53
+ # faire un tabbing des interfaces
54
+ with demo:
55
+ gr.TabbedInterface([interface1, interface2], ['LSTM_SAM', 'CAMEMBERT_SAM'])
56
+
57
+ # lancer l'interface
58
+ demo.launch()
59
+