Aan de slagGa gratis aan de slag

Patronen debuggen (2)

Beide patronen in deze oefening bevatten fouten en zullen niet matchen zoals verwacht. Kun jij ze repareren?

Het nlp-object en een doc zijn al voor je aangemaakt. Als je vastloopt, print dan de tokens in de doc om te zien hoe de tekst wordt opgesplitst en pas het patroon aan zodat elk woordenboek één token vertegenwoordigt.

Deze oefening maakt deel uit van de cursus

Geavanceerde NLP met spaCy

Cursus bekijken

Oefeninstructies

  • Bewerk pattern1 zodat het alle hoofdletterongevoelige vermeldingen van "Amazon" plus een met hoofdletters begonnen eigennaam correct matcht.
  • Bewerk pattern2 zodat het alle hoofdletterongevoelige vermeldingen van "ad-free" correct matcht, plus het daaropvolgende zelfstandig naamwoord.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Create the match patterns
pattern1 = [{'LOWER': 'Amazon'}, {'IS_TITLE': True, 'POS': 'PROPN'}]
pattern2 = [{'LOWER': 'ad-free'}, {'POS': 'NOUN'}]

# Initialize the Matcher and add the patterns
matcher = Matcher(nlp.vocab)
matcher.add('PATTERN1', None, pattern1)
matcher.add('PATTERN2', None, pattern2)

# Iterate over the matches
for match_id, start, end in matcher(doc):
    # Print pattern string name and text of matched span
    print(doc.vocab.strings[match_id], doc[start:end].text)
Code bewerken en uitvoeren