Skip to main content

Industrial-strength Natural Language Processing (NLP) in Python

Project description

spaCy: Industrial-strength NLP

spaCy is a library for advanced Natural Language Processing in Python and Cython. It's built on the very latest research, and was designed from day one to be used in real products.

spaCy comes with pretrained pipelines and currently supports tokenization and training for 70+ languages. It features state-of-the-art speed and neural network models for tagging, parsing, named entity recognition, text classification and more, multi-task learning with pretrained transformers like BERT, as well as a production-ready training system and easy model packaging, deployment and workflow management. spaCy is commercial open-source software, released under the MIT license.

💫 Version 3.7 out now! Check out the release notes here.

tests Current Release Version pypi Version conda Version Python wheels Code style: black
PyPi downloads Conda downloads spaCy on Twitter

📖 Documentation

Documentation
⭐️ spaCy 101 New to spaCy? Here's everything you need to know!
📚 Usage Guides How to use spaCy and its features.
🚀 New in v3.0 New features, backwards incompatibilities and migration guide.
🪐 Project Templates End-to-end workflows you can clone, modify and run.
🎛 API Reference The detailed reference for spaCy's API.
GPU Processing Use spaCy with CUDA-compatible GPU processing.
📦 Models Download trained pipelines for spaCy.
🦙 Large Language Models Integrate LLMs into spaCy pipelines.
🌌 Universe Plugins, extensions, demos and books from the spaCy ecosystem.
⚙️ spaCy VS Code Extension Additional tooling and features for working with spaCy's config files.
👩‍🏫 Online Course Learn spaCy in this free and interactive online course.
📰 Blog Read about current spaCy and Prodigy development, releases, talks and more from Explosion.
📺 Videos Our YouTube channel with video tutorials, talks and more.
🛠 Changelog Changes and version history.
💝 Contribute How to contribute to the spaCy project and code base.
👕 Swag Support us and our work with unique, custom-designed swag!
Tailored Solutions Custom NLP consulting, implementation and strategic advice by spaCy’s core development team. Streamlined, production-ready, predictable and maintainable. Send us an email or take our 5-minute questionnaire, and well'be in touch! Learn more →

💬 Where to ask questions

The spaCy project is maintained by the spaCy team. Please understand that we won't be able to provide individual support via email. We also believe that help is much more valuable if it's shared publicly, so that more people can benefit from it.

Type Platforms
🚨 Bug Reports GitHub Issue Tracker
🎁 Feature Requests & Ideas GitHub Discussions
👩‍💻 Usage Questions GitHub Discussions · Stack Overflow
🗯 General Discussion GitHub Discussions

Features

  • Support for 70+ languages
  • Trained pipelines for different languages and tasks
  • Multi-task learning with pretrained transformers like BERT
  • Support for pretrained word vectors and embeddings
  • State-of-the-art speed
  • Production-ready training system
  • Linguistically-motivated tokenization
  • Components for named entity recognition, part-of-speech-tagging, dependency parsing, sentence segmentation, text classification, lemmatization, morphological analysis, entity linking and more
  • Easily extensible with custom components and attributes
  • Support for custom models in PyTorch, TensorFlow and other frameworks
  • Built in visualizers for syntax and NER
  • Easy model packaging, deployment and workflow management
  • Robust, rigorously evaluated accuracy

📖 For more details, see the facts, figures and benchmarks.

⏳ Install spaCy

For detailed installation instructions, see the documentation.

  • Operating system: macOS / OS X · Linux · Windows (Cygwin, MinGW, Visual Studio)
  • Python version: Python 3.7+ (only 64 bit)
  • Package managers: pip · conda (via conda-forge)

pip

Using pip, spaCy releases are available as source packages and binary wheels. Before you install spaCy and its dependencies, make sure that your pip, setuptools and wheel are up to date.

pip install -U pip setuptools wheel
pip install spacy

To install additional data tables for lemmatization and normalization you can run pip install spacy[lookups] or install spacy-lookups-data separately. The lookups package is needed to create blank models with lemmatization data, and to lemmatize in languages that don't yet come with pretrained models and aren't powered by third-party libraries.

When using pip it is generally recommended to install packages in a virtual environment to avoid modifying system state:

python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install spacy

conda

You can also install spaCy from conda via the conda-forge channel. For the feedstock including the build recipe and configuration, check out this repository.

conda install -c conda-forge spacy

Updating spaCy

Some updates to spaCy may require downloading new statistical models. If you're running spaCy v2.0 or higher, you can use the validate command to check if your installed models are compatible and if not, print details on how to update them:

pip install -U spacy
python -m spacy validate

If you've trained your own models, keep in mind that your training and runtime inputs must match. After updating spaCy, we recommend retraining your models with the new version.

📖 For details on upgrading from spaCy 2.x to spaCy 3.x, see the migration guide.

📦 Download model packages

Trained pipelines for spaCy can be installed as Python packages. This means that they're a component of your application, just like any other module. Models can be installed using spaCy's download command, or manually by pointing pip to a path or URL.

Documentation
Available Pipelines Detailed pipeline descriptions, accuracy figures and benchmarks.
Models Documentation Detailed usage and installation instructions.
Training How to train your own pipelines on your data.
# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# pip install .tar.gz archive or .whl from path or URL
pip install /Users/you/en_core_web_sm-3.0.0.tar.gz
pip install /Users/you/en_core_web_sm-3.0.0-py3-none-any.whl
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz

Loading and using models

To load a model, use spacy.load() with the model name or a path to the model data directory.

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("This is a sentence.")

You can also import a model directly via its full name and then call its load() method with no arguments.

import spacy
import en_core_web_sm

nlp = en_core_web_sm.load()
doc = nlp("This is a sentence.")

📖 For more info and examples, check out the models documentation.

⚒ Compile from source

The other way to install spaCy is to clone its GitHub repository and build it from source. That is the common way if you want to make changes to the code base. You'll need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, virtualenv and git installed. The compiler part is the trickiest. How to do that depends on your system.

Platform
Ubuntu Install system-level dependencies via apt-get: sudo apt-get install build-essential python-dev git .
Mac Install a recent version of XCode, including the so-called "Command Line Tools". macOS and OS X ship with Python and git preinstalled.
Windows Install a version of the Visual C++ Build Tools or Visual Studio Express that matches the version that was used to compile your Python interpreter.

For more details and instructions, see the documentation on compiling spaCy from source and the quickstart widget to get the right commands for your platform and Python version.

git clone https://github.com/explosion/spaCy
cd spaCy

python -m venv .env
source .env/bin/activate

# make sure you are using the latest pip
python -m pip install -U pip setuptools wheel

pip install -r requirements.txt
pip install --no-build-isolation --editable .

To install with extras:

pip install --no-build-isolation --editable .[lookups,cuda102]

🚦 Run tests

spaCy comes with an extensive test suite. In order to run the tests, you'll usually want to clone the repository and build spaCy from source. This will also install the required development dependencies and test utilities defined in the requirements.txt.

Alternatively, you can run pytest on the tests from within the installed spacy package. Don't forget to also install the test utilities via spaCy's requirements.txt:

pip install -r requirements.txt
python -m pytest --pyargs spacy

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

spacy-3.8.4-cp312-cp312-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

spacy-3.8.4-cp312-cp312-musllinux_1_2_x86_64.whl (32.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

spacy-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

spacy-3.8.4-cp312-cp312-macosx_11_0_arm64.whl (6.0 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

spacy-3.8.4-cp312-cp312-macosx_10_13_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

spacy-3.8.4-cp311-cp311-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

spacy-3.8.4-cp311-cp311-musllinux_1_2_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

spacy-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

spacy-3.8.4-cp311-cp311-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

spacy-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

spacy-3.8.4-cp310-cp310-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

spacy-3.8.4-cp310-cp310-musllinux_1_2_x86_64.whl (29.9 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

spacy-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

spacy-3.8.4-cp310-cp310-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

spacy-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

File details

Details for the file spacy-3.8.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: spacy-3.8.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 11.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for spacy-3.8.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3eba8fb4388f3e21e9a3af14462422ea432a8aa37327886de7603654267a1b2b
MD5 914c2237d61650db0b01723cb47e0012
BLAKE2b-256 7394d9a904e86021fdfa2d403a55e277c58911979aa894114abbf300ee8c1bfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp312-cp312-win_amd64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 10b63bd107230f214283c12b0e38c64978deb64f9fa4ed5538ec4951a019e629
MD5 2fb2d86e9583a824dc8901871fc4ede9
BLAKE2b-256 d0e4ede5b6741d1e180ab52efdcfede0abf81e69429c0ce5616c05a066f588da

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96e70f3089f62c661895433991d1818678aa23ecd92c78eac3190892b3840787
MD5 6d54fb4a11753224c5de5927716ac376
BLAKE2b-256 f2cbb565f6e04fb9b2d19c3de105dec659c6d98cba17bfd371e455c11c206040

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5ef210fef16bf95cbb2db381a53089e53aac240d79a401ec67a3f900f3ca538
MD5 972d96ad14f890c18f287c3108cad4b5
BLAKE2b-256 64201db5a7384dba9e979b912dae57a8fb8ab986e3859da60ab1cb086c430dbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 381e482cde64a4346cd5a33e3f30881def405ad97c609620b01f694ef77f4f68
MD5 a31d69bb28ed4bfd7754fa604d27243a
BLAKE2b-256 bf0ba610dcf958c349b361bf36ca25208db4dd25b5d82a00670161fae56970c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: spacy-3.8.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for spacy-3.8.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5837d60329d2da90008ccb24e65b03fb53d6729918ed6fda9d15868d36961c00
MD5 ef94e490e2c6c0ea698eb75a6cf8501d
BLAKE2b-256 ca457b43e89b30fe73e32fd8b8ab80c407d326761530a88abd823ec8623772a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp311-cp311-win_amd64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6b04dce1b52c9a890c651cc50a38349ffaf93f03740059653c124cbf2a3187d
MD5 09788394caa38f8cd05c79924139c645
BLAKE2b-256 d912fc55ad34ef246f33951ecec0be86ba906830dbd443c763e90c6e19f51e1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4540e4599df47e2d7525b8da1515d29da72db339ba8553b2f8d30842179806ea
MD5 f23d743e8da416a580df05ea2a09b3dc
BLAKE2b-256 f9364f95922a22c32bd6fdda50ae5780c55b72d75ff76fd94cafa24950601330

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1080908078a78299f8924e5df6c61e9f9db2f6930ed945e91b048e9af41d58a1
MD5 69f20d641bf385e88affb046edad8593
BLAKE2b-256 90950823540c856b61193cb2d0c8feb863d5130e1571c79140317004ad786612

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 276ef77ce197a1eb73f86e6b6f527886cfd8211f38688eb3c246e07e51f8ae22
MD5 f53bb2b8309acd0f111437cff38040da
BLAKE2b-256 4cd9439aed2e686b30aef877dea6181852810ae9dc2fcbc9003e9eedb543e463

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: spacy-3.8.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for spacy-3.8.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e34003ab0c8e447ec40f74f03b95fa018e8c81ef2fc067a2e8398edd96a6ab0a
MD5 281f7daeb9ab5d18e246e999c5a075fb
BLAKE2b-256 1bb931e2d2a3357fbb75aa9cb2dc5ff720077c4af6962034a9a3d8ac8550bc43

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp310-cp310-win_amd64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 17a758d53761b54c9500aca34cd27399730848dce2b74edf76a0893b5c711ed3
MD5 7541dbb322d3f1f76e6cd3a5d409e067
BLAKE2b-256 5f3d9364f30a7e768270adf3480fe8e198f425e2c9033aa24aa12f845fdaad3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94c589ba39dbd035a7205c05f6efa2b60bdd1faae0f5fc9c0d657eb903b885ac
MD5 259794e6fe9d6c81ba327c1aa76fb1ee
BLAKE2b-256 0f24599a37ee61458471a1f812a4970c082f7d86089ff2ea8517ffeac0dba86d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0474188edcdad2be647df04cfdc4351dea877caf41bd8c93b36e3b9124794c7
MD5 3f9d1fa1aabcfe2808e907b52064b98c
BLAKE2b-256 0f8c9e565966f016371bff7d020eac41248085c3ebbc7b50c565d45e0f8a439c

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spacy-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bbe074f58ac21156dab821b5a145f72c2a50933098bc371ab5a63f47e8ac5fc6
MD5 4e9d2c182cb5046394109468b0724351
BLAKE2b-256 e851c0862063e8338a2cc769e787f0448c92a87ac87abfe2987ecc84d8246f51

See more details on using hashes here.

Provenance

The following attestation bundles were made for spacy-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish_pypi.yml on explosion/spaCy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page