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
Oefeninstructies
- Print een lijst met tuples van entiteitstekst en -type in
example_textmet hetnlp-model. - Definieer meerdere patronen om de tokens in kleine letters
brotherensisterste matchen met het labelPERSON. - Voeg een
EntityRuler-component toe aan denlp-pipeline en voeg depatternstoe aan deEntityRuler. - Print een tuple van tekst en type van de entiteiten voor
example_textmet hetnlp-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).____])