Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Use fast UDPipe models directly in spaCy

Project description

spaCy + UDPipe

This package wraps the fast and efficient UDPipe language-agnostic NLP pipeline (via its Python bindings), so you can use UDPipe pre-trained models as a spaCy pipeline for 50+ languages out-of-the-box. Inspired by spacy-stanfordnlp, this package offers slightly less accurate models that are in turn much faster (see benchmarks for UDPipe and StanfordNLP).


Use the package manager pip to install spacy-udpipe.

pip install spacy-udpipe

After installation, use to download the pre-trained model for the desired language.


The loaded UDPipeLanguage class returns a spaCy Language object, i.e., the nlp object you can use to process text and create a Doc object.

import spacy_udpipe"en") # download English model

text = "Wikipedia is a free online encyclopedia, created and edited by volunteers around the world."
nlp = spacy_udpipe.load("en")

doc = nlp(text)
for token in doc:
    print(token.text, token.lemma_, token.pos_, token.dep_)

As all attributes are computed once and set in the custom Tokenizer, the nlp.pipeline is empty.

Authors and acknowledgment

Created by Antonio Šajatović during an internship at Text Analysis and Knowledge Engineering Lab (TakeLab).


Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

To start the tests, just run pytest in the root source directory.


MIT © TakeLab

Project status

Maintained by Text Analysis and Knowledge Engineering Lab (TakeLab).


  • All available pre-trained models are licensed under CC BY-NC-SA 4.0.

  • All annotations match with Spacy's, except for token.tag_, which map from CoNLL XPOS tag (language-specific part-of-speech tag), defined for each language separately by the corresponding Universal Dependencies treebank.

  • Full list of supported languages and models is available in languages.json.

  • This package exposes a spacy_languages entry point in its so full suport for serialization is enabled:

    nlp = spacy_udpipe.load("en")

    To properly load a saved model, you must pass the udpipe_model argument when loading it:

    udpipe_model = spacy_udpipe.UDPipeModel("en")
    nlp = spacy.load("./udpipe-spacy-model", udpipe_model=udpipe_model)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for spacy-udpipe, version 0.0.4
Filename, size File type Python version Upload date Hashes
Filename, size spacy_udpipe-0.0.4-py3-none-any.whl (11.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size spacy-udpipe-0.0.4.tar.gz (11.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page