ahmadouna commited on
Commit
e64ff87
1 Parent(s): 8d856cb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +94 -34
app.py CHANGED
@@ -1,3 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import pandas as pd
2
  import streamlit as st
3
  from transformers import pipeline
@@ -5,11 +69,10 @@ from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_sc
5
 
6
  # Charger le modèle pré-entraîné
7
  classifier_model = "morit/french_xlm_xnli"
8
- #classifier_model ="MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7"
9
  classifier = pipeline("zero-shot-classification", model=classifier_model)
10
 
11
  # Charger les données depuis le fichier CSV
12
- df = pd.read_csv("fic.csv",sep=";")
13
  # Récupérer les commentaires en liste
14
  comments = df["text"].tolist()
15
 
@@ -23,42 +86,39 @@ selected_comment = st.selectbox("Veuillez sélectionner un commentaire", comment
23
  text = st.text_area('Entrer le texte à analyser', value=selected_comment)
24
 
25
  # Labels candidats pour la classification
26
- candidate_labels = [1,0]
27
 
28
  # Modèle de phrase pour la formation de l'hypothèse
29
  hypothesis_template = "Cet exemple est un {}."
30
 
31
- # Exécuter la classification seulement si du texte est entré
32
- if text and candidate_labels:
33
- result = classifier(text, candidate_labels, hypothesis_template=hypothesis_template)
34
-
35
- #st.info(f"Résultat: {result['labels'][0]} avec une confiance de {result['scores'][0]*100:.2f}%")
36
- if result['labels'][0]==1:
37
- st.info(f"Résultat: commentaire positive avec une confiance de {result['scores'][0]*100:.2f}%")
38
- if result['labels'][0]==0:
39
- st.info(f"Résultat: commentaire negative avec une confiance de {result['scores'][0]*100:.2f}%")
40
- else:
41
- st.write("Veuillez entrer du texte pour l'analyse.")
42
-
43
- # Calculer les métriques de performance (vous devez ajuster ces lignes selon votre tâche)
44
-
45
- inputs = df["text"].tolist()
46
- true_labels = df["label"].tolist()
47
- predictions = classifier(inputs, candidate_labels, hypothesis_template=hypothesis_template)
48
- predicted_labels = [result['labels'][0] for result in predictions]
49
-
50
- accuracy = accuracy_score(true_labels, predicted_labels)
51
- precision = precision_score(true_labels, predicted_labels, average='binary')
52
- recall = recall_score(true_labels, predicted_labels, average='binary')
53
- f1 = f1_score(true_labels, predicted_labels, average='binary')
54
- balanced_accuracy = balanced_accuracy_score(true_labels, predicted_labels)
55
-
56
- # Afficher les métriques sous forme de tableau
57
- st.header("Métriques de Performance")
58
- metrics_df = pd.DataFrame({
59
  "Métrique": ["Accuracy", "Precision", "Recall", "F1-score", "Balanced Accuracy"],
60
  "Valeur": [accuracy, precision, recall, f1, balanced_accuracy]
61
  })
62
- st.table(metrics_df)
63
- # a continuer
64
-
 
1
+ # import pandas as pd
2
+ # import streamlit as st
3
+ # from transformers import pipeline
4
+ # from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, balanced_accuracy_score
5
+
6
+ # # Charger le modèle pré-entraîné
7
+ # classifier_model = "morit/french_xlm_xnli"
8
+ # #classifier_model ="MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7"
9
+ # classifier = pipeline("zero-shot-classification", model=classifier_model)
10
+
11
+ # # Charger les données depuis le fichier CSV
12
+ # df = pd.read_csv("fic.csv",sep=";")
13
+ # # Récupérer les commentaires en liste
14
+ # comments = df["text"].tolist()
15
+
16
+ # # Afficher l'entête
17
+ # st.header("Analyse de Texte")
18
+
19
+ # # Créer une selectbox pour choisir un commentaire
20
+ # selected_comment = st.selectbox("Veuillez sélectionner un commentaire", comments)
21
+
22
+ # # Afficher le commentaire sélectionné dans l'input text
23
+ # text = st.text_area('Entrer le texte à analyser', value=selected_comment)
24
+
25
+ # # Labels candidats pour la classification
26
+ # candidate_labels = [1,0]
27
+
28
+ # # Modèle de phrase pour la formation de l'hypothèse
29
+ # hypothesis_template = "Cet exemple est un {}."
30
+
31
+ # # Exécuter la classification seulement si du texte est entré
32
+ # if text and candidate_labels:
33
+ # result = classifier(text, candidate_labels, hypothesis_template=hypothesis_template)
34
+
35
+ # #st.info(f"Résultat: {result['labels'][0]} avec une confiance de {result['scores'][0]*100:.2f}%")
36
+ # if result['labels'][0]==1:
37
+ # st.info(f"Résultat: commentaire positive avec une confiance de {result['scores'][0]*100:.2f}%")
38
+ # if result['labels'][0]==0:
39
+ # st.info(f"Résultat: commentaire negative avec une confiance de {result['scores'][0]*100:.2f}%")
40
+ # else:
41
+ # st.write("Veuillez entrer du texte pour l'analyse.")
42
+
43
+ # # Calculer les métriques de performance (vous devez ajuster ces lignes selon votre tâche)
44
+
45
+ # inputs = df["text"].tolist()
46
+ # true_labels = df["label"].tolist()
47
+ # predictions = classifier(inputs, candidate_labels, hypothesis_template=hypothesis_template)
48
+ # predicted_labels = [result['labels'][0] for result in predictions]
49
+
50
+ # accuracy = accuracy_score(true_labels, predicted_labels)
51
+ # precision = precision_score(true_labels, predicted_labels, average='binary')
52
+ # recall = recall_score(true_labels, predicted_labels, average='binary')
53
+ # f1 = f1_score(true_labels, predicted_labels, average='binary')
54
+ # balanced_accuracy = balanced_accuracy_score(true_labels, predicted_labels)
55
+
56
+ # # Afficher les métriques sous forme de tableau
57
+ # st.header("Métriques de Performance")
58
+ # metrics_df = pd.DataFrame({
59
+ # "Métrique": ["Accuracy", "Precision", "Recall", "F1-score", "Balanced Accuracy"],
60
+ # "Valeur": [accuracy, precision, recall, f1, balanced_accuracy]
61
+ # })
62
+ # st.table(metrics_df)
63
+ # # a continuer
64
+
65
  import pandas as pd
66
  import streamlit as st
67
  from transformers import pipeline
 
69
 
70
  # Charger le modèle pré-entraîné
71
  classifier_model = "morit/french_xlm_xnli"
 
72
  classifier = pipeline("zero-shot-classification", model=classifier_model)
73
 
74
  # Charger les données depuis le fichier CSV
75
+ df = pd.read_csv("fic.csv", sep=";")
76
  # Récupérer les commentaires en liste
77
  comments = df["text"].tolist()
78
 
 
86
  text = st.text_area('Entrer le texte à analyser', value=selected_comment)
87
 
88
  # Labels candidats pour la classification
89
+ candidate_labels = [1, 0]
90
 
91
  # Modèle de phrase pour la formation de l'hypothèse
92
  hypothesis_template = "Cet exemple est un {}."
93
 
94
+ # Ajouter un bouton pour déclencher l'analyse
95
+ if st.button("Analyser le texte"):
96
+ if text and candidate_labels:
97
+ result = classifier(text, candidate_labels, hypothesis_template=hypothesis_template)
98
+
99
+ if result['labels'][0] == 1:
100
+ st.info(f"Résultat: commentaire positif avec une confiance de {result['scores'][0]*100:.2f}%")
101
+ if result['labels'][0] == 0:
102
+ st.info(f"Résultat: commentaire négatif avec une confiance de {result['scores'][0]*100:.2f}%")
103
+ else:
104
+ st.write("Veuillez entrer du texte pour l'analyse.")
105
+
106
+ # Calculer les métriques de performance (vous devez ajuster ces lignes selon votre tâche)
107
+ inputs = df["text"].tolist()
108
+ true_labels = df["label"].tolist()
109
+ predictions = classifier(inputs, candidate_labels, hypothesis_template=hypothesis_template)
110
+ predicted_labels = [result['labels'][0] for result in predictions]
111
+
112
+ accuracy = accuracy_score(true_labels, predicted_labels)
113
+ precision = precision_score(true_labels, predicted_labels, average='binary')
114
+ recall = recall_score(true_labels, predicted_labels, average='binary')
115
+ f1 = f1_score(true_labels, predicted_labels, average='binary')
116
+ balanced_accuracy = balanced_accuracy_score(true_labels, predicted_labels)
117
+
118
+ # Afficher les métriques sous forme de tableau
119
+ st.header("Métriques de Performance:Elles sont evaluées sur des données labelisés")
120
+ metrics_df = pd.DataFrame({
 
121
  "Métrique": ["Accuracy", "Precision", "Recall", "F1-score", "Balanced Accuracy"],
122
  "Valeur": [accuracy, precision, recall, f1, balanced_accuracy]
123
  })
124
+ st.table(metrics_df)