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
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
optimizera aktualizuj váhy modelu pomocí dat převedených do formátuExample.
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)