The SpaCy library supports a range of ‘basic’ NLP tasks, including sentence splitting, tokenization, tagging and lemmatization, and dependency parsing—for about half a dozen European languages. SpaCy is somewhat similar on the surface to the Natural Language Toolkit (NLTK) but prides itself of both higher-quality analysis and better computational efficiency.
The module nlpl-nltk provides a SpaCy installation in a Python 3.5 virtual environment.
module use -a /proj*/nlpl/software/modulefiles module load nlpl-spacy
This installation (just as other NLPL-maintained Python virtual environments) can be combined with other Python-based modules, for example the NLPL installations of PyTorch or TensorFlow. To ‘stack’ multiple Python environments, they can simply be loaded together, e.g.
module load nlpl-spacy nlpl-tensorflow
Because PyTorch and TensorFlow are ‘special’ in their requirements for dynamic libraries and support for both cpu and gpu nodes, it is important for them to be activated last, i.e. on the ‘top’ of a multi-module stack.
As of October 2018, version 2.0.12 is installed.
After a ‘standard’ NLPL virtual environment and module definition have been created:
module load nlpl-spacy pip install spacy for i in en de es pt fr it nl xx; do python -m spacy download $i; done