Part-of-Speech Tagging › Tag Sets

Michael BrenndoerferApril 16, 20256 min read
Language AI HandbookAll chapters
Part 6 of 67Sequence Labeling
Chapter 36Part-of-Speech Tagging › Tag Sets
Reading section 3 of 18 · Tag Sets · 6 minSection 3 of 18 · 6 min

Book contents

Section 3 of 18 · 6 min read

Part-of-Speech Tagging › Tag SetsOne section · Sections in this chapter3 / 18 ↓
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

A tag set defines the inventory of labels a tagger assigns. The choice of tag set involves a fundamental tradeoff: more tags allow finer-grained distinctions that benefit some downstream tasks, but require more annotated data to learn reliably and are harder to assign consistently.

The Penn Treebank Tag Set

The Penn Treebank (PTB) tag set, developed at the University of Pennsylvania as part of the Penn Treebank project in the early 1990s, became the standard for English NLP. It contains 36 POS tags plus 12 punctuation and symbol tags.

In[3]:
Code
# Penn Treebank tag set - core POS categories
penn_tags = {
    # Nouns
    "NN": "Noun, singular or mass",
    "NNS": "Noun, plural",
    "NNP": "Proper noun, singular",
    "NNPS": "Proper noun, plural",
    # Verbs
    "VB": "Verb, base form",
    "VBD": "Verb, past tense",
    "VBG": "Verb, gerund or present participle",
    "VBN": "Verb, past participle",
    "VBP": "Verb, non-3rd person singular present",
    "VBZ": "Verb, 3rd person singular present",
    "MD": "Modal auxiliary",
    # Adjectives
    "JJ": "Adjective",
    "JJR": "Adjective, comparative",
    "JJS": "Adjective, superlative",
    # Adverbs
    "RB": "Adverb",
    "RBR": "Adverb, comparative",
    "RBS": "Adverb, superlative",
    # Pronouns and determiners
    "PRP": "Personal pronoun",
    "PRP$": "Possessive pronoun",
    "WP": "Wh-pronoun",
    "WP$": "Possessive wh-pronoun",
    "DT": "Determiner",
    "PDT": "Predeterminer",
    "WDT": "Wh-determiner",
    # Prepositions and conjunctions
    "IN": "Preposition or subordinating conjunction",
    "CC": "Coordinating conjunction",
    "TO": "to (infinitive marker)",
    "RP": "Particle",
    # Other
    "CD": "Cardinal number",
    "EX": "Existential there",
    "FW": "Foreign word",
    "POS": "Possessive ending",
    "UH": "Interjection",
    "SYM": "Symbol",
}
Out[4]:
Console
Penn Treebank Tag Set
==================================================

Nouns:
  NN      Noun, singular or mass
  NNS     Noun, plural
  NNP     Proper noun, singular
  NNPS    Proper noun, plural

Verbs:
  VB      Verb, base form
  VBD     Verb, past tense
  VBG     Verb, gerund or present participle
  VBN     Verb, past participle
  VBP     Verb, non-3rd person singular present
  VBZ     Verb, 3rd person singular present
  MD      Modal auxiliary

Adjectives:
  JJ      Adjective
  JJR     Adjective, comparative
  JJS     Adjective, superlative

Adverbs:
  RB      Adverb
  RBR     Adverb, comparative
  RBS     Adverb, superlative

Pronouns:
  PRP     Personal pronoun
  PRP$    Possessive pronoun
  WP      Wh-pronoun
  WP$     Possessive wh-pronoun

Determiners:
  DT      Determiner
  PDT     Predeterminer
  WDT     Wh-determiner

Other:
  IN      Preposition or subordinating conjunction
  CC      Coordinating conjunction
  TO      to (infinitive marker)
  RP      Particle
  CD      Cardinal number
  EX      Existential there
  FW      Foreign word
  POS     Possessive ending
  UH      Interjection
  SYM     Symbol

The fine-grained verb distinctions matter considerably in practice. Knowing that "barked" is VBD (past tense) versus "barking" is VBG (gerund/participle) tells a parser whether to attach it as the main verb or as a modifier. The six verb tags capture the full English verbal paradigm and allow downstream systems to reason about tense and aspect.

The Penn Treebank tag set was built around the Wall Street Journal corpus and reflects the characteristics of formal written English. This origin has consequences: the tag set handles financial text well but struggles with informal registers, social media text, and domain-specific terminology.

One design decision in the PTB tag set deserves particular attention: the treatment of "IN" as a single tag covering both prepositions and subordinating conjunctions. This conflation is linguistically controversial. "After dinner" uses "after" as a preposition governing a noun phrase, while "after she left" uses "after" as a subordinating conjunction introducing a clause. These are syntactically distinct, but they were collapsed into a single tag because reliable disambiguation requires the kind of deep syntactic analysis the tag set was meant to enable in the first place. This circular dependency is a recurring theme in annotation design: the tags you want to assign depend on information that the tags are supposed to provide.

The Universal Dependencies Tag Set

The PTB tag set is designed for English, and extending it to other languages is problematic. German uses case inflections that English lacks. Mandarin Chinese has no morphological inflection at all. Arabic has a complex system of verb derivations. The Universal Dependencies (UD) project introduced a cross-linguistic tag set with 17 UPOS tags designed to apply consistently across languages.

In[5]:
Code
# Universal Dependencies UPOS tag set
universal_tags = {
    "ADJ": "Adjective",
    "ADP": "Adposition (pre- or postposition)",
    "ADV": "Adverb",
    "AUX": "Auxiliary verb",
    "CCONJ": "Coordinating conjunction",
    "DET": "Determiner",
    "INTJ": "Interjection",
    "NOUN": "Common noun",
    "NUM": "Numeral",
    "PART": "Particle",
    "PRON": "Pronoun",
    "PROPN": "Proper noun",
    "PUNCT": "Punctuation",
    "SCONJ": "Subordinating conjunction",
    "SYM": "Symbol",
    "VERB": "Verb",
    "X": "Other (unclassifiable)",
}
Out[6]:
Console
Universal Dependencies UPOS Tag Set
==================================================
  ADJ      Adjective
  ADP      Adposition (pre- or postposition)
  ADV      Adverb
  AUX      Auxiliary verb
  CCONJ    Coordinating conjunction
  DET      Determiner
  INTJ     Interjection
  NOUN     Common noun
  NUM      Numeral
  PART     Particle
  PRON     Pronoun
  PROPN    Proper noun
  PUNCT    Punctuation
  SCONJ    Subordinating conjunction
  SYM      Symbol
  VERB     Verb
  X        Other (unclassifiable)

Total: 17 tags (vs 36+ in Penn Treebank)

The 17-tag set achieves cross-linguistic applicability by collapsing distinctions that are English-specific. All six English verb inflection tags (VB, VBD, VBG, VBN, VBP, VBZ) merge into VERB. The key insight is that morphological distinctions like tense can be captured through additional morphological annotation layers (called morphological features in UD) rather than proliferating the POS tag set itself.

The UD project has annotated over 200 treebanks across more than 100 languages using this framework, making it the largest cross-linguistic POS resource available.

The UD tag set also makes principled decisions about categories that vary typologically. The AUX (auxiliary) tag separates auxiliary verbs from main verbs, a distinction that matters in many languages. ADP covers both prepositions (as in English) and postpositions (as in Japanese, Turkish, and many other languages), recognizing that the functional role is the same regardless of word order. The PART tag handles particles that do not fit elsewhere, like the English infinitive marker "to" in its verbal use, or the negative particle in languages that express negation with a separate uninflected word.

Choosing a Tag Set

The right tag set depends on your application. Here is how to think about it:

  • Use Penn Treebank tags when working on English NLP with existing tools like NLTK or spaCy in English mode, or when downstream tasks (like parsing) benefit from fine-grained distinctions
  • Use Universal Dependencies tags when building multilingual systems, working with non-English languages, or when compatibility across language resources matters more than granularity
  • Use custom tags only when your domain has structures neither system handles well (e.g., specialized clinical or legal notation)

Most production systems today use one of these two standards. The Penn Treebank standard dominates English-only pipelines; Universal Dependencies dominates multilingual ones.

The question of granularity is worth thinking about carefully. Finer tag sets can express more information, but they are harder to learn reliably because each individual tag sees fewer training examples. A tag set with 100 labels means that each label appears, on average, in only 1% of tokens. Rare labels may have so few training examples that the model cannot learn their distributional patterns at all. The Penn Treebank's 36 tags strike a balance that proved empirically useful: fine enough to serve syntactic parsers, coarse enough to learn with moderate-sized corpora.