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
Anleitung zur Übung
- Gib mit dem
nlp-Modell eine Liste von Tupeln aus Entitätstext und -typ imexample_textaus. - Definiere mehrere Patterns, um kleingeschriebenes
brotherundsistersdem LabelPERSONzuzuordnen. - Füge der
nlp-Pipeline eineEntityRuler-Komponente hinzu und füge derEntityRulerdiepatternshinzu. - Gib für den
example_textmit demnlp-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).____])