Trening z spaCy

Przetwarzanie języka naturalnego z użyciem spaCy

Azadeh Mobasher

Principal Data Scientist

Etapy treningu

 

  1. Adnotacja i przygotowanie danych wejściowych
  2. Wyłączenie pozostałych komponentów potoku
  3. Trening modelu przez kilka epok
  4. Ocena wydajności modelu
Przetwarzanie języka naturalnego z użyciem spaCy

Wyłączanie pozostałych komponentów potoku

 

  • Wyłączenie wszystkich komponentów potoku z wyjątkiem NER:

 

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

nlp.disable_pipes(*other_pipes)
Przetwarzanie języka naturalnego z użyciem spaCy

Procedura treningu modelu

  • Wielokrotne przechodzenie przez zbiór treningowy; jedna iteracja to epoch.
  • W każdej epoce wagi modelu są aktualizowane o małą wartość.
  • Optymalizatory aktualizują wagi modelu.
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)
Przetwarzanie języka naturalnego z użyciem spaCy

Zapisywanie i wczytywanie modelu

 

  • Zapisywanie wytrenowanego modelu NER:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Wczytywanie zapisanego modelu:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Przetwarzanie języka naturalnego z użyciem spaCy

Model do inferencji

 

  • Użycie zapisanego modelu do inferencji.

 

  • Zastosowanie modelu NER i przechowywanie krotek (tekst encji, etykieta encji):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Przetwarzanie języka naturalnego z użyciem spaCy

Czas na ćwiczenia!

Przetwarzanie języka naturalnego z użyciem spaCy

Preparing Video For Download...