Best practice per addestrare i modelli spaCy

NLP avanzato con spaCy

Ines Montani

spaCy core developer

Problema 1: i modelli possono “dimenticare”

  • Un modello esistente può overfittare sui nuovi dati
    • es.: se lo aggiorni solo con WEBSITE, può “disimparare” cos’è una PERSON
  • Chiamato anche problema della “catastrophic forgetting”
NLP avanzato con spaCy

Soluzione 1: mescola le previsioni già corrette

  • Ad esempio, se stai addestrando WEBSITE, includi anche esempi di PERSON
  • Esegui il modello spaCy esistente sui dati ed estrai le altre entità rilevanti

SBAGLIATO:

TRAINING_DATA = [
    ('Reddit is a website', {'entities': [(0, 6, 'WEBSITE')]})
]

CORRETTO:

TRAINING_DATA = [
    ('Reddit is a website', {'entities': [(0, 6, 'WEBSITE')]}),
    ('Obama is a person', {'entities': [(0, 5, 'PERSON')]})
]
NLP avanzato con spaCy

Problema 2: i modelli non possono imparare tutto

  • I modelli di spaCy prevedono in base al contesto locale
  • Il modello fatica se la decisione è difficile da dedurre dal contesto
  • Lo schema di etichette deve essere coerente e non troppo specifico
    • Es.: CLOTHING è meglio di ADULT_CLOTHING e CHILDRENS_CLOTHING
NLP avanzato con spaCy

Soluzione 2: pianifica bene lo schema di etichette

  • Scegli categorie visibili nel contesto locale
  • Meglio generiche che troppo specifiche
  • Usa regole per passare da etichette generiche a categorie specifiche

SBAGLIATO:

LABELS = ['ADULT_SHOES', 'CHILDRENS_SHOES', 'BANDS_I_LIKE']

CORRETTO:

LABELS = ['CLOTHING', 'BAND']
NLP avanzato con spaCy

Passiamo alla pratica!

NLP avanzato con spaCy

Preparing Video For Download...