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
Oefeninstructies
- Initialiseer een
Matcher-klasse. - Definieer een patroon om kleine letters
witchte matchen inexample_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)