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 vectors, and currently supports tokenization for 60+ languages. It features state-of-the-art speed, convolutional 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 PyPi downloads Conda downloads Model downloads Code style: black 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 statistical language models for spaCy.
Universe Libraries, extensions, demos, books and courses.
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 and @adrianeboyd. 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 GitHub Issue Tracker
👩‍💻 Usage Questions Stack Overflow

Features

  • Support for 60+ languages
  • Trained pipelines
  • Multi-task learning with pretrained transformers like BERT
  • Pretrained word vectors
  • 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 (as of v2.0.13). 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 in spaCy v2.2+ 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 for v2.2+ plus normalization data for v2.3+, 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 spacy

conda

Thanks to our great community, we've finally re-added conda support. You can now install spaCy via conda-forge:

conda install -c conda-forge spacy

For the feedstock including the build recipe and configuration, check out this repository. Improvements and pull requests to the recipe and setup are always appreciated.

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 models

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 instructions.
# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# pip install .tar.gz archive from path or URL
pip install /Users/you/en_core_web_sm-2.2.0.tar.gz
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.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. See notes on Ubuntu, OS X and Windows for details.

# make sure you are using the latest pip
python -m pip install -U pip
git clone https://github.com/explosion/spaCy
cd spaCy

python -m venv .env
source .env/bin/activate
export PYTHONPATH=`pwd`
pip install -r requirements.txt
python setup.py build_ext --inplace

Compared to regular install via pip, requirements.txt additionally installs developer dependencies such as Cython. 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.

Ubuntu

Install system-level dependencies via apt-get:

sudo apt-get install build-essential python-dev git

macOS / OS X

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.

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 find out where spaCy is installed and run pytest on that directory. Don't forget to also install the test utilities via spaCy's requirements.txt:

python -c "import os; import spacy; print(os.path.dirname(spacy.__file__))"
pip install -r path/to/requirements.txt
python -m pytest <spacy-directory>

See the documentation for more details and examples.

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-nightly-3.0.0a38.tar.gz (6.4 MB view details)

Uploaded Source

Built Distributions

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

spacy_nightly-3.0.0a38-cp38-cp38-win_amd64.whl (10.3 MB view details)

Uploaded CPython 3.8Windows x86-64

spacy_nightly-3.0.0a38-cp38-cp38-manylinux2014_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.8

spacy_nightly-3.0.0a38-cp38-cp38-macosx_10_9_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

spacy_nightly-3.0.0a38-cp37-cp37m-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.7mWindows x86-64

spacy_nightly-3.0.0a38-cp37-cp37m-manylinux2014_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.7m

spacy_nightly-3.0.0a38-cp37-cp37m-macosx_10_9_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

spacy_nightly-3.0.0a38-cp36-cp36m-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.6mWindows x86-64

spacy_nightly-3.0.0a38-cp36-cp36m-manylinux2014_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.6m

spacy_nightly-3.0.0a38-cp36-cp36m-macosx_10_9_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file spacy-nightly-3.0.0a38.tar.gz.

File metadata

  • Download URL: spacy-nightly-3.0.0a38.tar.gz
  • Upload date:
  • Size: 6.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy-nightly-3.0.0a38.tar.gz
Algorithm Hash digest
SHA256 78854d3c582577cf97d9ba58c7fe10ad27e3e92ebab6d757361cb4b694c9cdc0
MD5 6236af0ed40826876e4a6dd2e5ec6aa9
BLAKE2b-256 57ac340c0fe1669062b7434912b9f7b1cc3cd6e2313b0690b15408555f4873f3

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 10.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ffde500ab1643caf615487c4feaa134892fda0edad42655d4a78145d1e3847d8
MD5 8896ddaf018e7d8124222655d3ed61f1
BLAKE2b-256 d88b55816acad6e059c6e6936eb423bd0097b043b890ac2cc0c0be1d411aedf0

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 11.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e6cfef63bcfb43d1f7fb35c0d7cbf7a50cddcf07374f725e2fa344bb025a48a
MD5 9d5c9868a68a46b06e5f8d900147b03e
BLAKE2b-256 0be17467e76da059e85907e84ac84445913761bc9d2d4748065ec205e7dcc36f

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 821cf23894cdd3c05d63172309254f6307ab3229a508af5224281bf3c6a82328
MD5 f1364cf9e9b642a27ff588a0c28dc502
BLAKE2b-256 b6d04a28ee040a1649ac6ecfb71dea4eff7d53032173acfd643e94ef55843403

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 880e2f6a810e042ba4d97034359ef25c2642fb27fc794539033235ddea1b3f37
MD5 29044f8d4f5c22ae33490ff8c0308461
BLAKE2b-256 287b57607331d1da80af699f02db81d00ac6ff12b6b4758a7f2c8d0fd7db25bc

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 11.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5be761be0215af54eae3022591e9e3cc5938b5a67ea5cdb47a1a6e0a0a0760bc
MD5 968c90a964466549605cdf4feeb3a4f4
BLAKE2b-256 d8f1395354999c4293bc9959098fbd6622178892ce8db4e3e2870bb1cc761270

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 10.8 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ff660c71acfba569b0333624f8ba8520f549a8c50c61ab10b934dbe284f349a2
MD5 cff4104be69ddd7e344b4830da697851
BLAKE2b-256 18c6ed62c60a7f6de6240e61f8ad8f00924c563106e7addcc5d33a05026cc89e

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f6afcae00277218af56e83ec1cd6fcaccae573d68e4e479f6b7004142dff7475
MD5 4fc478aa85acdfacaab36a7dc471ba80
BLAKE2b-256 a58a163b431cc9d396666ce492ae3d1acdac7fba63991f95282ad3c8a1f49746

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 11.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5767403313f11b2c3e1752fa1692a1182018ced3a28c220127cb489fc0997bf8
MD5 b7c7f24bab9b214ed19c5b7a8d157112
BLAKE2b-256 73202d8b6fc64d0a2e3f629c5f5e1425da6e5fe6afb1a9a311f71ba8148c4492

See more details on using hashes here.

File details

Details for the file spacy_nightly-3.0.0a38-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: spacy_nightly-3.0.0a38-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 11.0 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for spacy_nightly-3.0.0a38-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a48adffd36cbecdc0dd04e898b79fbed6eee72c5cb1ddabf8eaa06b1c1ef3dd6
MD5 732c5e4d21c734e6bc99c5591d8b50d4
BLAKE2b-256 aab97183832eb4b99af50d94f93fdf89196bb685ad0a1ca7560a4c309bc3c047

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