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.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.

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.1.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.1-cp37-cp37m-win_amd64.whl (26.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7m

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

Uploaded CPython 3.6mWindows x86-64

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5mWindows x86-64

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

Uploaded CPython 3.5m

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

Uploaded CPython 2.7mu

File details

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

File metadata

  • Download URL: spacy-2.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 809561162007bdda8a8a07cded52983e848b1a83de6dc3e8b025007bbcdb3994
MD5 646f38d6e6a5337516ca52033626328c
BLAKE2b-256 0702ef131c958721f46fa72915124e088364ba7696d2efd6d0e8f44b27250f17

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f80984707402947a9b75ed54b2f25d9880fc2d65d78fcf8dab36b8bb61da5ccf
MD5 d74c61bc738d58263b61aaf2f2df0410
BLAKE2b-256 46d7d0f5990f044b0396679740364f65cdcf3edd5b928288a5cb0c14c927852d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fcaa16f65510dfcfdf3785bc31e9c304a3999c313fa21b2ce60d30b7b017a95d
MD5 67446ce49fdc9b533de2bfbff4b56adc
BLAKE2b-256 22f19a7bd2ea2953432c7053b3f7c3eac40be676d35f40954afd1537484432da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 55756b1f999c6bede1fb5d0a0d2088c8a044670138c3f9b9a9866fda052433c2
MD5 5cb72e069eff8b1b2e7e9c56c8b73d59
BLAKE2b-256 a126a319ea69cd42795559927c03f1ae90e369af4b106838be5b5115d4cd83ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6420c1b7a9d343e9b147e4b1993fc93b87648a591e6b44ba4d9d547a67265d70
MD5 64edc048d85da76598eb1c7e2967ec5a
BLAKE2b-256 9b5103fdea815043aea565b1d52c01d4bfba1f62b54a47e01cd2c1270c27cd51

See more details on using hashes here.

File details

Details for the file spacy-2.1.1-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.1-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 2a8d3c5a34015732f831d884949d7147fe0cf2799705a4c7addaab42472e20b7
MD5 1733733a8161b1460f7e6162fcd10b3f
BLAKE2b-256 3bf850079eb046e097eff191a941156a7c957bcd5acb6636b6c22e84fa36e7aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 d97e5abd897ff17d14db6b18f2df5834ab6ddc29d9fc2e6f17dd54acdcbd19a3
MD5 05ef649856acbe5ac0fb643c1b21f660
BLAKE2b-256 b9e17cbb5c31293a8e70fd577672614379539f961e4d3d6c0895ef787db66591

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3cb8ff31d07be4aa0c5462bd417887c1f995e69368950a675c3368821d796625
MD5 5d99d1da81d637b8ffcaa0a23dc521e9
BLAKE2b-256 9455232445b46dd92c086f7269d575b0015f894eb639e8f34c721474f3213ac9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spacy-2.1.1-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.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 50651d94c7ef9ec325fbfceb712ae52e903b43d3ded524957cd5265976d4147a
MD5 bae7e2a1c4e68f7292700e6ca3b00a47
BLAKE2b-256 2f421bcb3cb30dd5018b9a83737b97825974f3d3028f6fbcfcc52105c2c1d663

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