← Speech & Language Processing

BOOK NOTES · SPEECH & LANGUAGE PROCESSING · CHAPTER 18

Chapter 18 — Context-Free Grammars and Constituency Parsing.

speech-language-processingchapter-18nlpspeechmaster's-notes

// the one-minute version

Constituency parsing groups words into nested phrases such as noun phrases and verb phrases. A context-free grammar defines how categories expand into sequences of categories or words. The same sentence can support several parse trees, so parsing searches a large structured space. Treebanks provide annotated examples. CKY parsing uses dynamic programming over spans, usually after converting a grammar to Chomsky Normal Form. Modern neural parsers score spans and labels directly, but the core questions remain: which word groups form units, how are they nested, and how should ambiguous analyses be evaluated?

Imagine arriving in a research lab with one deceptively simple request: build a system that can use language reliably. The room already contains datasets, model checkpoints, annotation manuals, benchmark tables, and confident demos. What it does not contain is a guarantee that everybody means the same thing by “use language.” Chapter 18 slows the room down. Its subject is Context-Free Grammars and Constituency Parsing. Its job is to turn a broad topic into a sequence of explicit choices that a researcher can inspect, test, and defend.

Our running story will not begin with a library call. It begins with a user and an observable signal. In “I saw the scientist with the telescope,” the phrase may modify “saw” (I used the telescope) or “scientist” (the scientist had it). Both trees satisfy a basic grammar. CKY constructs both from shared subspans. A statistical or neural score uses lexical tendencies and broader context to rank them. The parser should preserve uncertainty when evidence is weak rather than presenting syntax as certain meaning. That miniature situation is enough to expose the chapter's full problem. Something in the world becomes data; the data is represented; alternatives are scored; a decision is decoded; and somebody must decide whether the result is good enough to use. The model is only one character in that story.

This companion follows the structure and main ideas of the official January 6, 2026 draft, but the wording, examples, diagrams, exercises, and explanations are original. It is written for a master's student who needs more than a list of terms: you should be able to derive the central mechanism, identify its assumptions, design a controlled experiment, and explain why a strong benchmark number may still fail to establish the claim you care about.

chapter promiseBy the end, you should be able to explain context-free grammars and constituency parsing from first principles, connect its major components, work through a concrete case, recognize the most common invalid shortcuts, and design an evaluation that separates model quality from data leakage or measurement error.

01 Begin with the problem, not the model

Constituents, context-free grammars, treebanks, ambiguity, normal forms, CKY dynamic programming, neural span parsing, and evaluation. The important noun in that sentence is not the name of an architecture. It is the problem. A problem statement identifies an observable input, a desired output, the context legitimately available at decision time, and the cost of being wrong. Architecture selection comes later.

First principles are useful because language systems accumulate invisible conventions. A word boundary may be assumed rather than defined. A label may mix several human judgments. A train/test split may let the same speaker, document template, or memorized passage appear on both sides. An aggregate metric may give every error equal value even when deployment does not. If those choices remain hidden, a larger model can improve the number while leaving the real problem untouched.

For this chapter, ask four questions before reading any result. Representation: what exactly becomes a token, vector, frame, span, state, or candidate? Objective: which quantity is optimized, and is it the same behavior users need? Inference: how are candidates searched, constrained, ranked, or sampled? Evaluation: what held-out evidence would falsify the claim? These four questions create a map that survives changes in implementation fashion.

Chapter 18: the first-principles reasoning loop REPRESENTWhat is the input? SCOREWhat counts as better? DECIDEHow is output chosen? VERIFYWhat evidence is enough? Failures return to the representation, data, objective, or evaluation—not to guesswork.

The loop used throughout this companion: make each hidden choice inspectable before trusting the final behavior.

02 The chapter's conceptual map

Read the following concepts as cooperating modules rather than vocabulary for an exam. Each owns a distinct responsibility. The interfaces between them are where assumptions become visible and where most serious debugging begins.

1. Constituents are reusable phrase units

Substitution, movement, and coordination tests suggest that word groups behave as units, but tests can disagree. A parse tree is an analysis under a grammar and annotation convention, not a photograph of an uncontested structure.

Build this idea from its contract. First name the observation available to the system; then name the representation that preserves the useful part of that observation; then identify the score, probability, constraint, or rule that distinguishes one candidate from another. Finally ask what output leaves this component and which later component is allowed to trust it. In context-free grammars and constituency parsing, these boundaries matter because a superficially correct final answer can be produced by the wrong evidence. A master's-level analysis therefore explains not just what the component returns, but what information it discards and which assumptions make the return value meaningful.

The idea also has an operational side. We would want examples where constituents are reusable phrase units clearly helps, counterexamples where its assumptions break, an ablation that removes it, and a metric sensitive to the expected change. If removing it changes nothing, either the rest of the system learned a substitute or the evaluation never exercised the behavior. If it improves the average but harms a language, subgroup, input length, or rare class, the average is incomplete evidence. This is how we move from remembering a definition to making and defending a research claim.

Keep constituents are reusable phrase units separate from cfg rules build recursive trees. They cooperate, but they answer different questions. Collapsing the two makes debugging impossible: an engineer sees only an incorrect output and cannot tell whether the representation was weak, the candidate set was incomplete, the scoring function preferred the wrong item, or the decoder violated a constraint. The chapter's larger lesson is to preserve these interfaces even when a neural model learns several stages jointly.

2. CFG rules build recursive trees

Rules such as S → NP VP and NP → Det N allow phrases to contain phrases. Context-free means the left-hand category expands without directly consulting its surrounding context, which provides tractability but misses some constraints.

Build this idea from its contract. First name the observation available to the system; then name the representation that preserves the useful part of that observation; then identify the score, probability, constraint, or rule that distinguishes one candidate from another. Finally ask what output leaves this component and which later component is allowed to trust it. In context-free grammars and constituency parsing, these boundaries matter because a superficially correct final answer can be produced by the wrong evidence. A master's-level analysis therefore explains not just what the component returns, but what information it discards and which assumptions make the return value meaningful.

The idea also has an operational side. We would want examples where cfg rules build recursive trees clearly helps, counterexamples where its assumptions break, an ablation that removes it, and a metric sensitive to the expected change. If removing it changes nothing, either the rest of the system learned a substitute or the evaluation never exercised the behavior. If it improves the average but harms a language, subgroup, input length, or rare class, the average is incomplete evidence. This is how we move from remembering a definition to making and defending a research claim.

Keep cfg rules build recursive trees separate from ambiguity multiplies analyses. They cooperate, but they answer different questions. Collapsing the two makes debugging impossible: an engineer sees only an incorrect output and cannot tell whether the representation was weak, the candidate set was incomplete, the scoring function preferred the wrong item, or the decoder violated a constraint. The chapter's larger lesson is to preserve these interfaces even when a neural model learns several stages jointly.

3. Ambiguity multiplies analyses

Prepositional-phrase attachment, coordination, and noun compounds can produce many valid trees. A parser needs probabilities or learned scores to rank them using lexical and contextual evidence.

Build this idea from its contract. First name the observation available to the system; then name the representation that preserves the useful part of that observation; then identify the score, probability, constraint, or rule that distinguishes one candidate from another. Finally ask what output leaves this component and which later component is allowed to trust it. In context-free grammars and constituency parsing, these boundaries matter because a superficially correct final answer can be produced by the wrong evidence. A master's-level analysis therefore explains not just what the component returns, but what information it discards and which assumptions make the return value meaningful.

The idea also has an operational side. We would want examples where ambiguity multiplies analyses clearly helps, counterexamples where its assumptions break, an ablation that removes it, and a metric sensitive to the expected change. If removing it changes nothing, either the rest of the system learned a substitute or the evaluation never exercised the behavior. If it improves the average but harms a language, subgroup, input length, or rare class, the average is incomplete evidence. This is how we move from remembering a definition to making and defending a research claim.

Keep ambiguity multiplies analyses separate from cky reuses span solutions. They cooperate, but they answer different questions. Collapsing the two makes debugging impossible: an engineer sees only an incorrect output and cannot tell whether the representation was weak, the candidate set was incomplete, the scoring function preferred the wrong item, or the decoder violated a constraint. The chapter's larger lesson is to preserve these interfaces even when a neural model learns several stages jointly.

4. CKY reuses span solutions

For every span and category, CKY considers split points and combines best subparses. Dynamic programming avoids recomputing the same subspans and guarantees an optimal parse under the model assumptions.

Build this idea from its contract. First name the observation available to the system; then name the representation that preserves the useful part of that observation; then identify the score, probability, constraint, or rule that distinguishes one candidate from another. Finally ask what output leaves this component and which later component is allowed to trust it. In context-free grammars and constituency parsing, these boundaries matter because a superficially correct final answer can be produced by the wrong evidence. A master's-level analysis therefore explains not just what the component returns, but what information it discards and which assumptions make the return value meaningful.

The idea also has an operational side. We would want examples where cky reuses span solutions clearly helps, counterexamples where its assumptions break, an ablation that removes it, and a metric sensitive to the expected change. If removing it changes nothing, either the rest of the system learned a substitute or the evaluation never exercised the behavior. If it improves the average but harms a language, subgroup, input length, or rare class, the average is incomplete evidence. This is how we move from remembering a definition to making and defending a research claim.

Keep cky reuses span solutions separate from neural span parsers score constituents. They cooperate, but they answer different questions. Collapsing the two makes debugging impossible: an engineer sees only an incorrect output and cannot tell whether the representation was weak, the candidate set was incomplete, the scoring function preferred the wrong item, or the decoder violated a constraint. The chapter's larger lesson is to preserve these interfaces even when a neural model learns several stages jointly.

5. Neural span parsers score constituents

A contextual encoder represents boundaries; a model scores whether each span has a label and chooses a compatible tree. This reduces hand-designed grammar dependence while still producing explicit nested structure.

Build this idea from its contract. First name the observation available to the system; then name the representation that preserves the useful part of that observation; then identify the score, probability, constraint, or rule that distinguishes one candidate from another. Finally ask what output leaves this component and which later component is allowed to trust it. In context-free grammars and constituency parsing, these boundaries matter because a superficially correct final answer can be produced by the wrong evidence. A master's-level analysis therefore explains not just what the component returns, but what information it discards and which assumptions make the return value meaningful.

The idea also has an operational side. We would want examples where neural span parsers score constituents clearly helps, counterexamples where its assumptions break, an ablation that removes it, and a metric sensitive to the expected change. If removing it changes nothing, either the rest of the system learned a substitute or the evaluation never exercised the behavior. If it improves the average but harms a language, subgroup, input length, or rare class, the average is incomplete evidence. This is how we move from remembering a definition to making and defending a research claim.

Keep neural span parsers score constituents separate from constituents are reusable phrase units. They cooperate, but they answer different questions. Collapsing the two makes debugging impossible: an engineer sees only an incorrect output and cannot tell whether the representation was weak, the candidate set was incomplete, the scoring function preferred the wrong item, or the decoder violated a constraint. The chapter's larger lesson is to preserve these interfaces even when a neural model learns several stages jointly.

compressionThe chapter can be remembered as a chain: define the unit, preserve the relevant evidence, score alternatives under explicit assumptions, decode a legal result, then evaluate the behavior at the same grain as the real decision.

03 Derive the core mechanism carefully

Theory is useful when every symbol has an operational meaning. Do not memorize an equation before identifying what produces each term, which terms are observed, which are learned, and which approximation makes computation possible.

// the central relationshipCKY span recurrence
score[A,i,j] = maxₖ,B,C score[B,i,k]+score[C,k,j]+rule(A→BC)For each category A over span i:j, CKY tries every split k and compatible pair of child categories. Subspan results are reused, turning exponential tree enumeration into polynomial dynamic programming under a binarized grammar. Backpointers recover the tree, which is why the chart must store structure, not only the winning score.

Now derive the system around the relationship. Start with the smallest legal input and write down its shape or structure. Enumerate the candidate outputs. Calculate or reason through one score by hand. Check normalization or structural constraints. Then change one input feature and predict the direction of the output change before executing code. This procedure catches sign errors, leaked context, illegal transitions, and confused units far earlier than end-to-end benchmarking.

Next distinguish estimation from decision. A model may estimate probabilities, similarities, alignments, or scores. A decoder, threshold, search algorithm, or policy turns them into a discrete output. The best estimator under log loss may not produce the best operational decision under asymmetric costs. Conversely, a clever decoder can hide a weak model on one benchmark while failing when the candidate distribution changes.

Finally distinguish training objective from evaluation metric. We choose differentiable losses because gradient-based optimization needs them; we choose evaluation measures because people need evidence about behavior. The two should be related but need not be identical. When they diverge, state the reason and test whether improvement in the surrogate actually predicts improvement in the target behavior.

04 A worked story from input to evidence

Attaching “with the telescope”

In “I saw the scientist with the telescope,” the phrase may modify “saw” (I used the telescope) or “scientist” (the scientist had it). Both trees satisfy a basic grammar. CKY constructs both from shared subspans. A statistical or neural score uses lexical tendencies and broader context to rank them. The parser should preserve uncertainty when evidence is weak rather than presenting syntax as certain meaning.

Stage 1 — define the observation. Record what the system truly receives at decision time. Do not quietly add future text, a gold annotation, a clean transcript, a manually selected passage, or metadata unavailable in production. This stage protects the validity of everything after it.

Stage 2 — construct the representation. Choose units that preserve the distinctions the task needs while remaining learnable from available data. Document normalization, vocabulary, missing values, masking, and alignment. Save enough information to map predictions back to the original input.

Stage 3 — produce candidates and scores. The model turns evidence into alternatives. Inspect at least the winner, a plausible runner-up, and an obviously wrong candidate. Their score differences reveal whether the model has a robust preference or won by a tiny, unstable margin.

Stage 4 — apply constraints and policy. A legal sequence, supported citation, safe action, or valid structure may require rules beyond the learned score. This is also where uncertainty becomes an abstention, clarification, escalation, or request for more evidence rather than a forced guess.

Stage 5 — evaluate at several levels. Component metrics localize faults; end-to-end metrics measure user-visible behavior. Use both. A correct final result can conceal a broken intermediate stage, and a strong component can be neutralized by a bad downstream policy.

Stage 6 — perform error analysis. Group failures by mechanism instead of collecting anecdotes. Look for length, frequency, language, subgroup, domain, noise, ambiguity, and annotation effects. A model improvement becomes scientifically convincing when it fixes the predicted category without creating an unreported regression elsewhere.

05 What usually goes wrong

The following traps are not footnotes. They are common ways a technically correct implementation produces a misleading research conclusion or unsafe product behavior.

common catches & gotchas

  • Treating one treebank convention as the only correct syntax. The visible symptom is a result that may look plausible on ordinary examples while failing when this assumption is stressed. The likely cause is that training or evaluation rewarded a shortcut. Correct it by adding a targeted counterexample, measuring this failure separately, and tracing the decision back to its source evidence before changing model size.
  • Converting to normal form and forgetting to map output back to original labels. The visible symptom is a result that may look plausible on ordinary examples while failing when this assumption is stressed. The likely cause is that training or evaluation rewarded a shortcut. Correct it by adding a targeted counterexample, measuring this failure separately, and tracing the decision back to its source evidence before changing model size.
  • Ignoring unknown words or grammar coverage failures. The visible symptom is a result that may look plausible on ordinary examples while failing when this assumption is stressed. The likely cause is that training or evaluation rewarded a shortcut. Correct it by adding a targeted counterexample, measuring this failure separately, and tracing the decision back to its source evidence before changing model size.
  • Using sentence-level exact match as the only diagnostic. The visible symptom is a result that may look plausible on ordinary examples while failing when this assumption is stressed. The likely cause is that training or evaluation rewarded a shortcut. Correct it by adding a targeted counterexample, measuring this failure separately, and tracing the decision back to its source evidence before changing model size.
  • Assuming a high parse F1 guarantees correct downstream meaning. The visible symptom is a result that may look plausible on ordinary examples while failing when this assumption is stressed. The likely cause is that training or evaluation rewarded a shortcut. Correct it by adding a targeted counterexample, measuring this failure separately, and tracing the decision back to its source evidence before changing model size.

Notice the shared pattern. Each failure collapses two levels that should remain separate: fluent versus factual, score versus decision, token versus word, correlation versus cause, training distribution versus deployment population, or average quality versus unequal impact. The repair is to restore the missing boundary and measure it directly.

06 Evaluation for a master's-level study

A publishable evaluation begins with a claim table. For every claim, list the dataset slice, metric, baseline, ablation, uncertainty estimate, and known confounder. If the claim is “method A represents long context better,” a single overall accuracy score is insufficient. We need performance by length, a matched-compute baseline, a test that truly requires distant evidence, and an ablation showing the responsible component.

Intrinsic evidence

Does the component optimize or predict what it was designed to model? Useful for fast iteration, but not a substitute for task success.

Extrinsic evidence

Does the representation or model improve a downstream task under a controlled comparison?

Behavioral evidence

Do targeted minimal pairs and adversarial cases show the expected capability rather than a shortcut?

Operational evidence

Are latency, memory, cost, calibration, safety, and subgroup behavior acceptable in the intended environment?

Use a development set for model and threshold choices, then touch the final test set only after the design is fixed. Report variance across seeds when training instability is material. Use grouped or temporal splits when examples share authors, speakers, templates, or evolving events. Deduplicate before splitting. Document preprocessing and evaluate the exact exported pipeline, not an ideal notebook version.

Error analysis should be quantitative enough to change a decision. Sample errors from defined buckets, have more than one reviewer when judgment is subjective, and record disagreement. A confusion matrix, retrieval audit, alignment backtrace, span-boundary table, or per-condition curve is often more actionable than another aggregate benchmark.

07 Study lab: turn the chapter into evidence

These exercises are designed as small research loops. Completing them produces artifacts you can inspect—a derivation, implementation, controlled comparison, and error taxonomy—rather than a vague feeling of familiarity.

01 · Draw two trees for an attachment ambiguity.

Write the hypothesis before running the exercise. Record the input, expected behavior, metric, and one failure case. Afterward, explain whether the evidence supports the hypothesis and what alternative explanation remains.

02 · Convert a small CFG into Chomsky Normal Form.

Write the hypothesis before running the exercise. Record the input, expected behavior, metric, and one failure case. Afterward, explain whether the evidence supports the hypothesis and what alternative explanation remains.

03 · Fill a CKY chart by hand for a short sentence.

Write the hypothesis before running the exercise. Record the input, expected behavior, metric, and one failure case. Afterward, explain whether the evidence supports the hypothesis and what alternative explanation remains.

04 · Compute labeled span precision, recall, and F1.

Write the hypothesis before running the exercise. Record the input, expected behavior, metric, and one failure case. Afterward, explain whether the evidence supports the hypothesis and what alternative explanation remains.

05 · Compare parser errors by phrase type and sentence length.

Write the hypothesis before running the exercise. Record the input, expected behavior, metric, and one failure case. Afterward, explain whether the evidence supports the hypothesis and what alternative explanation remains.

For an assignment or dissertation notebook, keep a short experiment ledger. Include the question, exact data snapshot, preprocessing hash, model and decoding configuration, random seed, hardware, metric implementation, result, and interpretation. Separate the number you observed from the explanation you infer. That distinction is one of the most valuable habits a master's program can teach.

08 Oral-exam questions

What is a constituent?

A sequence of words treated as a unit in a particular syntactic analysis, commonly represented as a labeled tree span. A strong answer should also state the boundary: which data, task, and assumptions make the claim true, and what observation would cause us to revise it.

Why does CKY need normal form?

Binary rules let each span be formed by combining exactly two smaller spans at a split point, simplifying the recurrence. A strong answer should also state the boundary: which data, task, and assumptions make the claim true, and what observation would cause us to revise it.

Do transformers already know syntax?

They encode useful syntactic patterns, but an explicit parser is still valuable when a task needs inspectable, constrained tree structure. A strong answer should also state the boundary: which data, task, and assumptions make the claim true, and what observation would cause us to revise it.

09 Complete chapter summary

Constituency parsing groups words into nested phrases such as noun phrases and verb phrases. A context-free grammar defines how categories expand into sequences of categories or words. The same sentence can support several parse trees, so parsing searches a large structured space. Treebanks provide annotated examples. CKY parsing uses dynamic programming over spans, usually after converting a grammar to Chomsky Normal Form. Modern neural parsers score spans and labels directly, but the core questions remain: which word groups form units, how are they nested, and how should ambiguous analyses be evaluated?

The deeper story is the boundary between a model and a trustworthy language system. Constituents, context-free grammars, treebanks, ambiguity, normal forms, CKY dynamic programming, neural span parsing, and evaluation. Each topic contributes one part of a larger reasoning chain. Representations determine what distinctions are even available. Objectives determine which behavior training rewards. Inference converts scores into a constrained output. Evaluation determines which claim survives contact with held-out evidence. Data connects all four and can quietly invalidate all four through leakage, poor coverage, inconsistent annotation, or historical bias.

  • Constituency represents nested phrase structure.
  • CFGs generate recursive candidate trees.
  • Ambiguity requires scoring, not only rule matching.
  • CKY makes exhaustive structured search tractable.
  • Parse metrics evaluate spans under a chosen annotation scheme.

Do not leave the chapter with only names of architectures or metrics. Leave with a method: define the task at the grain of the real decision; trace one example from raw input to final output; derive the central computation; preserve uncertainty and provenance; compare against a simple baseline; ablate the claimed contribution; inspect failures by mechanism; and state exactly where the evidence stops. That method will remain useful when today’s architecture is replaced.

copyright and scopeThis is an independent educational companion, not a replacement for the authors' text. It summarizes the chapter's subject in original language and adds new examples, study prompts, and engineering interpretation. For formal definitions, figures, citations, exercises, and the authors' precise treatment, read the official January 6, 2026 source.
← Chapter 17next: Chapter 19 →
© cvam — written in plaintext, served warm