Začněte nyníZačněte zdarma

Trénování modelu spaCy od nuly

spaCy nabízí velmi čistý a efektivní způsob, jak si natrénovat vlastní modely. V tomto cvičení natrénuješ NER model od nuly na reálném korpusu (data CORD-19).

Trénovací data jsou k dispozici ve správném formátu jako training_data. Použiješ daný seznam štítků ("Pathogen", "MedicalCondition", "Medicine") uložený v proměnné labels a prázdný anglický model (nlp) s komponentou NER. Zamýšlené medicínské labels se přidají do NER pipeline a pak model natrénuješ na jednu epochu. Pro převod trénovacích dat do požadovaného formátu můžeš využít předimportovanou třídu Example. Pro sledování průběhu trénování přidej seznam losses do metody .update() a sleduj trénovací ztrátu.

Toto cvičení je součástí kurzu

Zpracování přirozeného jazyka s knihovnou spaCy

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř prázdný model spaCy a přidej do něj komponentu NER.
  • Vypni ostatní komponenty pipeline, použij vytvořený objekt optimizer a aktualizuj váhy modelu pomocí dat převedených do formátu Example.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód