ÎncepețiÎncepe gratuit

Antrenarea unui model spaCy de la zero

spaCy oferă o abordare clară și eficientă pentru a-ți antrena propriile modele. În acest exercițiu, vei antrena un model NER de la zero pe un corpus real (date CORD-19).

Datele de antrenament sunt disponibile în formatul corect, sub numele training_data. Vei folosi o listă predefinită de etichete ("Pathogen", "MedicalCondition", "Medicine") stocată în labels, împreună cu un model englez gol (nlp) care include o componentă NER. Etichetele medicale din labels vor fi adăugate în pipeline-ul NER, după care poți antrena modelul timp de un epoch. Folosește clasa Example (deja importată) pentru a converti datele de antrenament în formatul necesar. Pentru a urmări procesul de antrenament, poți adăuga o listă losses la metoda .update() și analiza pierderea înregistrată.

Acest exercițiu face parte din cursul

Procesarea limbajului natural cu spaCy

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un model spaCy gol și adaugă o componentă NER în acesta.
  • Dezactivează celelalte componente din pipeline, folosește obiectul optimizer creat și actualizează ponderile modelului utilizând datele convertite în formatul Example.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul