Grunderna i spaCy

Naturlig språkbehandling med 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.")
  • Importera spaCy
  • Använd spacy.load() för att returnera nlp, en Language-klass
    • Language-objektet är textbearbetningspipelinen
  • Använd nlp() på valfri text för att få en Doc-behållare
Naturlig språkbehandling med spaCy

spaCy NLP-pipeline

 

spaCy tillämpar flera bearbetningssteg via sin Language-klass:

spaCy Language-pipeline

Naturlig språkbehandling med spaCy

Behållarobjekt i spaCy

  • Det finns flera datastrukturer för att representera textdata i spaCy:

 

Namn Beskrivning
Doc En behållare för åtkomst till lingvistiska annotationer av text
Span Ett utsnitt från ett Doc-objekt
Token En enskild token, t.ex. ett ord, skiljetecken, blanksteg m.m.
Naturlig språkbehandling med spaCy

Pipelinekomponenter

  • spaCys språkbearbetningspipeline beror alltid på den inlästa modellen och dess funktioner.

 

Komponent Namn Beskrivning
Tokenizer Tokenizer Delar upp text i tokens och skapar ett Doc-objekt
Tagger Tagger Tilldelar ordklasstaggar
Lemmatizer Lemmatizer Reducerar ord till deras grundform
EntityRecognizer NER Identifierar och märker namngivna entiteter
Naturlig språkbehandling med spaCy

Pipelinekomponenter

 

  • Varje komponent har unika funktioner för textbearbetning

    • Language
    • DependencyParser
    • Sentencizer
Naturlig språkbehandling med spaCy

Tokenisering

  • Alltid det första steget
  • Alla andra operationer kräver tokens
  • Tokens kan vara ord, siffror och skiljetecken
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', '.']
Naturlig språkbehandling med spaCy

Meningssegmentering

  • Mer komplex än tokenisering
  • Ingår i komponenten DependencyParser
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.
Naturlig språkbehandling med spaCy

Lemmatisering

  • Ett lemma är grundformen av en token
  • Lemmat av eats och ate är eat
  • Förbättrar noggrannheten hos språkmodeller
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'), ('.', '.')]
Naturlig språkbehandling med spaCy

Nu kör vi en övning!

Naturlig språkbehandling med spaCy

Preparing Video For Download...