LoslegenKostenlos loslegen

Abgleichen mit erweiterter Syntax in spaCy

Regelbasierte Informationsextraktion ist ein zentraler Bestandteil jeder NLP-Pipeline. Die Klasse Matcher macht Muster (Patterns) ausdrucksstärker, indem sie Operatoren in geschweiften Klammern erlaubt. Diese Operatoren dienen erweiterten Vergleichen und ähneln Python-Operatoren wie in, not in sowie Vergleichsoperatoren. In dieser Übung arbeitest du mit der Matching-Funktionalität von spaCy, dem Matcher, um Treffer für vorgegebene Begriffe in einem Beispieltext zu finden.

Die Klasse Matcher ist bereits aus der Bibliothek spacy.matcher importiert. In dieser Übung verwendest du einen Doc-Container mit Beispieltext, erreichbar über doc. Ein vorab geladenes spaCy-Modell ist außerdem unter nlp verfügbar.

Diese Übung ist Teil des Kurses

Natural Language Processing mit spaCy

Kurs anzeigen

Anleitung zur Übung

  • Definiere ein Matcher-Objekt mit Matcher und nlp.
  • Verwende den Operator IN, um ein Pattern zu definieren, das tiny squares und tiny mouthful abgleicht.
  • Verwende dieses Pattern, um Treffer in doc zu finden.
  • Gib Start- und End-Token-Indizes sowie die Textspanne der Treffer aus.

Interaktive Übung

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

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Code bearbeiten und ausführen