EntityRuler pour la NER
EntityRuler peut être combiné avec l'EntityRecognizer d'un modèle existant pour en améliorer la précision. Dans cet exercice, vous allez pratiquer la combinaison d'un composant EntityRuler et d'un composant NER existant du modèle en_core_web_sm. Le modèle est déjà chargé sous le nom nlp.
Lorsque EntityRuler est ajouté avant le composant NER, le reconnaisseur d'entités respecte les étendues d'entités existantes et ajuste ses prédictions en fonction des modèles ajoutés à EntityRuler, afin d'améliorer la précision de la reconnaissance des entités nommées.
Cette activité fait partie du cours
Traitement du langage naturel avec spaCy
Instructions de l’exercice
- Ajoutez un
EntityRulerànlpavant le composantner. - Définissez un modèle d'entité basé sur les jetons pour classer
new york groupen minuscules commeORG. - Ajoutez les
patternsau composantEntityRuler. - Exécutez le modèle et affichez le tuple contenant le texte et le type des entités pour le conteneur
Doc.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."
# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")
# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]
# Add the patterns to the EntityRuler component
ruler.____(____)
# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])