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 vous entraîner à combiner un composant EntityRuler avec 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 déjà présentes et ajuste ses prédictions en fonction des motifs ajoutés à EntityRuler, afin d’améliorer la précision de la reconnaissance des entités nommées.
Cet exercice fait partie du cours
Traitement du langage naturel avec spaCy
Instructions
- Ajoutez un
EntityRulerànlpavant le composantner. - Définissez un motif d’entité basé sur des tokens 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 cet exemple de code.
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.____])