Aan de slagGa gratis aan de slag

Eén term matchen in spaCy

RegEx-patronen zijn niet eenvoudig om te lezen, te schrijven en te debuggen. Maar je staat niet met lege handen: spaCy biedt een leesbaar en production-ready alternatief, de Matcher-klasse. De Matcher-klasse kan vooraf gedefinieerde regels matchen met een reeks tokens in een gegeven Doc-container. In deze oefening ga je oefenen met Matcher om één woord te vinden.

Je hebt toegang tot de bijbehorende tekst in example_text en kunt nlp en doc gebruiken om respectievelijk een spaCy-model en een Doc-container van example_text te benaderen.

Deze oefening maakt deel uit van de cursus

Natural Language Processing met spaCy

Cursus bekijken

Oefeninstructies

  • Initialiseer een Matcher-klasse.
  • Definieer een patroon om kleine letters witch te matchen in example_text.
  • Voeg de patronen toe aan de Matcher-klasse en zoek matches.
  • Itereer over de matches en print de start- en eind-tokenindexen en de span van de gematchte tekst.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren