CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Affichez une liste de tuples (texte de l'entité, type) dans example_text avec le modèle nlp.
  • Définissez plusieurs gabarits pour faire correspondre en minuscules brother et sisters à l'étiquette PERSON.
  • Ajoutez un composant EntityRuler au pipeline nlp et ajoutez les patterns à EntityRuler.
  • Affichez un tuple (texte, type) des entités pour example_text avec le modèle nlp.

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).____])
Modifier et exécuter le code