Antrenare cu spaCy

Procesarea limbajului natural cu spaCy

Azadeh Mobasher

Principal Data Scientist

Etapele antrenării

 

  1. Adnotați și pregătiți datele de intrare
  2. Dezactivați celelalte componente ale pipeline-ului
  3. Antrenați un model pentru câteva epoci
  4. Evaluați performanța modelului
Procesarea limbajului natural cu spaCy

Dezactivarea celorlalte componente ale pipeline-ului

 

  • Dezactivați toate componentele pipeline-ului, cu excepția NER:

 

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

nlp.disable_pipes(*other_pipes)
Procesarea limbajului natural cu spaCy

Procedura de antrenare a modelului

  • Parcurgeți setul de antrenare de mai multe ori; o iterație se numește epoch.
  • La fiecare epocă, actualizați ponderea modelului cu o valoare mică.
  • Optimizatorii actualizează ponderile modelului.
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)
Procesarea limbajului natural cu spaCy

Salvarea și încărcarea unui model antrenat

 

  • Salvați un model NER antrenat:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Încărcați modelul salvat:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Procesarea limbajului natural cu spaCy

Model pentru inferență

 

  • Utilizați un model salvat pentru inferență.

 

  • Aplicați modelul NER și stocați tupluri (text entitate, etichetă entitate):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Procesarea limbajului natural cu spaCy

Să exersăm!

Procesarea limbajului natural cu spaCy

Preparing Video For Download...