Podstawy spaCy

Przetwarzanie języka naturalnego z użyciem spaCy

Azadeh Mobasher

Principal Data Scientist

Potok NLP w spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Zaimportuj spaCy
  • Użyj spacy.load(), aby zwrócić nlp, klasę Language
    • Obiekt Language to potok przetwarzania tekstu
  • Zastosuj nlp() na dowolnym tekście, aby uzyskać kontener Doc
Przetwarzanie języka naturalnego z użyciem spaCy

Potok NLP w spaCy

 

spaCy stosuje kolejne kroki przetwarzania za pomocą klasy Language:

Potok Language w spaCy

Przetwarzanie języka naturalnego z użyciem spaCy

Obiekty kontenerów w spaCy

  • W spaCy istnieje kilka struktur danych do reprezentowania tekstu:

 

Nazwa Opis
Doc Kontener zapewniający dostęp do adnotacji językowych tekstu
Span Fragment obiektu Doc
Token Pojedynczy token, np. słowo, znak interpunkcyjny, spacja itd.
Przetwarzanie języka naturalnego z użyciem spaCy

Komponenty potoku

  • Potok przetwarzania języka spaCy zależy od załadowanego modelu i jego możliwości.

 

Komponent Nazwa Opis
Tokenizer Tokenizer Segmentuje tekst na tokeny i tworzy obiekt Doc
Tagger Tagger Przypisuje znaczniki części mowy
Lemmatizer Lemmatizer Sprowadza słowa do ich form podstawowych
EntityRecognizer NER Wykrywa i etykietuje nazwane encje
Przetwarzanie języka naturalnego z użyciem spaCy

Komponenty potoku

 

  • Każdy komponent ma unikalne funkcje do przetwarzania tekstu

    • Language
    • DependencyParser
    • Sentencizer
Przetwarzanie języka naturalnego z użyciem spaCy

Tokenizacja

  • Zawsze pierwsza operacja
  • Wszystkie inne operacje wymagają tokenów
  • Tokeny to słowa, liczby i znaki interpunkcyjne
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', '.']
Przetwarzanie języka naturalnego z użyciem spaCy

Segmentacja zdań

  • Bardziej złożona niż tokenizacja
  • Jest częścią komponentu 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.
Przetwarzanie języka naturalnego z użyciem spaCy

Lematyzacja

  • Lemat to podstawowa forma tokenu
  • Lematem eats i ate jest eat
  • Zwiększa dokładność modeli językowych
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'), ('.', '.')]
Przetwarzanie języka naturalnego z użyciem spaCy

Czas na ćwiczenia!

Przetwarzanie języka naturalnego z użyciem spaCy

Preparing Video For Download...