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).