LoslegenKostenlos loslegen

PhraseMatcher in spaCy

Bei der Verarbeitung unstrukturierter Texte hast du oft lange Listen und Wörterbücher, die du in Texten durchsuchen und abgleichen möchtest. Die Matcher-Muster sind handgefertigt, und jeder Token muss einzeln definiert werden. Wenn du eine lange Liste von Phrasen hast, ist Matcher nicht mehr die beste Option. In diesem Fall hilft dir die Klasse PhraseMatcher, lange Wörterbücher abzugleichen. In dieser Übung übst du, mit der Klasse PhraseMatcher Muster anhand passender Shapes für mehrere Begriffe zu finden.

Das Modell en_core_web_sm ist bereits geladen und als nlp verfügbar. Die Klasse PhraseMatcher ist importiert. Eine Zeichenkette text und eine Liste terms stehen dir zur Verfügung.

Diese Übung ist Teil des Kurses

Natural Language Processing mit spaCy

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere eine PhraseMatcher-Klasse mit einem attr, um auf die Shape der gegebenen terms abzugleichen.
  • Erstelle patterns, die dem PhraseMatcher-Objekt hinzugefügt werden sollen.
  • Finde Übereinstimmungen zu den Mustern und gib die Start- und End-Token-Indizes sowie den passenden Abschnitt des gegebenen text aus.

Interaktive Übung

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

text = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]

# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)

# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)

# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Code bearbeiten und ausführen