Repository navigation
accents: le cureur canonique ne peut pas satisfaire le detecteur (table fermee de 161 entrees vs heuristique ouverte) #14613
Description
Activity
[CLAIMED] #14613 — myia-po-2026:CoursIA 2026-09-04T23:10Z (locus = ce commentaire). Preflight à l'instant : 0 commentaire, lastclaim=none, les deux organes inchangés depuis #14139 (constaté sur origin/main). Plan = les 4 demandes de l'issue : (1) cureur BruYANT (« N formes hors table » au lieu du succès muet), (2) extension ACCENT_PAIRS aux 14 formes context-free + capitalisées, (3) PAS les ambigües (entraine/cumule/recommande/enregistre), (4) port de la protection fences/inline-code/liens/URLs dans l'organe canonique. Acceptance : rejeu du notebook #14139 à b4bdcf9 → auto <= 37 sans passe manuelle, fences intacts. paths: scripts/notebook_tools/detect_accent_stripping.py scripts/notebook_tools/restore_accents_canonical.py scripts/notebook_tools/tests/
[LIVRAISON] PR #14677 — alignement cureur/detecteur d'accents.
Mesures replay (rl_1_intro_cartpole @ b4bdcf9) : avant 276 hits / 248 auto, cureur 140 cures -> residuel 210/182. Apres : 296 cures, detecteur auto 33 <= 37 (critere d'acceptance). Residuel = evaluation (x18) + ambigues (entraine/enregistre/recommande/cumule, point 3, exclus a dessein) + guide (x3, sur-accusation URL #14139, traitement separe).
Les 4 points :
- Rapport formes hors table emportes par le cureur (
hors_table/hors_table_total+ print ATTENTION) — cure incomplete = jamais un succes muet. - ACCENT_PAIRS 161 -> 179 (+18 formes RL). Arbitrage « evaluation » : exclu — l'exclusion -tion/-ence (en_valid_risky, incident po-2025 c.591) est gardee par
test_excludes_en_valid_words; le garde l'emporte sur la prescription de liste, le desalignement devient BRUYANT via le rapport (x18), et le critere auto <= 37 tient quand meme (33). - Formes ambigues exclues + test de non-cure dedie.
- Fences/inline/URL proteges : machine d'etat de fence persistante a travers les chunks nbformat, masquage spans
code+ URLs nues. Replay : 62 openers de fence intacts, 144 spans inline intacts.
Tests : 110 passed (3 modules accents) ; full notebook_tools 5381 passed / 1 skipped / 1 xfailed.
Grain : MED/tooling — interleave avec #14672 documente (merge #14672 d'abord).
→DELIVERED #14677- Rapport formes hors table emportes par le cureur (
- added a commit that references this issue
on Sep 5, 2026 Verification G.9 de fermeture (tranche 8 de #15258, lane myia-po-2024:CoursIA) : fermeture legitime, aucune reouverture.
- Fermee par
myia-ai-01a 2026-09-05T01:04:02Z,commit_id: none(fermeture manuelle). - PR livrante : fix(notebook-tools,#14613): align accents curer with detector (RL family, fence/inline/URL protection, hors-table report) #14677
fix(notebook-tools,#14613): align accents curer with detector (RL family, fence/inline/URL protection, hors-table report)— MERGED a 2026-09-05T01:04:00Z (ecart 2 s) —Grain: MED/tooling — lane myia-po-2026:CoursIA. - Substance : l'objet exact de l'issue (le cureur canonique d'accents ne pouvait pas satisfaire le detecteur — table fermee de 161 entrees vs heuristique ouverte ; alignement du cureur sur le detecteur avec protections fence/inline/URL).
- Fermee par
Le defaut
Deux organes traitent la desaccentuation, et ils ne partagent pas leur vocabulaire :
scripts/notebook_tools/detect_markdown_deaccent.pyscripts/notebook_tools/restore_accents_canonical.pydetect_accent_stripping.ACCENT_PAIRSConsequence : le detecteur peut signaler ce que le cureur ne sait pas reparer, et rien ne le dit. Le cureur rend « CURED (written) N accent(s) » et sort en succes en laissant le compte du detecteur au-dessus du seuil — indistinguable, pour l'appelant, d'une cure complete.
Mesure firsthand (PR #14139)
Sur
MyIA.AI.Notebooks/RL/rl_1_intro_cartpole.ipynba la teteb4bdcf95f:Les 21 formes restantes sont toutes absentes de
ACCENT_PAIRS:C'est le motif
handrolled-pattern-set-undercounts-silentlycote reparation : un jeu de motifs ecrit a la main ne leve pas d'erreur quand il ne couvre pas, il rend simplement un resultat plus petit et plus propre.Deux sur-accusations du detecteur, mesurees dans le meme passage
Independantes du gap ci-dessus, et a traiter separement :
guidex3, tous danshttps://stable-baselines.readthedocs.io/en/master/guide/custom_env.html. Le chemin d'une URL n'est pas de la prose francaise.enregistrex4 : « Monitor enregistre la recompense », « la video s'enregistre automatiquement ». Aucun accent n'est attendu ; le present et le participe sont homographes une fois desaccentues, donc indecidables sans contexte.Ce qui est demande
restore_accents_canonical.pysignale ce que le detecteur voit encore et qu'il ne sait pas curer (« N formes hors table : ... ») au lieu de sortir en succes muet. Un cureur qui ne peut pas atteindre le critere doit le dire : c'est ce qui a coute un aller-retour complet sur Enrich rl_1_intro_cartpole pedagogique (c139) #14139.ACCENT_PAIRSaux formes context-free-correctes ci-dessus (recompense,entrainement,episode(s),aleatoire,evaluation,hyperparametres,metrique,creation,cles,reseau(x),equivalent,complementaire,reperer,entrainer), capitalisees comprises — la moitie des occurrences de Enrich rl_1_intro_cartpole pedagogique (c139) #14139 etaient des formes capitalisees (titres, cellules de tableau, libelles gras).entraine,cumule,recommande,enregistre) : elles ont deux resolutions correctes selon le contexte, et une table globale en choisirait forcement une de travers. Elles se tranchent a la lecture.Entrainement PPO (graine 42, 10 000 pas) : ...). Les accentuer falsifierait une transcription d'execution (interdit Stop & Repair,secrets-hygiene.mdregle 6). La cure livree sur Enrich rl_1_intro_cartpole pedagogique (c139) #14139 protege deja fences, spans de code inline, cibles de lien et URLs — ce comportement est a porter dans l'organe canonique.Controle positif attendu
Le correctif se valide par ses faux negatifs, pas par ses hits : re-passer le notebook de #14139 a sa tete
b4bdcf95fdans le cureur etendu doit rendreauto <= 37sans la passe manuelle, et sans toucher le contenu des deux fences.Contexte
Ouvert depuis #14139 (la plus vieille PR du depot), ou le critere de sortie que j'avais pose comme coordinateur (
auto <= 37) etait hors de portee du remede que j'avais prescrit dans le meme commentaire. La PR a ete debloquee a la main (commit1c5c20103,248 -> 7 auto) ; l'organe, lui, reste inchange.See #14139, #2876.