Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Voeg een EntityRuler toe aan nlp vóór de ner-component.
  • Definieer een token-entiteitspatroon om new york group (in kleine letters) als ORG te classificeren.
  • Voeg de patterns toe aan de EntityRuler-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.____])
Code bewerken en uitvoeren