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
Oefeninstructies
- Importeer
EntityRuleruitspacy.pipeline. - Voeg
"smartphone"toe als de waarde voor de sleutel"pattern". - Voeg de
EntityRuler()-instance,ruler, toe aan denlp-pipeline. - Print de entiteit-attributen die in
doczitten.
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_)