spaCy-basics

Natural Language Processing met spaCy

Azadeh Mobasher

Principal Data Scientist

spaCy NLP-pipeline

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Importeer spaCy
  • Gebruik spacy.load() om nlp (een Language-klasse) te krijgen
    • Het Language-object is de tekstverwerkingspipeline
  • Pas nlp() toe op tekst om een Doc-container te krijgen
Natural Language Processing met spaCy

spaCy NLP-pipeline

 

spaCy voert enkele stappen uit via de Language-klasse:

spaCy Language pipeline

Natural Language Processing met spaCy

Containerobjecten in spaCy

  • spaCy heeft meerdere datastructuren om tekst te representeren:

 

Naam Beschrijving
Doc Container met taalkundige annotaties van tekst
Span Een deel van een Doc-object
Token Een individueel token, bv. woord, leesteken, spatie, enz.
Natural Language Processing met spaCy

Pipeline-onderdelen

  • De taalverwerkingspipeline van spaCy hangt altijd af van het geladen model en zijn mogelijkheden.

 

Component Naam Beschrijving
Tokenizer Tokenizer Segmenteert tekst in tokens en maakt een Doc-object
Tagger Tagger Wijs woordsoorttags toe
Lemmatizer Lemmatizer Breng woorden terug tot hun grondvorm
EntityRecognizer NER Herken en label named entities
Natural Language Processing met spaCy

Pipeline-onderdelen

 

  • Elke component heeft eigen functies om tekst te verwerken

    • Language
    • DependencyParser
    • Sentencizer
Natural Language Processing met spaCy

Tokenization

  • Altijd de eerste stap
  • Alle andere stappen hebben tokens nodig
  • Tokens kunnen woorden, cijfers en leestekens zijn
import spacy
nlp = spacy.load("en_core_web_sm")

doc = nlp("Tokenization splits a sentence into its tokens.")

print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
Natural Language Processing met spaCy

Zinssegmentatie

  • Complexer dan tokenization
  • Onderdeel van de DependencyParser-component
import spacy
nlp = spacy.load("en_core_web_sm")

text = "We are learning NLP. This course introduces spaCy."
doc = nlp(text)

for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
Natural Language Processing met spaCy

Lemmatization

  • Een lemma is de basisvorm van een token
  • Het lemma van eats en ate is eat
  • Verbetert de nauwkeurigheid van taalmodellen
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("We are seeing her after one year.")

print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'), 
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
Natural Language Processing met spaCy

Laten we oefenen!

Natural Language Processing met spaCy

Preparing Video For Download...