💫 Industrial-strength Natural Language Processing (NLP) in Python
Go to file
2016-05-05 01:31:58 +02:00
bin define German dummy lemmatizer until morphology is done 2016-05-02 16:04:53 +02:00
contributors Add contributor. 2015-10-07 17:55:46 -07:00
corpora/en * Add wordnet 2015-09-21 19:06:48 +10:00
examples remove deprecated LOCAL_DATA_DIR 2016-04-05 11:25:54 +02:00
include add stdint.h fallback (vs 2008) 2016-04-29 00:08:14 +02:00
lang_data * Add initial stuff for Chinese parsing 2016-04-24 18:44:24 +02:00
spacy * Add tests for Issue #361: Lexeme rich comparison 2016-05-05 01:31:58 +02:00
website Update GitHub links 2016-04-01 02:23:52 +11:00
.gitignore Update gitignore for website 2016-04-01 00:36:56 +11:00
.travis.yml Update .travis.yml 2016-02-09 19:34:24 +01:00
buildbot.json can't work around build issue on windows 2016-05-01 12:30:59 +02:00
fabfile.py Merge branch 'master' of https://github.com/honnibal/spaCy 2015-12-28 18:03:06 +01:00
LICENSE Update LICENSE 2016-04-29 09:49:28 +02:00
MANIFEST.in cleanup 2016-03-13 18:12:32 +01:00
package.json Update package.json 2016-04-08 14:48:47 +02:00
README.rst Fix code format in README.rst 2016-05-05 00:25:19 +10:00
requirements.txt pin numpy to >=1.7, ship headers 2016-04-19 19:50:42 +02:00
setup.py * Register zh package in setup.py 2016-05-03 14:36:59 +02:00
wordnet_license.txt * Add WordNet license file 2015-02-01 16:11:53 +11:00

.. image:: https://travis-ci.org/spacy-io/spaCy.svg?branch=master
    :target: https://travis-ci.org/spacy-io/spaCy

==============================
spaCy: Industrial-strength NLP
==============================

spaCy is a library for advanced natural language processing in Python and Cython.

Documentation and details: https://spacy.io/

spaCy is built on the very latest research, but it isn't researchware.  It was
designed from day 1 to be used in real products. It's commercial open-source
software, released under the MIT license.

2016-04-05 v0.100.7: German!
----------------------------

spaCy finally supports another language, in addition to English. We're lucky to have Wolfgang Seeker on the team, and the new German model is just the beginning.
Now that there are multiple languages, you should consider loading spaCy via the load() function. This function also makes it easier to load extra word vector data for English:

.. code:: python

    import spacy
    en_nlp = spacy.load('en', vectors='en_glove_cc_300_1m_vectors')
    de_nlp = spacy.load('de')
    
To support use of the load function, there are also two new helper functions: spacy.get_lang_class and spacy.set_lang_class.
Once the German model is loaded, you can use it just like the English model:

.. code:: python

    doc = nlp(u'''Wikipedia ist ein Projekt zum Aufbau einer Enzyklopädie aus freien Inhalten, zu dem du mit deinem Wissen beitragen kannst. Seit Mai 2001 sind 1.936.257 Artikel in deutscher Sprache entstanden.''')
    
    for sent in doc.sents:
        print(sent.root.text, sent.root.n_lefts, sent.root.n_rights)
    
    # (u'ist', 1, 2)
    # (u'sind', 1, 3)
    
The German model provides tokenization, POS tagging, sentence boundary detection, syntactic dependency parsing, recognition of organisation, location and person entities, and word vector representations trained on a mix of open subtitles and Wikipedia data. It doesn't yet provide lemmatisation or morphological analysis, and it doesn't yet recognise numeric entities such as numbers and dates.

Bugfixes
--------

* spaCy < 0.100.7 had a bug in the semantics of the Token.__str__ and Token.__unicode__ built-ins: they included a trailing space.
* Improve handling of "infixed" hyphens. Previously the tokenizer struggled with multiple hyphens, such as "well-to-do".

* Improve handling of periods after mixed-case tokens

* Improve lemmatization for English special-case tokens

* Fix bug that allowed spaces to be treated as heads in the syntactic parse

* Fix bug that led to inconsistent sentence boundaries before and after serialisation.

* Fix bug from deserialising untagged documents.

Features
--------

* Labelled dependency parsing (91.8% accuracy on OntoNotes 5)

* Named entity recognition (82.6% accuracy on OntoNotes 5)

* Part-of-speech tagging (97.1% accuracy on OntoNotes 5)

* Easy to use word vectors

* All strings mapped to integer IDs

* Export to numpy data arrays

* Alignment maintained to original string, ensuring easy mark up calculation

* Range of easy-to-use orthographic features.

* No pre-processing required. spaCy takes raw text as input, warts and newlines and all.

Top Peformance
--------------

* Fastest in the world: <50ms per document.  No faster system has ever been
  announced.

* Accuracy within 1% of the current state of the art on all tasks performed
  (parsing, named entity recognition, part-of-speech tagging).  The only more
  accurate systems are an order of magnitude slower or more.

Supports
--------

* CPython 2.6, 2.7, 3.3, 3.4, 3.5 (only 64 bit)
* OSX
* Linux
* Windows (Cygwin, MinGW, Visual Studio)