FerdinandPyCode commited on
Commit
96afb17
·
1 Parent(s): cc27478

est une étape okay Good

Browse files
Files changed (3) hide show
  1. app.py +2 -2
  2. const.py +57 -1
  3. pattern_est_une_etape.py +111 -46
app.py CHANGED
@@ -29,7 +29,7 @@ st.title("Analyse du texte")
29
 
30
  # Liste des templates de prompt
31
  List_prompt = {
32
- "< Détection du pattern 'est une étape' >": est_une_etape_prompt_template(),
33
  "< Détection du pattern 'epoque de, à l'ère de' >": epoque_prompt_template(),
34
  "< Détection du pattern 'ce qui explique' >": explication_prompt_template(),
35
  "< Détection des adverbes en -ment >": adverbement_prompt_template(),
@@ -67,7 +67,7 @@ input_text = st.text_area("Entrez votre texte ici :", height=200)
67
  # Bouton d'analyse
68
  if st.button("Lancer l'analyse"):
69
  if input_text:
70
- if option == "< Détection du pattern 'est une étape' >":
71
  try:
72
  # Analyser le texte pour les fautes de style
73
  result = une_etape(input_text)
 
29
 
30
  # Liste des templates de prompt
31
  List_prompt = {
32
+ "V2 < Détection du pattern 'est une étape' >": est_une_etape_prompt_template(),
33
  "< Détection du pattern 'epoque de, à l'ère de' >": epoque_prompt_template(),
34
  "< Détection du pattern 'ce qui explique' >": explication_prompt_template(),
35
  "< Détection des adverbes en -ment >": adverbement_prompt_template(),
 
67
  # Bouton d'analyse
68
  if st.button("Lancer l'analyse"):
69
  if input_text:
70
+ if option == "V2 < Détection du pattern 'est une étape' >":
71
  try:
72
  # Analyser le texte pour les fautes de style
73
  result = une_etape(input_text)
const.py CHANGED
@@ -39,8 +39,64 @@ class DetectionResult(BaseModel):
39
  "summary": self.summary.model_dump()
40
  }
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
- def academie_prompt_template():
44
  return """
45
  Tu es un rédacteur web expérimenté et pointilleux qui fait attention aux moindres détails. Je vais te donner un texte, et ta mission est de {mission}.
46
 
 
39
  "summary": self.summary.model_dump()
40
  }
41
 
42
+ """def prompt_template():
43
+ return
44
+ En tant que rédacteur web expert, votre mission est de {mission} dans le texte suivant.
45
+
46
+ Exemples d'erreurs à corriger :
47
+ {Exemple d'erreur 1} → {Correction 1}
48
+ {Exemple d'erreur 2} → {Correction 2}
49
+ {Exemple d'erreur 3} → {Correction 3}
50
+
51
+ Pour chaque erreur détectée :
52
+ 1. Citez la phrase complète avec ses indices de début et de fin.
53
+ 2. Identifiez l'expression erronée avec ses indices.
54
+ 3. Proposez 5 reformulations améliorant le style tout en préservant le sens et le contexte.
55
+ 4. Fournissez une justification unique pour les reformulations.
56
+
57
+ Règles de reformulation :
58
+ - Évitez les anglicismes et le langage informel.
59
+ - Utilisez un vocabulaire professionnel et formel.
60
+ - N'utilisez pas : "crucial", "essentiel", "important", "fondamental".
61
+ - Ne commencez pas les phrases par : "Il existe", "il faut", "cependant", "de plus", "en revanche", "néanmoins", "toutefois", "en plus".
62
+ - Évitez les constructions : "joue un rôle important", "il est essentiel", "est une étape cruciale".
63
+ - Consultez les recommandations de l'Académie Française (https://www.academie-francaise.fr/dire-ne-pas-dire/).
64
+
65
+ Texte à analyser :
66
+ {text}
67
+
68
+ Format de sortie JSON :
69
+ {{
70
+ "phrases_detectees": [
71
+ {{
72
+ "phrase": {{
73
+ "texte": "Phrase complète",
74
+ "indice_debut": x,
75
+ "indice_fin": y
76
+ }},
77
+ "erreurs": [
78
+ {{
79
+ "expression": "Expression erronée",
80
+ "indice_debut": a,
81
+ "indice_fin": b
82
+ }}
83
+ ],
84
+ "reformulations": [
85
+ {{ "texte": "Reformulation 1" }},
86
+ {{ "texte": "Reformulation 2" }},
87
+ {{ "texte": "Reformulation 3" }},
88
+ {{ "texte": "Reformulation 4" }},
89
+ {{ "texte": "Reformulation 5" }}
90
+ ],
91
+ "justification": "Justification des reformulations"
92
+ }}
93
+ ]
94
+ }}
95
+
96
+ Assurez-vous que les indices correspondent aux positions exactes dans le texte original et que le JSON est correctement formaté.
97
+ """
98
 
99
+ def prompt_template():
100
  return """
101
  Tu es un rédacteur web expérimenté et pointilleux qui fait attention aux moindres détails. Je vais te donner un texte, et ta mission est de {mission}.
102
 
pattern_est_une_etape.py CHANGED
@@ -56,53 +56,118 @@ class DetectionResult(BaseModel):
56
  }
57
 
58
  def est_une_etape_prompt_template() :
59
-
60
  return """
61
- Analyser le texte suivant et identifier toutes les phrases où une expression similaire à "est une étape" est utilisée,
62
- y compris des variantes comme "est une étape", "constitue une étape", "représente une étape", "marque une étape",
63
- "signifie une étape", "symbolise une étape", etc.
64
-
65
- Recherche particulièrement ces expressions lorsqu'elles sont associées à des adjectifs exprimant l'importance
66
- (par exemple, "important", "essentiel", "crucial", "primordial", "fondamental", "indispensable", "déterminant",
67
- "vital", "majeur", "clé", "nécessaire", "stratégique", "significatif", etc.), que l'adjectif se trouve avant ou après le mot "étape".
68
-
69
- Pour chaque occurrence trouvée, veuillez :
70
-
71
- - Citer la phrase complète l'expression apparaît.
72
- - Indiquer l'expression exacte utilisée dans le texte.
73
- - Mentionner l'adjectif d'importance associé.
74
- - Proposer deux reformulations de la phrase pour changer l'expression détectée et l'adjectif associé,
75
- sans employer d'expression équivalente.
76
- - Assurez-vous de respecter les règles suivantes :
77
- 1. Les expressions comme "crucial", "essentiel", "important", "fondamental" doivent être utilisées une seule fois
78
- dans l'introduction (premier paragraphe).
79
- 2. Évitez l'usage de mots comme "il existe", "il faut", "cependant", "de plus", "en revanche", "toutefois" en début de phrase.
80
- 3. N'utilisez pas "joue un rôle", "il est", ou "est une étape" avec des adjectifs tels qu'"important", "essentiel", etc.
81
-
82
- Le format de sortie doit être un JSON structuré avec les éléments suivants pour chaque pattern détecté :
83
-
84
- - "pattern": "mot ou expression détectée",
85
- - "adjectif": "adjectif associé",
86
- - "indices": [[index de début, index de fin pour chaque occurrence]],
87
- - "sentence": "phrase où l'expression est utilisée",
88
- - "alternative_suggestions": ["suggestion 1", "suggestion 2"]
89
-
90
- Si aucun pattern n'est trouvé, retournez un JSON avec :
91
-
92
- - "pattern0": "",
93
- - "occurrences": 0,
94
-
95
- Ajoutez également un résumé à la fin :
96
-
97
- - "total_patterns_detected": nombre total de patterns détectés,
98
- - "alternative_suggestions_provided": nombre de suggestions données
99
- - "occurrences": nombre d'occurrences.
100
-
101
- Voici le texte à analyser :
102
- ```{text}```
103
-
104
- \n{format_instruction}
105
- """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
  def une_etape(text):
108
  # Créer le template avec la variable text intégrée directement
 
56
  }
57
 
58
  def est_une_etape_prompt_template() :
 
59
  return """
60
+ En tant que rédacteur web expert, votre mission est d'analyser le texte suivant et d'identifier toutes les phrases où une expression similaire à "est une étape" est utilisée, y compris ses variantes, particulièrement lorsqu'elles sont associées à des adjectifs exprimant l'importance.
61
+
62
+ Exemples d'expressions à rechercher :
63
+ "est une étape importante" → "contribue à l'avancement du processus"
64
+ "représente une étape cruciale" "fait progresser significativement le projet"
65
+ "symbolise une étape fondamentale" "marque un tournant dans le développement"
66
+
67
+ Pour chaque expression détectée :
68
+ 1. Citez la phrase complète avec ses indices de début et de fin.
69
+ 2. Identifiez l'expression exacte avec ses indices.
70
+ 3. Proposez 5 reformulations améliorant le style tout en préservant le sens et le contexte.
71
+ 4. Fournissez une justification unique pour les reformulations tout en mentionnant l'adjectif d'importance associé.
72
+
73
+ Règles de reformulation :
74
+ - Évitez l'utilisation directe de "étape" associée à des adjectifs d'importance.
75
+ - Remplacez ces constructions par des verbes d'action ou des expressions plus dynamiques.
76
+ - Utilisez un vocabulaire professionnel et formel.
77
+ - Variez la structure des phrases pour éviter la répétition.
78
+ - Assurez-vous que les reformulations transmettent l'importance de l'action sans utiliser explicitement des termes comme "important", "crucial", etc.
79
+
80
+ Expressions à rechercher :
81
+ - "est une étape", "constitue une étape", "représente une étape", "marque une étape", "signifie une étape", "symbolise une étape"
82
+ - Ces expressions associées à des adjectifs comme : "important", "essentiel", "crucial", "primordial", "fondamental", "indispensable", "déterminant", "vital", "majeur", "clé", "nécessaire", "stratégique", "significatif"
83
+
84
+ Texte à analyser :
85
+ {text}
86
+
87
+ Format de sortie JSON :
88
+ {{
89
+ "phrases_detectees": [
90
+ {{
91
+ "phrase": {{
92
+ "texte": "Phrase complète contenant l'expression ou les expressions détectées",
93
+ "indice_debut": x,
94
+ "indice_fin": y
95
+ }},
96
+ "erreurs": [
97
+ {{
98
+ "expression": "Expression détectée (ex: 'est une étape importante')",
99
+ "indice_debut": a,
100
+ "indice_fin": b
101
+ }}
102
+ ],
103
+ "reformulations": [
104
+ {{ "texte": "Reformulation 1" }},
105
+ {{ "texte": "Reformulation 2" }},
106
+ {{ "texte": "Reformulation 3" }},
107
+ {{ "texte": "Reformulation 4" }},
108
+ {{ "texte": "Reformulation 5" }}
109
+ ],
110
+ "justification": "Justification des reformulations proposées en s'il est disponible l'adjectif qualificatif à laquelle c'est associés."
111
+ }}
112
+ ],
113
+ "summary": {{
114
+ "total_erreurs": nombre_total_d_expressions_detectées,
115
+ "total_phrases": nombre_total_de_phrases_contenant_des_expressions,
116
+ "total_reformulations": nombre_total_de_reformulations_proposées
117
+ }}
118
+ }}
119
+
120
+ Assurez-vous que les indices correspondent aux positions exactes dans le texte original et que le JSON est correctement formaté.
121
+ {format_instruction}"""
122
+
123
+ # def est_une_etape_prompt_template() :
124
+
125
+ # return """
126
+ # Analyser le texte suivant et identifier toutes les phrases où une expression similaire à "est une étape" est utilisée,
127
+ # y compris des variantes comme "est une étape", "constitue une étape", "représente une étape", "marque une étape",
128
+ # "signifie une étape", "symbolise une étape", etc.
129
+
130
+ # Recherche particulièrement ces expressions lorsqu'elles sont associées à des adjectifs exprimant l'importance
131
+ # (par exemple, "important", "essentiel", "crucial", "primordial", "fondamental", "indispensable", "déterminant",
132
+ # "vital", "majeur", "clé", "nécessaire", "stratégique", "significatif", etc.), que l'adjectif se trouve avant ou après le mot "étape".
133
+
134
+ # Pour chaque occurrence trouvée, veuillez :
135
+
136
+ # - Citer la phrase complète où l'expression apparaît.
137
+ # - Indiquer l'expression exacte utilisée dans le texte.
138
+ # - Mentionner l'adjectif d'importance associé.
139
+ # - Proposer deux reformulations de la phrase pour changer l'expression détectée et l'adjectif associé,
140
+ # sans employer d'expression équivalente.
141
+ # - Assurez-vous de respecter les règles suivantes :
142
+ # 1. Les expressions comme "crucial", "essentiel", "important", "fondamental" doivent être utilisées une seule fois
143
+ # dans l'introduction (premier paragraphe).
144
+ # 2. Évitez l'usage de mots comme "il existe", "il faut", "cependant", "de plus", "en revanche", "toutefois" en début de phrase.
145
+ # 3. N'utilisez pas "joue un rôle", "il est", ou "est une étape" avec des adjectifs tels qu'"important", "essentiel", etc.
146
+
147
+ # Le format de sortie doit être un JSON structuré avec les éléments suivants pour chaque pattern détecté :
148
+
149
+ # - "pattern": "mot ou expression détectée",
150
+ # - "adjectif": "adjectif associé",
151
+ # - "indices": [[index de début, index de fin pour chaque occurrence]],
152
+ # - "sentence": "phrase où l'expression est utilisée",
153
+ # - "alternative_suggestions": ["suggestion 1", "suggestion 2"]
154
+
155
+ # Si aucun pattern n'est trouvé, retournez un JSON avec :
156
+
157
+ # - "pattern0": "",
158
+ # - "occurrences": 0,
159
+
160
+ # Ajoutez également un résumé à la fin :
161
+
162
+ # - "total_patterns_detected": nombre total de patterns détectés,
163
+ # - "alternative_suggestions_provided": nombre de suggestions données
164
+ # - "occurrences": nombre d'occurrences.
165
+
166
+ # Voici le texte à analyser :
167
+ # ```{text}```
168
+
169
+ # \n{format_instruction}
170
+ # """
171
 
172
  def une_etape(text):
173
  # Créer le template avec la variable text intégrée directement