Skip to main content

Industrial-strength Natural Language Processing (NLP) with Python and Cython

Project description

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 pre-trained statistical models and word vectors, and currently supports tokenization for 30+ languages. It features the fastest syntactic parser in the world, convolutional neural network models for tagging, parsing and named entity recognition and easy deep learning integration. It’s commercial open-source software, released under the MIT license.

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

Build Status Appveyor Build Status Current Release Version pypi Version conda Version Python wheels spaCy on Twitter

📖 Documentation

spaCy 101

New to spaCy? Here’s everything you need to know!

Usage Guides

How to use spaCy and its features.

New in v2.0

New features, backwards incompatibilities and migration guide.

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 and @ines. 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.

Bug Reports

GitHub Issue Tracker

Usage Questions

Stack Overflow, Gitter Chat, Reddit User Group

General Discussion

Gitter Chat, Reddit User Group

Features

  • Fastest syntactic parser in the world

  • Named entity recognition

  • Non-destructive tokenization

  • Support for 30+ languages

  • Pre-trained statistical models and word vectors

  • Easy deep learning integration

  • Part-of-speech tagging

  • Labelled dependency parsing

  • Syntax-driven sentence segmentation

  • Built in visualizers for syntax and NER

  • Convenient string-to-hash mapping

  • Export to numpy data arrays

  • Efficient binary serialization

  • Easy model packaging and deployment

  • State-of-the-art speed

  • 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

CPython 2.7, 3.4+. 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).

pip install spacy

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 config --add channels conda-forge
conda install 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 1.x to spaCy 2.x, see the migration guide.

Download models

As of v1.7.0, models 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.

Available Models

Detailed model descriptions, accuracy figures and benchmarks.

Models Documentation

Detailed usage instructions.

# out-of-the-box: download best-matching default model
python -m spacy download en

# download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_lg

# pip install .tar.gz archive from path or URL
pip install /Users/you/en_core_web_sm-2.0.0.tar.gz

Loading and using models

To load a model, use spacy.load() with the model’s shortcut link:

import spacy
nlp = spacy.load('en')
doc = nlp(u'This is a sentence.')

If you’ve installed a model via pip, you can also import it directly and then call its load() method:

import spacy
import en_core_web_sm

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

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

Support for older versions

If you’re using an older version (v1.6.0 or below), you can still download and install the old models from within spaCy using python -m spacy.en.download all or python -m spacy.de.download all. The .tar.gz archives are also attached to the v1.6.0 release. To download and install the models manually, unpack the archive, drop the contained directory into spacy/data and load the model via spacy.load('en') or spacy.load('de').

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.

Instead of the above verbose commands, you can also use the following Fabric commands. All commands assume that your virtual environment is located in a directory .env. If you’re using a different directory, you can change it via the environment variable VENV_DIR, for example VENV_DIR=".custom-env" fab clean make.

fab env

Create virtual environment and delete previous one, if it exists.

fab make

Compile the source.

fab clean

Remove compiled objects, including the generated C++.

fab test

Run basic tests, aborting after first failure.

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 Visual Studio Express or higher that matches the version that was used to compile your Python interpreter. For official distributions these are VS 2008 (Python 2.7), VS 2010 (Python 3.4) and VS 2015 (Python 3.5).

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-2.0.18.tar.gz (24.9 MB view details)

Uploaded Source

Built Distributions

spacy-2.0.18-cp37-cp37m-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.7mWindows x86-64

spacy-2.0.18-cp37-cp37m-manylinux1_x86_64.whl (25.2 MB view details)

Uploaded CPython 3.7m

spacy-2.0.18-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (27.5 MB view details)

Uploaded CPython 3.7mmacOS 10.10+ Intel (x86-64, i386)macOS 10.10+ x86-64macOS 10.6+ Intel (x86-64, i386)macOS 10.9+ Intel (x86-64, i386)macOS 10.9+ x86-64

spacy-2.0.18-cp36-cp36m-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.6mWindows x86-64

spacy-2.0.18-cp36-cp36m-manylinux1_x86_64.whl (25.2 MB view details)

Uploaded CPython 3.6m

spacy-2.0.18-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (27.6 MB view details)

Uploaded CPython 3.6mmacOS 10.10+ Intel (x86-64, i386)macOS 10.10+ x86-64macOS 10.6+ Intel (x86-64, i386)macOS 10.9+ Intel (x86-64, i386)macOS 10.9+ x86-64

spacy-2.0.18-cp35-cp35m-win_amd64.whl (24.5 MB view details)

Uploaded CPython 3.5mWindows x86-64

spacy-2.0.18-cp35-cp35m-manylinux1_x86_64.whl (25.2 MB view details)

Uploaded CPython 3.5m

spacy-2.0.18-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (27.5 MB view details)

Uploaded CPython 3.5mmacOS 10.10+ Intel (x86-64, i386)macOS 10.10+ x86-64macOS 10.6+ Intel (x86-64, i386)macOS 10.9+ Intel (x86-64, i386)macOS 10.9+ x86-64

spacy-2.0.18-cp27-cp27mu-manylinux1_x86_64.whl (25.2 MB view details)

Uploaded CPython 2.7mu

spacy-2.0.18-cp27-cp27m-win_amd64.whl (24.6 MB view details)

Uploaded CPython 2.7mWindows x86-64

spacy-2.0.18-cp27-cp27m-manylinux1_x86_64.whl (25.2 MB view details)

Uploaded CPython 2.7m

spacy-2.0.18-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (27.7 MB view details)

Uploaded CPython 2.7mmacOS 10.10+ Intel (x86-64, i386)macOS 10.10+ x86-64macOS 10.6+ Intel (x86-64, i386)macOS 10.9+ Intel (x86-64, i386)macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: spacy-2.0.18.tar.gz
  • Upload date:
  • Size: 24.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18.tar.gz
Algorithm Hash digest
SHA256 123f3b70afa16516ffe458cd8718793e4aab8ab10085a9d0dc121076746dcb57
MD5 473ab41f08e52a642d45bd9d2fbd237f
BLAKE2b-256 675e63283836960c97283ad20ae58ef62767e232fc351564a22a85df598fd794

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.0.18-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 24.6 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0d3a985f79ca9b2966660cd9d0b880f7a998eaa8cd14ecd207a42ca5a4401703
MD5 448cd8d236cfb7e764a771202ad590f1
BLAKE2b-256 50311496f44c12160282a93c6d36eff5527b89dbc0e6389cf1f4aeeb52caecee

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 25.2 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1dac9b9e054812cc0f846d5a4ce01f8758b0c1d6807327fb81a30f5685035a89
MD5 8c3f0a634f4f3aae5aead73f2b3a7295
BLAKE2b-256 cd7065504a011d7b262e73cfe470c36ca245a1f8e45b3b6661081289ffd72009

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for spacy-2.0.18-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 881141bf6ab12fba8d782095b07514e6bf1094e37f0380977e3750d138f3d236
MD5 f4e87b3a0342db0515e4249cbb425398
BLAKE2b-256 2f7763ebd4038b7acf95daceb3e623532d0b4e2921fb0d875fdd68b1275aa7ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.0.18-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 24.6 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 799d74e4035ca8644afbe06312f3a399331acc9f4e81a7de8a9166fe267863b1
MD5 a76b26a089f94fab65e4351f3d4b984e
BLAKE2b-256 15afc3f04f1bddf402e59342ad9d2407343d2eaf1a279e3af94879168b61f2b8

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 25.2 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fbaba13090b05576c7fd507afceb571a6af92911973e6bd3eee1f99b8cbbccc1
MD5 6002e167b2473e259b061661c3da72fe
BLAKE2b-256 ae6ea89da6b5c83f8811e46e3a9270c1aed90e9b9ee6c60faf52b7239e5d3d69

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for spacy-2.0.18-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 afe43c38e7f1fd636b1a561c69c8654043a73d0a36fc61e6d51f32dca6b4514e
MD5 154b7b4cf510aebaf9910b02bfbf4e14
BLAKE2b-256 19c639b29bc6c6c94298e81624746cc69184c9cf064de24d8c40aa68f9eb8779

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 24.5 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 42f4578370b988a1e142bf84e596e2a370b75be6357202225b1d9cf33c5de4e0
MD5 460b7e915a0f1ecbe83efff7cb50a1c2
BLAKE2b-256 6a103ad3573b23087444ce88363f824475dfcf9e679e0be9e45c5244e2dcc6bd

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 25.2 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3515ab4143f7503eada723b2b4b2f851c780ad3aa9f665e7d2355cae3d5070e5
MD5 bf70366ae8c2f32aed5b5fa4fca62d60
BLAKE2b-256 f97a388e439439c4e3ebc26ea3ef66e1767ba923c3783c1055216ed5ec26fc15

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for spacy-2.0.18-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 896fb7d01c0e07dbde401119cddb2e0df2127f79dceb9596c09f37f5e9f3af74
MD5 f3c4059f828dbe00afb01b8f621b64ec
BLAKE2b-256 95c760a0bb9077732bcc6e8195b4f52bcd55c3f9412768924fece6436fdb7b33

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp27-cp27mu-manylinux1_x86_64.whl
  • Upload date:
  • Size: 25.2 MB
  • Tags: CPython 2.7mu
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 83ed5708e24228a629478407c473c0347a7cfbea9fd7999bb5d9dbae44f5008e
MD5 1b4fb564f5fe391094bd0c5346d00c67
BLAKE2b-256 8fe529da531b96aeb1aa1c139c18b7fd4a9e118c72631cca77c39ad2afedc4db

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp27-cp27m-win_amd64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp27-cp27m-win_amd64.whl
  • Upload date:
  • Size: 24.6 MB
  • Tags: CPython 2.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 6cded7c8c5f83d225e6d7e8fa1d30180727d265d27fccdd31bbc4e340f2eb78b
MD5 fca4bd8bf67fb8294115a8cf4fc007c5
BLAKE2b-256 196cc8535f0eeb87b7fe0266398a31b0084b2d8bc1bfa6b46301259ea2200b32

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

  • Download URL: spacy-2.0.18-cp27-cp27m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 25.2 MB
  • Tags: CPython 2.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for spacy-2.0.18-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5bb0cc71485d6b4a7678b6bc738c545599ba555413adad557b433338093bdd36
MD5 bdf24291e72f48a22f21ae6f8ae6eddf
BLAKE2b-256 3a7ea21d117fbbf605944d124e46f88d18b8a4d881aea7b8fc683744c0918d90

See more details on using hashes here.

File details

Details for the file spacy-2.0.18-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for spacy-2.0.18-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 aa7e91251e420baea2685d06f45c53c5d4a1dbf6a965e6cd75ce3cd8b23a2c66
MD5 3a95373df74f6a4c960c593a6f9254b9
BLAKE2b-256 bbabb64e4aac5d762c9b8a3df5c2a2b2bc45d8c4314228f78972241ee3334cc0

See more details on using hashes here.

Supported by

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