Навчання в spaCy

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

Azadeh Mobasher

Principal Data Scientist

Кроки навчання

 

  1. Розмітьте й підготуйте вхідні дані
  2. Вимкніть інші компоненти конвеєра
  3. Тренуйте модель кілька епох
  4. Оцініть якість моделі
Обробка природної мови (NLP) зі spaCy

Вимкнення інших компонентів конвеєра

 

  • Вимкніть усі компоненти конвеєра, окрім NER:

 

other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']

nlp.disable_pipes(*other_pipes)
Обробка природної мови (NLP) зі spaCy

Процедура навчання моделі

  • Пройдіть тренувальний набір кілька разів; одна ітерація — це epoch.
  • У кожній епосі трохи оновлюйте ваги моделі.
  • Оптимізатори оновлюють ваги моделі.
optimizer = nlp.create_optimizer()
losses = {}
for i in range(epochs):
  random.shuffle(training_data)

for text, annotation in training_data: doc = nlp.make_doc(text) example = Example.from_dict(doc, annotation)
nlp.update([example], sgd = optimizer, losses=losses)
Обробка природної мови (NLP) зі spaCy

Збереження та завантаження моделі

 

  • Збережіть натреновану модель NER:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Завантажте збережену модель:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Обробка природної мови (NLP) зі spaCy

Модель для інференсу

 

  • Використовуйте збережену модель для інференсу.

 

  • Застосуйте модель NER і збережіть кортежі (entity text, entity label):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Обробка природної мови (NLP) зі spaCy

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

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

Preparing Video For Download...