Spaces:
Sleeping
Sleeping
Commit
·
96afb17
1
Parent(s):
cc27478
est une étape okay Good
Browse files- app.py +2 -2
- const.py +57 -1
- 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
|
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 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
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
|