EntityRuler avec plusieurs gabarits dans spaCy
EntityRuler vous permet d'ajouter des entités à doc.ents et d'améliorer la performance de reconnaissance d'entités nommées. Dans cet exercice, vous allez pratiquer l'ajout d'un composant EntityRuler à un pipeline nlp existant afin de vérifier que plusieurs entités sont correctement classées.
Le modèle en_core_web_sm est déjà chargé et accessible sous le nom nlp. Vous avez accès à un texte d'exemple dans example_text et pouvez utiliser nlp et doc pour accéder respectivement à un modèle spaCy et au conteneur Doc de example_text.
Cette activité fait partie du cours
Traitement du langage naturel avec spaCy
Instructions de l’exercice
- Affichez une liste de tuples (texte de l'entité, type) dans
example_textavec le modèlenlp. - Définissez plusieurs gabarits pour faire correspondre en minuscules
brotheretsistersà l'étiquettePERSON. - Ajoutez un composant
EntityRulerau pipelinenlpet ajoutez lespatternsàEntityRuler. - Affichez un tuple (texte, type) des entités pour
example_textavec le modèlenlp.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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).____])