spaCy

by Explosion

spaCy is an open-source Python library for industrial NLP, offering tokenization, named entity recognition, POS tagging and dependency parsing for 75+ languages.

framework-libraryopen-sourcepythonfree-tierself-hosted

At a Glance

Type

Frameworks and libraries

Pricing

FreeFree and open source (MIT licence); Explosion separately sells Prodigy annotation software and NLP consulting.

Best For

Adding production NLP (tokenization, NER, POS tagging, dependency parsing) to a Python application without training models from scratch

Platforms

Python, CLI, Linux, macOS, Windows

Models

CNN-based tok2vec (default pipelines: en_core_web_sm/md/lg), RoBERTa-base (en_core_web_trf, via spacy-transformers), Other Hugging Face transformer models, e.g. BERT, usable as alternatives via spacy-transformers

Founded

2016

Headquarters

Berlin, Germany

Free Tier

Available

Licence

Open Source

Key Features

Pros & Cons

Strengths

  • MIT-licensed and free to install with no account, waitlist or usage cap
  • Runs on Linux, macOS and Windows via a single pip install
  • Pre-trained pipelines cover 25 languages, reducing setup time for common NLP tasks

Limitations

  • Trained pipelines only cover 25 languages, though tokenization support extends to 75+
  • GPU acceleration depends on CuPy and specific CUDA versions, adding setup complexity
  • Building an accurate custom pipeline still requires labelled training data and ML knowledge

Integrations

PyTorchTensorFlowThincspacy-transformersCuPy

What it is

spaCy is an open-source Python library for natural language processing, built by Explosion. It provides tokenization, part-of-speech tagging, dependency parsing, named entity recognition, entity linking and text classification through pre-trained "pipelines" you load and run in a few lines of code.

Interface and dependencies

You install it with pip install spacy (or via conda-forge), then download a language pipeline such as en_core_web_sm. It requires 64-bit CPython 3.7+ and runs on Linux, macOS and Windows. spaCy is built on Explosion's own Thinc machine-learning library, and can integrate transformer models (via spacy-transformers) and PyTorch or TensorFlow for custom components. GPU acceleration is available through CuPy for CUDA 8.0–12.x.

A real use

A developer building a document-processing pipeline can load en_core_web_sm, run nlp(text) to get a tokenized Doc object, then pull out entities (doc.ents), noun chunks or dependency trees for downstream tasks like information extraction or building a custom text classifier, without training a model from scratch.

Where it fits

spaCy targets production NLP pipelines rather than research experimentation (that gap is filled by libraries like Hugging Face Transformers, which spaCy can wrap). It ships trained pipelines for 25 languages and tokenization support for 75+, per its own site. Explosion, the company behind it, also sells the Prodigy annotation tool and custom NLP consulting, but spaCy itself is free and MIT-licensed with no account or usage limits.

Limits

Training custom pipelines to a high standard still requires labelled data and some ML familiarity; out-of-the-box accuracy depends on the pipeline size chosen (small vs. large trained pipelines trade speed for accuracy).

Frequently Asked Questions

Is spaCy free to use?
Yes. spaCy is open source under the MIT licence, installed via pip with no account or usage limits; Explosion sells separate paid tools like Prodigy and consulting.
Does spaCy require a GPU?
No. It runs on CPU by default; GPU acceleration via CuPy is optional and supports CUDA 8.0 to 12.x, per the spaCy usage docs.

Last updated on