Skapa en anpassad namngiven entitet i spaCy
Om spaCys inbyggda namngivna entiteter inte räcker kan du skapa egna med hjälp av spaCys EntityRuler()-klass.
EntityRuler() låter dig definiera egna entiteter och lägga till dem i en spaCy-pipeline.
Du börjar med att skapa en instans av EntityRuler() och skickar in den aktuella pipelinen, nlp.
Därefter kan du anropa add_patterns() på instansen och skicka in ett lexikon med det textmönster (pattern) du vill märka med en entitet.
När du har ställt in ett mönster lägger du till det i nlp-pipelinen med add_pipe().
Eftersom Acme är ett teknikföretag väljer du att märka mönstret "smartphone" med entitetsetiketten "PRODUCT".
spaCy har redan importerats och ett doc-objekt finns redan, som innehåller den transkriberade texten från call_4_channel_2.wav fil).
Den här övningen är en del av kursen
Taligenkänning i Python
Övningsinstruktioner
- Importera
EntityRulerfrånspacy.pipeline. - Lägg till
"smartphone"som värde för nyckeln"pattern". - Lägg till
EntityRuler()-instansenrulerinlp-pipelinen. - Skriv ut entitetsattributen i
doc.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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_)