LoslegenKostenlos loslegen

EntityRuler mit mehreren Mustern in spaCy

Mit EntityRuler kannst du Entitäten zu doc.ents hinzufügen und so die Leistung der Erkennung benannter Entitäten verbessern. In dieser Übung übst du, eine EntityRuler-Komponente zu einer bestehenden nlp-Pipeline hinzuzufügen, damit mehrere Entitäten korrekt klassifiziert werden.

Das Modell en_core_web_sm ist bereits geladen und als nlp verfügbar. Du kannst auf einen Beispieltext über example_text zugreifen und mit nlp bzw. doc auf ein spaCy-Modell und den Doc-Container von example_text zugreifen.

Diese Übung ist Teil des Kurses

Natural Language Processing mit spaCy

Kurs anzeigen

Anleitung zur Übung

  • Gib mit dem nlp-Modell eine Liste von Tupeln aus Entitätstext und -typ im example_text aus.
  • Definiere mehrere Patterns, um kleingeschriebenes brother und sisters dem Label PERSON zuzuordnen.
  • Füge der nlp-Pipeline eine EntityRuler-Komponente hinzu und füge der EntityRuler die patterns hinzu.
  • Gib für den example_text mit dem nlp-Modell Tupel aus Text und Typ der Entitäten aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

nlp = spacy.load("en_core_web_md")

# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")

# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
            {"label": ____, "pattern": [{"lower": ____}]}]

# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)

# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])
Code bearbeiten und ausführen