Master spaCy with our step-by-step tutorial, detailed feature walkthrough, and expert tips.
Explore the key features that make spaCy powerful for natural language processing workflows.
Yes, spaCy is completely free and released under the MIT license, which permits unrestricted commercial use, modification, and distribution. There are no API fees, usage limits, or enterprise licensing tiers â companies of any size can use spaCy in production without paying Explosion (the company that maintains it). Explosion monetizes through paid custom pipeline development services and its commercial annotation tool Prodigy, but the core spaCy library remains fully open-source. This makes it a significantly cheaper option than cloud-based NLP APIs that charge per request or character processed.
spaCy and NLTK serve different audiences: NLTK is an academic and educational toolkit with extensive teaching materials and algorithm implementations, while spaCy is built specifically for production applications and large-scale processing. spaCy is dramatically faster because it's written in Cython rather than pure Python, and it provides pre-trained statistical models ready for use out of the box. NLTK requires more manual setup and is often slower on real-world workloads, but offers more flexibility for researching and implementing classical NLP algorithms. For building NLP features into a product, spaCy is almost always the better choice; for learning NLP theory or experimenting, NLTK remains popular.
Yes, spaCy offers a dedicated package called spacy-llm that integrates Large Language Models into structured NLP pipelines. This package provides a modular system for fast prototyping and prompting, allowing you to use LLMs like OpenAI's GPT models, Anthropic's Claude, or open-source models like Llama within a spaCy pipeline. The key benefit is that spacy-llm converts unstructured LLM responses into robust structured outputs suitable for NER, text classification, and other NLP tasks, often without requiring training data. This hybrid approach lets teams leverage LLM capabilities while keeping the deterministic, fast processing spaCy is known for.
spaCy offers multiple model sizes per language, typically labeled sm (small), md (medium), lg (large), and trf (transformer). For English, en_core_web_sm is around 12MB and runs fast for prototyping, while en_core_web_lg includes 300-dimensional word vectors for higher accuracy at around 560MB. The en_core_web_trf model uses RoBERTa and achieves the highest accuracy (95.1 parsing, 89.8 NER on OntoNotes) but is much larger and slower, typically requiring a GPU for reasonable speed. Choose sm/md for production at scale where speed matters, lg when you need word vectors, and trf when accuracy is paramount and compute is available.
spaCy supports 75+ languages with tokenization, lemmatization, and other basic linguistic features, and provides 84 trained pipelines for 25 languages including Spanish, French, German, Chinese, Japanese, Portuguese, Italian, Dutch, Russian, Korean, and many more. However, model quality varies significantly by language â English, German, and Chinese have the most mature pipelines, while smaller languages like Afrikaans or Amharic have basic tokenization but fewer or no pre-trained statistical models. For unsupported accuracy targets, you can train custom models on your own annotated data using spaCy's training framework and config system.
Now that you know how to use spaCy, it's time to put this knowledge into practice.
Sign up and follow the tutorial steps
Check pros, cons, and user feedback
See how it stacks against alternatives
Follow our tutorial and master this powerful natural language processing tool in minutes.
Tutorial updated March 2026