Aan de slagGa gratis aan de slag

EntityRuler met meerdere patronen in spaCy

EntityRuler laat je entiteiten toevoegen aan doc.ents en zo de prestaties van named entity recognition verbeteren. In deze oefening ga je een EntityRuler-component toevoegen aan een bestaande nlp-pipeline om te zorgen dat meerdere entiteiten correct worden geclassificeerd.

Het model en_core_web_sm is al geladen en beschikbaar als nlp. Je hebt voorbeeldtekst in example_text en kunt nlp en doc gebruiken om respectievelijk het spaCy-model en de Doc-container van example_text te benaderen.

Deze oefening maakt deel uit van de cursus

Natural Language Processing met spaCy

Cursus bekijken

Oefeninstructies

  • Print een lijst met tuples van entiteitstekst en -type in example_text met het nlp-model.
  • Definieer meerdere patronen om de tokens in kleine letters brother en sisters te matchen met het label PERSON.
  • Voeg een EntityRuler-component toe aan de nlp-pipeline en voeg de patterns toe aan de EntityRuler.
  • Print een tuple van tekst en type van de entiteiten voor example_text met het nlp-model.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

nlp = spacy.load("en_core_web_md")

# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")

# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
            {"label": ____, "pattern": [{"lower": ____}]}]

# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)

# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])
Code bewerken en uitvoeren