Skip to main content

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

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 pre-trained statistical models and word vectors, and currently supports tokenization for 45+ 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.1 out now! Check out the release notes here.

Azure Pipelines Travis Build Status Current Release Version pypi Version conda Version Python wheels 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 v2.1 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.

Type Platforms
🚨 Bug Reports GitHub Issue Tracker
🎁 Feature Requests 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 45+ 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: Python 2.7, 3.5+ (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.

Documentation
Available Models Detailed model 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

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

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

Loading and using models

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

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp(u"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(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.

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

Uploaded Source

Built Distributions

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

spacy-2.1.3-cp37-cp37m-win_amd64.whl (26.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

spacy-2.1.3-cp37-cp37m-manylinux1_x86_64.whl (27.7 MB view details)

Uploaded CPython 3.7m

spacy-2.1.3-cp36-cp36m-win_amd64.whl (26.9 MB view details)

Uploaded CPython 3.6mWindows x86-64

spacy-2.1.3-cp36-cp36m-manylinux1_x86_64.whl (27.7 MB view details)

Uploaded CPython 3.6m

spacy-2.1.3-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 (31.3 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.1.3-cp35-cp35m-win_amd64.whl (26.8 MB view details)

Uploaded CPython 3.5mWindows x86-64

spacy-2.1.3-cp35-cp35m-manylinux1_x86_64.whl (27.6 MB view details)

Uploaded CPython 3.5m

spacy-2.1.3-cp27-cp27mu-manylinux1_x86_64.whl (27.7 MB view details)

Uploaded CPython 2.7mu

File details

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

File metadata

  • Download URL: spacy-2.1.3.tar.gz
  • Upload date:
  • Size: 27.7 MB
  • Tags: Source
  • 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.31.1 CPython/3.6.6

File hashes

Hashes for spacy-2.1.3.tar.gz
Algorithm Hash digest
SHA256 b1b86ddf6142fa2782b2e0269d040430ae5696eb0224f3e99408897cac7bb506
MD5 135de40216c21837abdd96f2133be47c
BLAKE2b-256 77f3eb5aece989ecca541c4b5a439cb8a86fe5254b1521925b547609fb3aaf64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 26.9 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.1.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0fe2e5905f2f5b41be3ebea40626f70bea567a7a2cda9c244109fffe8d964429
MD5 30327bcce2977540419ab0166f90617a
BLAKE2b-256 edf9c4c7a281df449cd74db040d5041de8bbdbca6d462b9b2e861ad6177213b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 27.7 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.1.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f385942c5b2c8cf07e4a56871f88a49d4c8a9145fcd731c455e39fb5af9b12ba
MD5 04281e381326e5730f54daadebf0c6d0
BLAKE2b-256 c729ede5977ea144bb5758407542eb363ebfb11bbb459d26dea5dd0545563854

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 26.9 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.1.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 e6522e1242a5a5f12ef7e55f74df020b5deea59f7d1e7b6e69298301e3c0badd
MD5 3a0cc7b53ed25a9b7c7302181587a7ff
BLAKE2b-256 4cf6e146ea31f994581a31bd50331dbfc005becef1003b54619edfc22ab2517b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 27.7 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.1.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 be8a7c89461ac22d261e19e1d3eb35752d8ff3e52452af076b303561bb166408
MD5 55bf5259bac7cf2f79c87893b1fc6fe8
BLAKE2b-256 52da3a1c54694c2d2f40df82f38a19ae14c6eb24a5a1a0dae87205ebea7a84d8

See more details on using hashes here.

File details

Details for the file spacy-2.1.3-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.1.3-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 74066ac969a587d16d00d65318c1baa3c3e9215e6858d0c81ce2823320fe09dc
MD5 86c5bc941d28662d16ca3a0cde6f32f0
BLAKE2b-256 552fe4a9ab232152160f2f3e945d8e3f8e19558a63cbf0acc29a31c4121d95f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 26.8 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.1.3-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 30f0f09074bf115a0384691e8ba3d64aab431192b3095a13312a93d0e8a71c07
MD5 0366087f0a9f7afeaf6674af306890d5
BLAKE2b-256 3ec4727eae164f6df65255cc7ffba19b4d94d3e0340c75642cdeb1869dcea7f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 27.6 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.1.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 eb699f54bf6d131df701e6dbbef9e91b74a065a42c9d2850964282b3c14560bb
MD5 ae613817d4c8481aa1564e14276d15dc
BLAKE2b-256 9a109311b2498b92416b54b284b7439a57d2b9f9fbba7f2af123e2842edf2aa0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.3-cp27-cp27mu-manylinux1_x86_64.whl
  • Upload date:
  • Size: 27.7 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.1.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6a82612f0e75c11d541002f49375d80b4800c967e5d2b402d5a8dd40b6c57ae6
MD5 393dee03567ba2b6639e07e6d844cebc
BLAKE2b-256 1da100a1fe67e0432953cd1eb1c91ce63a822a5e3fe65cd9e863a4f6bdcdbace

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