Part of Speech Tagger
Paste any English sentence and label every word — noun, verb, adjective, adverb and more. The tagger colour-codes your text, counts each part of speech, and runs entirely in your browser, so nothing you type is uploaded. Free, no signup, sources cited below.
How it works
A part-of-speech tagger assigns each word a grammatical category. This tool is deterministic lexical classification — not a probabilistic API call — so the same sentence always produces the same tags, and every example on this page reproduces exactly against the engine you are using.
- Tokenise.The text is split into tokens — words, numbers and punctuation — using standard English word-boundary rules. Contractions split the way linguists expect (“don't” → “do” + “n't”) and hyphenated compounds stay together.
- Tag. Each token is assigned one of the 17 Universal POS (UPOS) tags by a lexicon-and-rule engine bundled in your browser. There is no temperature and no sampling, which is why the output is reproducible and can be hand-verified.
- Label. Each UPOS code is mapped to a friendly name and a definition taken from the Universal Dependencies tagset —
ADP→ “Adposition (preposition/postposition)”,PROPN→ “Proper noun”. - Optional fine-grained view. Turning on fine-grained tags adds the Penn Treebank code (NN/NNS, VB/VBD/VBG/VBZ, JJ/JJR/JJS). Because the engine emits UPOS only, the Penn tag is derived from the word's form — plural nouns from the lemma, verb tense from the ending — and is a best-effort approximation rather than a second trained model.
- Aggregate.The distribution counts each tag in a single pass. Each tag's share is
count / totalover the counted tokens, rounded to one decimal. With “group punctuation” on, punctuation and symbols are left out of both the table and the percentage base.
As an independent check, the tool re-tags a curated list of unambiguous function words — “the”, “and”, “of”, personal pronouns — from a small reference lexicon and reports how many matched the engine. This is a second method that should always agree with the first, the same idea as a calculator cross-checking a total two different ways. Everything runs client-side over WebAssembly and JavaScript; no text is transmitted.
Worked examples
Frequently asked questions
Sources & references
- Universal Dependencies — Universal POS tags (the 17-tag UPOS set and definitions)
- Penn Treebank POS tagset — Marcus, Santorini & Marcinkiewicz (1993)
- wink-nlp — the open-source (MIT) engine that runs the tagging in your browser
The tagset labels, definitions and engine behaviour on this page were last cross-checked against these sources on 2026-07-11. The two worked examples reproduce exactly against the shipped engine.
Related tools
Comments & feedback
Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a mis-tag, edge case, or want to suggest an improvement?
Email me at [email protected] — most fixes ship within 24 hours.