Skip to content

fix(genai,#17066): redressement critique 26_PCFG — retitrage 13 lectures + fusion tableau/histogramme (13 dup -> 0) - #17100

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17066-pcfg-dedup
Sep 21, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17066-pcfg-dedup

Conversation

@jsboige

@jsboige jsboige commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

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-python consecutifs 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.ipynb

Porteur mesuré par check_duplicate_sections.py : 13 dup_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_NOMINAL en exo 2 est une donnée d'énoncé, pas une solution — même pattern que VILLES en 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

# Geste Détail
1-13 Retitrage sujet-spécifique Chaque lecture conservée reçoit un titre unique : « la grammaire fil rouge », « 31 règles CNF », « les verdicts CYK », « la table de la phrase ambiguë », « deux rejets deux causes », « le biais d'attachement et le zéro fatal », « la distribution est préservée », « le rapport de 1,12 », « l'arbre reconstruit », « produit direct = score Viterbi », « l'arbre dessiné », « la concordance NLTK ». Corps inchangés.
14 Fusion 32+34 Les deux lectures de la section 6 lisaient le MÊME résultat : cellule 32 le tableau des deux dérivations, cellule 34 le bar-chart des mêmes masses (échelle log). Fusionnées en UNE cellule après le plot, corps intégraux des deux, un seul titre. Une couture de jointure : « L'histogramme ci-dessous » → « ci-dessus » (le plot passe au-dessus de la lecture fusionnée). −1 cellule.

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

Contrôle Résultat
check_duplicate_sections.py 13 findings → 0
Cellules code (17) byte-identiques (SHA1 avant/après égaux)
Outputs 18 intacts, 17/17 execution_count — 0 re-exécution requise (C.2 exception markdown)
Headings dupliqués restants 0
nbformat VALID
Périmètre 1 fichier, +13/−110

See #17066 (2ᵉ notebook sur 218 porteurs livré par cette lane).

🤖 Generated with Claude Code

…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>
@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions github-actions Bot removed the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Sep 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.3s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.1s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 17.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.9s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 17
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17100
head: 19295ab
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2f3af43b21db5db04bada6d0cc1434eba9ea45ac8f00d50e969fedba76483e0c
diff-files: 1
diff-additions: 13
diff-deletions: 110
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 589ff82 into main Sep 21, 2026
89 of 99 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants