Träning med spaCy

Naturlig språkbehandling med spaCy

Azadeh Mobasher

Principal Data Scientist

Träningssteg

 

  1. Annotera och förbered indata
  2. Inaktivera övriga pipeline-komponenter
  3. Träna en modell i några epoker
  4. Utvärdera modellens prestanda
Naturlig språkbehandling med spaCy

Inaktivera övriga pipeline-komponenter

 

  • Inaktivera alla pipeline-komponenter utom NER:

 

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

nlp.disable_pipes(*other_pipes)
Naturlig språkbehandling med spaCy

Modellträningsprocedur

  • Iterera över träningsdatan flera gånger; en iteration kallas epoch.
  • I varje epok uppdateras modellens vikter med ett litet värde.
  • Optimerare uppdaterar modellvikterna.
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)
Naturlig språkbehandling med spaCy

Spara och läs in en tränad modell

 

  • Spara en tränad NER-modell:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Läs in den sparade modellen:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Naturlig språkbehandling med spaCy

Modell för inferens

 

  • Använd en sparad modell för inferens.

 

  • Tillämpa NER-modellen och lagra tupler av (entitetens text, entitetens etikett):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Naturlig språkbehandling med spaCy

Nu kör vi en övning!

Naturlig språkbehandling med spaCy

Preparing Video For Download...