LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere EntityRuler aus spacy.pipeline.
  • Füge "smartphone" als Wert für den Schlüssel "pattern" hinzu.
  • Füge die EntityRuler()-Instanz ruler zur nlp-Pipeline hinzu.
  • Gib die Entitätsattribute aus, die in doc enthalten 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_)
Code bearbeiten und ausführen