conllu
CoNLL-U Parser parses a CoNLL-U formatted string into a nested python dictionary
Decision gist · record as of 2026-08-14
Yes. Zero dependencies, active maintenance, no known vulnerabilities, and MIT licensing make it a safe, lightweight choice. Install it if you work with CoNLL-U data from NLP tools or linguistic corpora. The only gotcha is the Python 3.8+ requirement; if you're on an older version, pin to conllu==4.5.3 or earlier.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; CoNLL-U input must follow the Universal Dependencies format specification.
- Low friction: no runtime dependencies, pure Python wheel, actively maintained with last commit 2026-08-05.
- Requires Python 3.8 or later.
License · maintenance · safety
(unclear) — MIT license permits unrestricted use, modification, and distribution with attribution; no restrictions on commercial or proprietary use.
last release 2024-10-13 (670 days) · last repo commit 2026-08-05 · 322 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 405,897 downloads/mo, #6,898 on PyPI
Alternatives
Verify before relying
from conllu import parse
data = """# text = Example
1\tThe\tthe\tDET\tDT\t_\t2\tdet\t_\t_
2\tdog\tdog\tNOUN\tNN\t_\t0\troot\t_\t_
"""
sentences = parse(data)
print(sentences[0][0]['form']) # 'The'- Whether the package handles malformed or incomplete CoNLL-U input gracefully or raises exceptions.
- Performance characteristics for very large files beyond the mentioned 'over a megabyte' threshold.
- Whether full type support includes runtime type checking or only static type hints for editors.
What it is and what it does
conllu is a lightweight parser that converts CoNLL-U formatted text—a standard annotation format used in natural language processing and linguistic research—into Python data structures. CoNLL-U is the output format of many NLP pipelines and dependency parsers, encoding tokens with their linguistic properties (part-of-speech tags, lemmas, morphological features, syntactic dependencies). The parser converts this text into nested dictionaries and TokenList objects that you can query, filter, and manipulate programmatically.
The package has zero runtime dependencies and is designed for simplicity: it's about 300 lines of code with full type hints for IDE autocompletion. It supports both one-shot parsing of entire files and incremental parsing via generators for memory efficiency on large datasets. You can filter tokens by field values (including nested features), modify parsed structures, and serialize them back to CoNLL-U format.
Use it for
- Parse output from dependency parsers (like spaCy or UDPipe) to extract and analyze syntactic relationships in text.
- Filter linguistic annotations by part-of-speech, morphological features, or dependency relations for corpus analysis.
- Modify or augment CoNLL-U annotations programmatically and write the results back to file.
- Process large annotated corpora incrementally without loading entire files into memory.
- Build NLP pipelines that consume Universal Dependencies formatted data as intermediate representations.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Zero dependencies, active maintenance, no known vulnerabilities, and MIT licensing make it a safe, lightweight choice. Install it if you work with CoNLL-U data from NLP tools or linguistic corpora. The only gotcha is the Python 3.8+ requirement; if you're on an older version, pin to conllu==4.5.3 or earlier.
Install
conllu on PyPI
Before you install
Low friction: no runtime dependencies, pure Python wheel, actively maintained with last commit 2026-08-05. Requires Python 3.8 or later.
Requires Python 3.8 or later; CoNLL-U input must follow the Universal Dependencies format specification.
License in practice
MIT license permits unrestricted use, modification, and distribution with attribution; no restrictions on commercial or proprietary use.
Quickstart
from conllu import parse
data = """# text = Example
1\tThe\tthe\tDET\tDT\t_\t2\tdet\t_\t_
2\tdog\tdog\tNOUN\tNN\t_\t0\troot\t_\t_
"""
sentences = parse(data)
print(sentences[0][0]['form']) # 'The'
Verify before relying
- Whether the package handles malformed or incomplete CoNLL-U input gracefully or raises exceptions.
- Performance characteristics for very large files beyond the mentioned 'over a megabyte' threshold.
- Whether full type support includes runtime type checking or only static type hints for editors.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 670 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 405,897 / month, #6,898 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: conllu-6.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “conll-u parser”
- conlluParses CoNLL-U formatted text (a standard NLP annotation format) into…
- udapiUdapi is a Python framework for reading, processing, and manipulating…
- udtoolsValidates CoNLL-U format files against Universal Dependencies…
Give your agent the search over MCP, or paste the wish link into any chat.
More Linguistic packages
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
tiktoken is a fast BPE tokenizer that converts text into token sequences compatible with OpenAI models, supporting multiple encoding schemes including o200k_base and model-specific encodings.
Install it if you work with OpenAI APIs or need to understand token boundaries in GPT-family models.
Detects character encoding and language in byte sequences with high accuracy, supporting 99 encodings and returning confidence scores, language tags, and MIME types.
Install it if you need to detect character encoding or language in byte data; the rewrite makes it substantially faster and more accurate than its predecessors.
Converts Unicode text to ASCII by transliterating non-ASCII characters into their closest ASCII equivalents, with no runtime dependencies.
However, if transliteration quality or ongoing maintenance matters, consider unidecode instead despite its GPL-only license.
Lark is a parsing library that builds abstract syntax trees from context-free grammars, supporting multiple parsing algorithms (Earley, LALR(1), CYK) with automatic line and column tracking.
Python bindings to the tree-sitter parsing library, enabling incremental parsing and syntax tree analysis for source code.
See also ginza · spanishconjugator · polyglot · udapi · udtools · wordninja · tokenizer · gruut · segtok · hassil