ПочатиПочніть безкоштовно

Навчання моделі spaCy з нуля

spaCy пропонує дуже простий і ефективний підхід до навчання власних моделей. У цій вправі ви навчите модель NER з нуля на реальному корпусі (дані CORD-19).

Навчальні дані вже підготовлені у потрібному форматі як training_data. У цій вправі ви використаєте заданий список міток («Pathogen», «MedicalCondition», «Medicine»), збережений у labels, разом із порожньою англомовною моделлю (nlp) з компонентом NER. Вказані медичні labels буде додано до конвеєра NER, після чого ви зможете потренувати модель одну епоху. Ви можете використати попередньо імпортований клас Example, щоб перетворити навчальні дані у потрібний формат. Щоб відстежувати процес навчання моделі, додайте список losses до методу .update() і переглядайте значення функції втрат.

Ця вправа є частиною курсу

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

Переглянути курс

Інструкції до вправи

  • Створіть порожню модель spaCy та додайте до неї компонент NER.
  • Вимкніть інші компоненти конвеєра, використайте створений об'єкт optimizer і оновіть ваги моделі, застосувавши перетворені дані у формат Example.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Load a blank English model, add NER component, add given labels to the ner pipeline
nlp = spacy.____("____")
ner = nlp.____("ner")
for ent in labels:
    ner.add_label(ent)

# Disable other pipeline components, complete training loop and run training loop
other_pipes = [____ for pipe in nlp.____ if ____ != "____"]
nlp.disable_pipes(*____)
losses = {}
optimizer = nlp.begin_training()
for text, annotation in training_data:
    doc = nlp.____(text)
    example = Example.____(doc, annotation)
    nlp.____([example], sgd=____, losses=losses)
    print(losses)
Редагувати та запускати код