Конвейеры spaCy

Обработка естественного языка с помощью spaCy

Azadeh Mobasher

Principal Data Scientist

Конвейеры spaCy

 

  • spaCy сначала токенизирует текст и создаёт объект Doc
  • Затем Doc проходит несколько шагов конвейера обработки

 

import spacy
nlp = spacy.load("en_core_web_sm")

doc = nlp(example_text)
Обработка естественного языка с помощью spaCy

Конвейеры spaCy

  • Конвейер — это последовательность компонентов, обрабатывающих данные
  • Конвейер spaCy для NER:
    • Токенизация
    • Выявление именованных сущностей
    • Классификация именованных сущностей  

Пример конвейера spaCy для NER

print([ent.text for ent in doc.ents])
Обработка естественного языка с помощью spaCy

Добавление компонентов

 

  • sentencizer: компонент конвейера spaCy для сегментации предложений.
text = " ".join(["This is a test sentence."]*10000)

en_core_sm_nlp = spacy.load("en_core_web_sm") start_time = time.time() doc = en_core_sm_nlp(text)
print(f"Finished processing with en_core_web_sm model in {round((time.time() - start_time)/60.0 , 5)} minutes")
>>> Finished processing with en_core_web_sm model in 0.09332 minutes
Обработка естественного языка с помощью spaCy

Добавление компонентов

 

  • Создайте пустую модель и добавьте компонент sentencizer:
blank_nlp = spacy.blank("en")

blank_nlp.add_pipe("sentencizer")
start_time = time.time() doc = blank_nlp(text) print(f"Finished processing with blank model in {round((time.time() - start_time)/60.0 , 5)} minutes")
>>> Finished processing with blank model in 0.00091 minutes
Обработка естественного языка с помощью spaCy

Анализ компонентов конвейера

  • nlp.analyze_pipes() анализирует конвейер spaCy и определяет:
    • Атрибуты, задаваемые компонентами конвейера
    • Метрики, которые компонент выдаёт при обучении
    • Наличие всех необходимых атрибутов

 

  • Если задать pretty равным True, результат будет выведен в виде таблицы, а не только в структурированном формате.
import spacy

nlp = spacy.load("en_core_web_sm")
analysis = nlp.analyze_pipes(pretty=True)
Обработка естественного языка с помощью spaCy

Анализ компонентов конвейера

Результат метода analyze_pipes

Обработка естественного языка с помощью spaCy

Давайте потренируемся!

Обработка естественного языка с помощью spaCy

Preparing Video For Download...