Noțiuni de bază spaCy

Procesarea limbajului natural cu spaCy

Azadeh Mobasher

Principal Data Scientist

Pipeline-ul NLP spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Importați spaCy
  • Utilizați spacy.load() pentru a returna nlp, o clasă Language
    • Obiectul Language reprezintă pipeline-ul de procesare a textului
  • Aplicați nlp() pe orice text pentru a obține un container Doc
Procesarea limbajului natural cu spaCy

Pipeline-ul NLP spaCy

 

spaCy aplică pași de procesare prin clasa sa Language:

Pipeline-ul Language din spaCy

Procesarea limbajului natural cu spaCy

Obiecte container în spaCy

  • spaCy oferă mai multe structuri de date pentru reprezentarea textului:

 

Nume Descriere
Doc Container pentru accesarea adnotărilor lingvistice ale textului
Span O secțiune dintr-un obiect Doc
Token Un token individual, adică un cuvânt, semn de punctuație, spațiu alb etc.
Procesarea limbajului natural cu spaCy

Componentele pipeline-ului

  • Pipeline-ul de procesare spaCy depinde de modelul încărcat și de capacitățile acestuia.

 

Componentă Nume Descriere
Tokenizer Tokenizer Împarte textul în tokeni și creează obiectul Doc
Tagger Tagger Atribuie etichete morfologice
Lemmatizer Lemmatizer Reduce cuvintele la forma lor de bază
EntityRecognizer NER Detectează și etichetează entități denumite
Procesarea limbajului natural cu spaCy

Componentele pipeline-ului

 

  • Fiecare componentă are funcții unice pentru procesarea textului

    • Language
    • DependencyParser
    • Sentencizer
Procesarea limbajului natural cu spaCy

Tokenizare

  • Prima operațiune efectuată
  • Celelalte operațiuni necesită tokeni
  • Tokenii pot fi cuvinte, numere și semne de punctuație
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', '.']
Procesarea limbajului natural cu spaCy

Segmentarea propozițiilor

  • Mai complexă decât tokenizarea
  • Face parte din componenta 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.
Procesarea limbajului natural cu spaCy

Lematizare

  • O lemă este forma de bază a unui token
  • Lema lui eats și ate este eat
  • Îmbunătățește acuratețea modelelor lingvistice
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'), ('.', '.')]
Procesarea limbajului natural cu spaCy

Să exersăm!

Procesarea limbajului natural cu spaCy

Preparing Video For Download...