Best practices voor het trainen van spaCy-modellen

Geavanceerde NLP met spaCy

Ines Montani

spaCy core developer

Probleem 1: Modellen kunnen dingen "vergeten"

  • Bestaand model kan overfitten op nieuwe data
    • bv.: als je alleen WEBSITE update, kan het "verleren" wat PERSON is
  • Dit heet ook wel "catastrophic forgetting"
Geavanceerde NLP met spaCy

Oplossing 1: Meng eerder correcte voorspellingen mee

  • Voeg bij training op WEBSITE ook voorbeelden van PERSON toe
  • Laat het bestaande spaCy-model over je data lopen en neem andere relevante entiteiten mee

SLECHT:

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

GOED:

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

Probleem 2: Modellen kunnen niet alles leren

  • spaCy-modellen voorspellen op basis van lokale context
  • Leren is lastig als de beslissing niet uit de context te halen is
  • Labelschema moet consistent zijn en niet te specifiek
    • Voorbeeld: CLOTHING is beter dan ADULT_CLOTHING en CHILDRENS_CLOTHING
Geavanceerde NLP met spaCy

Oplossing 2: Plan je labelschema zorgvuldig

  • Kies categorieën die in de lokale context herkenbaar zijn
  • Liever algemener dan te specifiek
  • Gebruik regels om van generieke labels naar specifieke categorieën te gaan

SLECHT:

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

GOED:

LABELS = ['CLOTHING', 'BAND']
Geavanceerde NLP met spaCy

Laten we oefenen!

Geavanceerde NLP met spaCy

Preparing Video For Download...