EntityRuler avec plusieurs motifs dans spaCy
EntityRuler vous permet d’ajouter des entités à doc.ents et d’améliorer les performances de la reconnaissance d’entités nommées. Dans cet exercice, vous allez vous entraîner à ajouter un composant EntityRuler à un pipeline nlp existant afin de garantir que plusieurs entités soient correctement classifiées.
Le modèle en_core_web_sm est déjà chargé et accessible via nlp. Vous pouvez accéder à un texte d’exemple dans example_text et utiliser nlp et doc pour accéder respectivement à un modèle spaCy et au conteneur Doc de example_text.
Cet exercice fait partie du cours
Traitement du langage naturel avec spaCy
Instructions
- Affichez une liste de tuples contenant le texte et le type des entités dans
example_textavec le modèlenlp. - Définissez plusieurs motifs pour faire correspondre en minuscules
brotheretsistersà l’étiquettePERSON. - Ajoutez un composant
EntityRulerau pipelinenlpet ajoutez lespatternsàEntityRuler. - Affichez les tuples (texte, type) des entités pour
example_textavec le modèlenlp.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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).____])