Chunking › Chunk Types

Michael BrenndoerferUpdated March 21, 20265 min read
Language AI HandbookAll chapters
Part 6 of 67Sequence Labeling
Chapter 39Chunking › Chunk Types
Reading section 3 of 15 · Chunk Types · 5 minSection 3 of 15 · 5 min

Book contents

Section 3 of 15 · 5 min read

Chunking › Chunk TypesOne section · Sections in this chapter3 / 15 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

Different chunk types capture different syntactic units. The most common types in English are noun phrases, verb phrases, and prepositional phrases, though annotation schemes vary and some include additional categories.

Noun Phrases (NP)

Noun phrases are the most important and well-studied chunk type. A noun phrase has a noun as its head, typically preceded by a determiner and optional adjectives. NP chunking is sometimes called "base NP chunking" when it targets only the innermost, non-recursive noun phrases, which is the most common definition in NLP benchmarks.

The structure of a noun phrase follows regular grammatical patterns. A determiner (the, a, my) often opens the phrase, adjectives modify the head noun, and the head noun itself can be singular, plural, or proper. Understanding these patterns is key to building effective chunkers.

In[6]:
Code
# Examples of noun phrases with varying internal structure
np_examples = [
    ("the cat", "simple: determiner + noun"),
    ("a big red ball", "adjectives: det + adj + adj + noun"),
    ("President Obama", "proper: title + name"),
    ("three blind mice", "numeral: number + adj + noun"),
    ("my favorite book", "possessive: possessive pronoun + adj + noun"),
]

# Common POS patterns that form noun phrases
np_pos_patterns = [
    "DT NN",  # the cat
    "DT JJ NN",  # the black cat
    "DT JJ JJ NN",  # the big black cat
    "NNP NNP",  # Barack Obama
    "CD NN",  # three cats
    "PRP$ NN",  # my cat
    "JJ NN",  # black cat (no determiner)
    "NN NN",  # computer screen (compound noun)
]
Out[7]:
Console
Noun Phrase Examples
=======================================================

  'the cat'
    POS tags: DT NN
    Pattern:  simple: determiner + noun

  'a big red ball'
    POS tags: DT JJ JJ NN
    Pattern:  adjectives: det + adj + adj + noun

  'President Obama'
    POS tags: NNP NNP
    Pattern:  proper: title + name

  'three blind mice'
    POS tags: CD IN NNS
    Pattern:  numeral: number + adj + noun

  'my favorite book'
    POS tags: PRP$ JJ NN
    Pattern:  possessive: possessive pronoun + adj + noun


Common NP POS Patterns:
-----------------------------------
  DT NN
  DT JJ NN
  DT JJ JJ NN
  NNP NNP
  CD NN
  PRP$ NN
  JJ NN
  NN NN

The range of NP patterns is broad, but most follow a recognizable template: optional modifier elements followed by a noun head. Regex chunkers exploit this regularity by specifying patterns over POS tags rather than over word forms.

Verb Phrases (VP)

Verb phrases contain the main verb and its auxiliaries. In shallow chunking, VP chunks typically include only the verbal elements themselves, not the objects or complements that would be included in a full verb phrase under traditional grammar.

The main source of variation in VPs is auxiliary verbs. Modals (can, will, should), perfect auxiliaries (have), and progressive auxiliaries (be) combine with main verbs to produce complex tense and aspect patterns. A chunker needs to group all these together.

In[8]:
Code
# Examples of verb phrases at different tense/aspect combinations
vp_examples = [
    ("runs", "simple present"),
    ("is running", "progressive: auxiliary + main verb"),
    ("has been running", "perfect progressive: 2 auxiliaries + main"),
    ("can swim", "modal + base form"),
    ("should have called", "modal + perfect auxiliary + past participle"),
    ("was eaten", "passive: auxiliary + past participle"),
]

# POS patterns for verb phrase chunks
vp_pos_patterns = [
    "VBZ",  # runs
    "VBD",  # ran
    "VBG",  # running (bare progressive, less common as VP)
    "MD VB",  # can run
    "VBZ VBG",  # is running
    "VBZ VBN",  # is eaten (passive)
    "MD VB VBN",  # will be eaten
    "VBZ VBN VBN",  # has been eaten (perfect passive)
]
Out[9]:
Console
Verb Phrase Examples
=======================================================

  'runs'
    POS tags: NNS
    Type:     simple present

  'is running'
    POS tags: VBZ VBG
    Type:     progressive: auxiliary + main verb

  'has been running'
    POS tags: VBZ VBN VBG
    Type:     perfect progressive: 2 auxiliaries + main

  'can swim'
    POS tags: MD VB
    Type:     modal + base form

  'should have called'
    POS tags: MD VB VBN
    Type:     modal + perfect auxiliary + past participle

  'was eaten'
    POS tags: VBD VBN
    Type:     passive: auxiliary + past participle

Prepositional Phrases (PP)

Prepositional phrases begin with a preposition and typically continue with a noun phrase. Different chunking schemes handle PPs differently. Some schemes identify only the preposition as the PP chunk, leaving the following NP separate. Others group the preposition together with its complement NP into a single PP chunk.

The choice matters for downstream applications. If you want to identify "in the house" as a single location expression, you want the inclusive scheme. If you want to identify "the house" as a noun phrase for keyword extraction, the separate scheme works better.

In[10]:
Code
# Examples of prepositional phrases
pp_examples = [
    ("in the house", "location"),
    ("with great care", "manner"),
    ("after the meeting", "time"),
    ("under the old oak tree", "complex location with adjective"),
    ("for my best friend", "beneficiary with possessive NP"),
    ("because of the rain", "causal (complex preposition)"),
]
Out[11]:
Console
Prepositional Phrase Examples
=======================================================

  'in the house'
    POS tags: IN DT NN
    Function: location

  'with great care'
    POS tags: IN JJ NN
    Function: manner

  'after the meeting'
    POS tags: IN DT NN
    Function: time

  'under the old oak tree'
    POS tags: IN DT JJ NN NN
    Function: complex location with adjective

  'for my best friend'
    POS tags: IN PRP$ JJS NN
    Function: beneficiary with possessive NP

  'because of the rain'
    POS tags: IN IN DT NN
    Function: causal (complex preposition)

Other Chunk Types

Depending on the annotation scheme, chunkers may identify additional phrase types beyond the three main categories:

In[12]:
Code
other_chunk_types = {
    "ADJP": (
        "Adjective phrase",
        "very happy, quite tired, extremely well-read",
    ),
    "ADVP": ("Adverb phrase", "very quickly, rather slowly, almost never"),
    "SBAR": (
        "Subordinate clause",
        "that he left, if it rains, although she tried",
    ),
    "PRT": ("Particle", "give up, turn on, look after"),
    "CONJP": ("Conjunction phrase", "as well as, rather than, not only"),
    "INTJ": ("Interjection", "oh, wow, alas"),
}
Out[13]:
Console
Additional Chunk Types
=================================================================

  ADJP: Adjective phrase
    Examples: very happy, quite tired, extremely well-read

  ADVP: Adverb phrase
    Examples: very quickly, rather slowly, almost never

  SBAR: Subordinate clause
    Examples: that he left, if it rains, although she tried

  PRT: Particle
    Examples: give up, turn on, look after

  CONJP: Conjunction phrase
    Examples: as well as, rather than, not only

  INTJ: Interjection
    Examples: oh, wow, alas

The Penn Treebank annotation scheme, which the CoNLL-2000 shared task uses, includes all of these types. In practice, NP chunking alone covers the majority of applications, and many systems focus exclusively on noun phrases.