Aan de slagGa gratis aan de slag

Een aangepaste named entity maken in spaCy

Als de ingebouwde named entities van spaCy niet genoeg zijn, kun je je eigen entiteiten maken met de klasse EntityRuler() van spaCy.

Met EntityRuler() kun je je eigen entiteiten maken en toevoegen aan een spaCy-pipeline.

Je begint met het maken van een instance van EntityRuler() en geeft daarbij de huidige pipeline, nlp, door.

Daarna kun je add_patterns() aanroepen op de instance en er een woordenboek aan doorgeven met het tekst-pattern dat je wilt labelen met een entiteit.

Zodra je een pattern hebt ingesteld, kun je het toevoegen aan de nlp-pipeline met add_pipe().

Omdat Acme een technologiebedrijf is, besluit je het pattern "smartphone" te taggen met het "PRODUCT"-entitylabel.

spaCy is geïmporteerd en er bestaat al een doc met de getranscribeerde tekst uit call_4_channel_2.wav bestand).

Deze oefening maakt deel uit van de cursus

Spoken Language Processing in Python

Cursus bekijken

Oefeninstructies

  • Importeer EntityRuler uit spacy.pipeline.
  • Voeg "smartphone" toe als de waarde voor de sleutel "pattern".
  • Voeg de EntityRuler()-instance, ruler, toe aan de nlp-pipeline.
  • Print de entiteit-attributen die in doc zitten.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Import EntityRuler class
from spacy.pipeline import ____

# Create EntityRuler instance
ruler = EntityRuler(nlp)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Update existing pipeline
nlp.add_pipe(____, before="ner")

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
Code bewerken en uitvoeren