Repository navigation
fix(genai,#17066): redressement critique 26_PCFG — retitrage 13 lectures + fusion tableau/histogramme (13 dup -> 0) - #17100
Conversation
…res + fusion tableau/histogramme (13 dup -> 0) Consolidation markdown-only : 17 cellules code byte-identiques (sha1), 18 outputs intacts, 0 re-execution requise (C.2 exception markdown). Organe check_duplicate_sections.py : 13 dup_reading -> 0. See #17066 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[ADJOINT PREFLIGHT] |
Grain: LIGHT/notebook-python -- lane myia-po-2023:CoursIA -- prev: LIGHT/notebook-python #17076
Exception ecrite (G-VAR-3 adjacency + trivial-diff #15740), ajout 2026-09-21. L'organe adjacency mesure des grains
LIGHT/notebook-pythonconsecutifs pour la lane en sequence de merges (#17076 -> #17100 -> #17101 -> #17106). C'est voulu : la campagne #17066 (duplicate-sections, dispatch ai-01) est une serie coordonnee livree en PRs separees (one-notebook-per-PR, regle atomique), chaque PR etant la consolidation d'un notebook distinct mesuree par le meme organ (check_duplicate_sections.py : porteurs 10-15 -> 0 chacun, verifie dans chaque body). Le diff court (~20-45 lignes de titres) est le format attendu d'une consolidation markdown-only (retitres subject-specific, corps byte-identiques) : la substance de chaque PR est documentee dans son corps et preuvee (SHA1 cellules code, outputs intacts).Redressement critique #17066 —
GenAI/Texte/26_PCFG_CYK_Parsing.ipynbPorteur mesuré par
check_duplicate_sections.py: 13dup_reading— 14 cellules titrées à l'identique « Lecture du resultat » (cellules 3, 6, 9, 12, 15, 18, 21, 24, 27, 29, 32, 34, 36, 39).Lecture critique préalable
Comme 25_CRF (PR #17076), le contenu des 14 lectures est riche et ancré sur les valeurs mesurées (25→31 règles CNF, rapport Viterbi/inside 1,12, 89,7 %/10,3 %, concordance NLTK exacte). Le défaut est structurel : un titre générique répété 14 fois qui interdit la navigation. Vérifié : chaque lecture suit SON code, aucun ordre inversé, les 3 exercices sont des stubs C.1 conformes (
ARBRE_NOMINALen exo 2 est une donnée d'énoncé, pas une solution — même pattern queVILLESen 25_CRF), aucune fuite de solution, les titres intermédiaires (« Ouvrir la table », « Pourquoi les négatives », « La CNF pondérée », « Reconstruire l'arbre ») sont déjà uniques.Consolidations
Plan du notebook après réparation
8 sections progressives inchangées (CFG explicite → CNF → recognizer CYK avec table ouverte + négatives expliquées → PCFG/treebank MLE + CNF pondérée → Viterbi/inside + backpointers + contrôle de cohérence → ambiguïté mesurée + histogramme + arbre dessiné → témoin NLTK), puis 3 exercices conformes et conclusion. 47 cellules (48 avant).
Verdict de séquence
Saine et préservée : CFG → CNF → CYK → PCFG → Viterbi → ambiguïté → témoin est la progression canonique du parsing probabiliste, chaque section prouvant l'instrument avant l'étendre (CNF vérifiée
est_cnf, distribution préservée à 1,000000, produit direct = Viterbi, inside = somme des dérivations, NLTK en étalon). Les lectures, désormais localisables par sujet, suivent cette progression sans trou ni redondance de contenu (le seul recouvrement réel — tableau/histogramme de la section 6 — est fusionné).Mesures
check_duplicate_sections.pyexecution_count— 0 re-exécution requise (C.2 exception markdown)See #17066 (2ᵉ notebook sur 218 porteurs livré par cette lane).
🤖 Generated with Claude Code