Trainen met spaCy

Natural Language Processing met spaCy

Azadeh Mobasher

Principal Data Scientist

Trainingsstappen

 

  1. Annoteer en bereid inputdata voor
  2. Schakel andere pipeline-onderdelen uit
  3. Train een model voor een paar epochs
  4. Evalueer de modelprestatie
Natural Language Processing met spaCy

Andere pipeline-onderdelen uitschakelen

 

  • Schakel alle pipeline-onderdelen uit behalve NER:

 

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

nlp.disable_pipes(*other_pipes)
Natural Language Processing met spaCy

Modeltrainingsprocedure

  • Loop meerdere keren over de trainingsset; één iteratie heet een epoch.
  • Update in elke epoch de modelgewichten met een kleine stap.
  • Optimizers updaten de modelgewichten.
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)
Natural Language Processing met spaCy

Getraind model opslaan en laden

 

  • Sla een getraind NER-model op:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Laad het opgeslagen model:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Natural Language Processing met spaCy

Model voor inferentie

 

  • Gebruik een opgeslagen model voor inferentie.

 

  • Pas het NER-model toe en sla tuples op van (entiteitstekst, entiteitslabel):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Natural Language Processing met spaCy

Laten we oefenen!

Natural Language Processing met spaCy

Preparing Video For Download...