EntityRuler voor NER
EntityRuler kan worden gecombineerd met de EntityRecognizer van een bestaand model om de nauwkeurigheid te verhogen. In deze oefening ga je een EntityRuler-component combineren met een bestaande NER-component van het en_core_web_sm-model. Het model is al geladen als nlp.
Als EntityRuler vóór de NER-component wordt toegevoegd, respecteert de entiteitsherkenner de bestaande entiteitsspans en past hij zijn voorspellingen aan op basis van patronen die aan de EntityRuler zijn toegevoegd, om de nauwkeurigheid van het herkennen van benoemde entiteiten te verbeteren.
Deze oefening maakt deel uit van de cursus
Natural Language Processing met spaCy
Oefeninstructies
- Voeg een
EntityRulertoe aannlpvóór dener-component. - Definieer een token-entiteitspatroon om
new york group(in kleine letters) alsORGte classificeren. - Voeg de
patternstoe aan deEntityRuler-component. - Voer het model uit en print de tuple van entiteitstekst en -type voor de
Doc-container.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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.____])