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 60+ 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.0 out now! Check out the release notes here.

Azure Pipelines 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.
📦 Models Download trained pipelines for spaCy.
🌌 Universe Plugins, extensions, demos and books from the spaCy ecosystem.
👩‍🏫 Online Course Learn spaCy in this free and interactive online course.
📺 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.

💬 Where to ask questions

The spaCy project is maintained by @honnibal, @ines, @svlandeg, @adrianeboyd and @polm. 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 60+ 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.6+ (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 Distribution

spacy-3.1.3.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

spacy-3.1.3-cp39-cp39-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.9Windows x86-64

spacy-3.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

spacy-3.1.3-cp39-cp39-macosx_10_9_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

spacy-3.1.3-cp38-cp38-win_amd64.whl (12.0 MB view details)

Uploaded CPython 3.8Windows x86-64

spacy-3.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

spacy-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

spacy-3.1.3-cp37-cp37m-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.7mWindows x86-64

spacy-3.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

spacy-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

spacy-3.1.3-cp36-cp36m-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.6mWindows x86-64

spacy-3.1.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

spacy-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file spacy-3.1.3.tar.gz.

File metadata

  • Download URL: spacy-3.1.3.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3.tar.gz
Algorithm Hash digest
SHA256 58084e64a27997192ea48f18abb30ec148c5bbe79d04d17ba4d2fc262100c2a2
MD5 308d55b9c38cd37056abe30dfe318f3d
BLAKE2b-256 54c995f5a8db73f8ab05b6dbf2a1727d8d77daedf7edfec469af59f57a08d8e7

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7465a2c0950cf9ea2fcfeb63a093fb0dc2557b0c3e2f96b89c163477b160f6be
MD5 66ff9835fe88eaea93494f2e9d8cea60
BLAKE2b-256 9cd6342fa30d4e2f68c6250b90eaa6a60c97d529e5d9703c6acbca632e70e7b8

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c7b721663d884412a57c499fab3d8ee9be8a614bbb20fcbbbdf0e9e7ad52c33
MD5 08ce1ab00e9109990644d749ac1dfef7
BLAKE2b-256 ca047311baf3c7b36e9e5a991bd634f32e7f99f04b8eee780dd6973dcafbb3dd

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 6.2 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5937d05aad1f699c60ccc53b49f3f5b4aa4e12cce4b1dca6f5a015592b49565c
MD5 1b29d14000a1adc0e08ea3f6effe9679
BLAKE2b-256 9d38aee0ffb7a0c0151bc0d287df02eba9d4e9a3ce314295d5d40f8654d502b2

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0a8791b54ab4a6b92e07ba6bf1d1b1dbbc5dd9311e90a003fac4274fff5fb847
MD5 bbe83719f56a308d39148ff89736a6de
BLAKE2b-256 d242636bd35971cb4ed09f5a702d9fda03ef3163d38d94cdafba4bd85a8a9cd7

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 6.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b69e83f4fc4e936735f285dbf452288f6bcb627be824ea6aff41703c2847ddc1
MD5 894e96b6c01579d36a5e83e3e90c656a
BLAKE2b-256 eee49b6b399317858870d8b897f9fbcfa437f535b1e0781920c335050e4ee136

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8342ce5e095f57dd53127a429d9cac38c36e1a353ed9747ef92751216fcd42a
MD5 1d42b1de4c7174a1bb1e74f55db28a34
BLAKE2b-256 2ea507350055784cb27c14c22cbba7052c1486779b95226efba6680664ca74ab

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 11.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4a91237bf8eafb23f61e4d07953c94c8f187e3169c5563b0972bf23f52996c3d
MD5 f5ad08e7d3f3d4433b1153976400e2ab
BLAKE2b-256 3a67ec0426a8f5bf2c2c56878decb8639beb439e436c135075485a6fe10b718a

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b51effb8423e0190f22d29d5b98e31a38c9a20b6908d305c5f62d8790f2d0ab3
MD5 245f2eb52c994ac6a87689fdf7b583e3
BLAKE2b-256 ae98b273d25472fca51a089475bfbc285ff47c9ea75417ef71ca0c228a809389

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca719d352b13c2d37db8567eb88cda598dfc37fd8465c6187002ff3d020bab86
MD5 0197516442f5022d707dc8f0a3fbb897
BLAKE2b-256 00db0157027adb3c9ef72c07d4c60bb3340bd5e2e793a1c30b6fb42ba041d779

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 11.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 838372223e605beff9a0bb563263cf6c3aa0eed1b58c1fa795f20d6938902d5c
MD5 5e1b0ebaf11d2b9f6160657de582297a
BLAKE2b-256 dfc52859bb4127aa2dce35512d9840aa845d74ab4ba79ecd487868fd83bd0556

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spacy-3.1.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2930683257e228acd7c3294895a1681cc38e4d91b06d43bdd03721aa277dd9d4
MD5 28d5992cda083999369f79a51604eadb
BLAKE2b-256 090a9a27af102e2b5904cf6c2ae3827adf2249ec7e7699312eff268e58a12a56

See more details on using hashes here.

File details

Details for the file spacy-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for spacy-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b73287620ca6532f95b97111036ba8f4d82ee28ce113acf9b9adbf42b968ef3d
MD5 74ddec9b6688429a08103b6352232070
BLAKE2b-256 8509179d06c4557cbb8105dbff575df6a3788071476dacbea67e338fa95abf59

See more details on using hashes here.

Supported by

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