Eine benutzerdefinierte Entität in spaCy erstellen
Wenn die eingebauten Entitäten von spaCy nicht ausreichen, kannst du mit der Klasse EntityRuler() eigene erstellen.
EntityRuler() ermöglicht dir, eigene Entitäten zu definieren und zu einer spaCy-Pipeline hinzuzufügen.
Du beginnst, indem du eine Instanz von EntityRuler() erzeugst und ihr die aktuelle Pipeline nlp übergibst.
Anschließend kannst du add_patterns() auf der Instanz aufrufen und ihr ein Dictionary mit dem Text-pattern übergeben, das du mit einer Entität versehen möchtest.
Sobald du ein Pattern eingerichtet hast, kannst du es mit add_pipe() zur nlp-Pipeline hinzufügen.
Da Acme ein Technologieunternehmen ist, entscheidest du dich, das Pattern "smartphone" mit dem Entitätstag "PRODUCT" zu versehen.
spaCy wurde importiert und ein doc existiert bereits. Es enthält den transkribierten Text aus call_4_channel_2.wav file).
Diese Übung ist Teil des Kurses
Verarbeitung gesprochener Sprache in Python
Anleitung zur Übung
- Importiere
EntityRulerausspacy.pipeline. - Füge
"smartphone"als Wert für den Schlüssel"pattern"hinzu. - Füge die
EntityRuler()-Instanzrulerzurnlp-Pipeline hinzu. - Gib die Entitätsattribute aus, die in
docenthalten sind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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_)