# Spacy-NP Annotator¶

## Chunker based noun phrase annotator¶

The noun phrase annotator is a plug-in that can be used with Spacy pipeline structure.

The annotator loads a trained SequenceChunker model that is able to predict chunk labels, creates Spacy based Span objects and applies a sequence of filtering to produce a set of noun phrases, finally, it attaches it to the document object.

The annotator implementation can be found in NPAnnotator.

### Usage example¶

Loading a Spacy pipeline and adding a sentence breaker (required) and NPAnnotator annotator as the last annotator in the pipeline:

nlp = spacy.load('en')


Parse documents regularly and get the noun phrase annotations using a dedicated method:

doc = nlp('The quick brown fox jumped over the fence')
noun_phrases = nlp_architect.pipelines.spacy_np_annotator.get_noun_phrases(doc)


## Standalone Spacy-NPAnnotator¶

For use cases in which the user is not interested in specialized Spacy pipelines we have implemented SpacyNPAnnotator which will run a Spacy pipeline internally and provide string based noun phrase chunks given documents in string format.

### Usage example¶

Just as in NPAnnotator, we need to provide a trained SequenceChunker model and its parameters file. It is also possible to provide a specific Spacy model to base the pipeline on.

The following example shows how to load a model/parameters using the default Spacy English model (en) and how to get the noun phrase annotations.

spacy_np = SpacyNPAnnotator(<model_path>, <model_parameters_path>, spacy_mode='en')
noun_phrases = spacy_np('The quick brown fox jumped over the fence')