LoslegenKostenlos starten

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

<Kurs>Natural Language Processing mit spaCy</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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