LoslegenKostenlos loslegen

Einen einzelnen Begriff in spaCy matchen

RegEx-Muster sind nicht leicht zu lesen, zu schreiben und zu debuggen. Aber du bist nicht aufgeschmissen: spaCy bietet mit der Matcher-Klasse eine gut lesbare, produktionsreife Alternative. Die Matcher-Klasse kann vordefinierte Regeln mit einer Sequenz von Tokens in einem gegebenen Doc-Container abgleichen. In dieser Übung übst du den Einsatz von Matcher, um ein einzelnes Wort zu finden.

Du kannst auf den zugehörigen Text in example_text zugreifen und nlp und doc verwenden, um jeweils auf ein spaCy-Modell und den Doc-Container von example_text zuzugreifen.

Diese Übung ist Teil des Kurses

Natural Language Processing mit spaCy

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere eine Matcher-Klasse.
  • Definiere ein Muster, das das kleingeschriebene witch in example_text matcht.
  • Füge die Muster zur Matcher-Klasse hinzu und finde Matches.
  • Iteriere über die Matches und gib Start- und End-Token-Indizes sowie die Spanne des gematchten Texts aus.

Interaktive Übung

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

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

# Initialize a Matcher object
matcher = Matcher(nlp.____)

# Define a pattern to match lower cased word witch
pattern = [{"lower" : ____}]

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

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