LoslegenKostenlos loslegen

RegEx mit EntityRuler in spaCy

Reguläre Ausdrücke (RegEx) werden für regelbasierte Informationsextraktion mit komplexen Zeichenfolgenmustern verwendet. Mit RegEx kannst du Muster finden oder passende Stellen in einem String durch andere Muster ersetzen. In dieser Übung verwendest du den EntityRuler in spaCy, um E‑Mail-Adressen in einem gegebenen text zu finden.

Das Paket spaCy ist bereits importiert. Du kannst \d verwenden, um ein Metazeichen zu matchen, das für jede Ziffer von 0 bis 9 steht.

Ein spaCy-Pattern kann REGEX als Attribut nutzen. In diesem Fall hat ein Pattern die Form [{"TEXT": {"REGEX": "<a given pattern>"}}].

Diese Übung ist Teil des Kurses

Natural Language Processing mit spaCy

Kurs anzeigen

Anleitung zur Übung

  • Definiere ein Muster, das Telefonnummern der Form 8888888888 erkennt und vom EntityRuler verwendet werden kann.
  • Lade ein leeres englisches spaCy-Modell und füge der Pipeline eine EntityRuler-Komponente hinzu.
  • Füge das kompilierte Muster der EntityRuler-Komponente hinzu.
  • Führe das Modell aus und gib für den gegebenen text das Tupel aus Text und Typ der erkannten Entitäten aus.

Interaktive Übung

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

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Code bearbeiten und ausführen