Основи spaCy

Обробка природної мови (NLP) зі spaCy

Azadeh Mobasher

Principal Data Scientist

Конвеєр NLP у spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Імпортуйте spaCy
  • Використайте spacy.load() для створення nlp — класу Language
    • Об'єкт Language — це конвеєр обробки тексту
  • Застосуйте nlp() до будь-якого тексту, щоб отримати контейнер Doc
Обробка природної мови (NLP) зі spaCy

Конвеєр NLP у spaCy

 

spaCy виконує кроки обробки за допомогою класу Language:

Конвеєр spaCy Language

Обробка природної мови (NLP) зі spaCy

Контейнерні об'єкти в spaCy

  • У spaCy є кілька структур даних для представлення тексту:

 

Name Description
Doc Контейнер для доступу до лінгвістичних анотацій тексту
Span Фрагмент об'єкта Doc
Token Окремий токен: слово, пунктуація, пробіл тощо
Обробка природної мови (NLP) зі spaCy

Компоненти конвеєра

  • Конвеєр обробки мови в spaCy залежить від завантаженої моделі та її можливостей.

 

Component Name Description
Tokenizer Tokenizer Розбиває текст на токени та створює об'єкт Doc
Tagger Tagger Присвоює частини мови
Lemmatizer Lemmatizer Зводить слова до базових форм
EntityRecognizer NER Виявляє та позначає іменовані сутності
Обробка природної мови (NLP) зі spaCy

Компоненти конвеєра

 

  • Кожен компонент має власні можливості для обробки тексту

    • Language
    • DependencyParser
    • Sentencizer
Обробка природної мови (NLP) зі spaCy

Токенізація

  • Завжди перша операція
  • Усі інші кроки потребують токенів
  • Токени — це слова, числа та пунктуація
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', '.']
Обробка природної мови (NLP) зі spaCy

Сегментація речень

  • Складніша за токенізацію
  • Є частиною компонента 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.
Обробка природної мови (NLP) зі spaCy

Лематизація

  • Лема — це базова форма токена
  • Лема слів eats і ateeat
  • Підвищує точність мовних моделей
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'), ('.', '.')]
Обробка природної мови (NLP) зі spaCy

Давайте потренуємось!

Обробка природної мови (NLP) зі spaCy

Preparing Video For Download...