Trénování se spaCy

Zpracování přirozeného jazyka s knihovnou spaCy

Azadeh Mobasher

Principal Data Scientist

Kroky trénování

 

  1. Anotace a příprava vstupních dat
  2. Deaktivace ostatních komponent pipeline
  3. Trénování modelu na několik epoch
  4. Vyhodnocení výkonu modelu
Zpracování přirozeného jazyka s knihovnou spaCy

Deaktivace ostatních komponent pipeline

 

  • Deaktivace všech komponent pipeline kromě NER:

 

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

nlp.disable_pipes(*other_pipes)
Zpracování přirozeného jazyka s knihovnou spaCy

Postup trénování modelu

  • Trénovací sada se prochází opakovaně; jedna iterace se nazývá epoch.
  • V každé epoše se váhy modelu aktualizují o malou hodnotu.
  • Optimizátory aktualizují váhy 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)
Zpracování přirozeného jazyka s knihovnou spaCy

Uložení a načtení natrénovaného modelu

 

  • Uložení natrénovaného modelu NER:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Načtení uloženého modelu:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Zpracování přirozeného jazyka s knihovnou spaCy

Model pro inferenci

 

  • Použití uloženého modelu při inferenci.

 

  • Aplikace modelu NER a uložení n-tic (text entity, štítek entity):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Zpracování přirozeného jazyka s knihovnou spaCy

Pojďme cvičit!

Zpracování přirozeného jazyka s knihovnou spaCy

Preparing Video For Download...