Adracamara94 commited on
Commit
21b7407
·
verified ·
1 Parent(s): bee60cc

Create app.py

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