IniziaInizia gratis

Corrispondenze con sintassi estesa in spaCy

L’estrazione di informazioni basata su regole è fondamentale per qualsiasi pipeline di NLP. La classe Matcher rende i pattern più espressivi consentendo alcuni operatori tra le parentesi graffe. Questi operatori servono per confronti avanzati e ricordano gli operatori di Python in, not in e quelli di confronto. In questo esercizio farai pratica con la funzionalità di matching di spaCy, Matcher, per trovare corrispondenze per termini specifici in un testo di esempio.

La classe Matcher è già importata dalla libreria spacy.matcher. In questo esercizio userai un contenitore Doc di un testo di esempio chiamando doc. Un modello spaCy pre-caricato è disponibile come nlp.

Questo esercizio fa parte del corso

Natural Language Processing con spaCy

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci un oggetto matcher usando Matcher e nlp.
  • Usa l’operatore IN per definire un pattern che corrisponda a tiny squares e tiny mouthful.
  • Usa questo pattern per trovare corrispondenze in doc.
  • Stampa gli indici di inizio e fine dei token e lo span di testo delle corrispondenze.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

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

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Modifica ed esegui il codice