IniziaInizia gratis

Effettuare il matching di un singolo termine in spaCy

I pattern RegEx non sono semplici da leggere, scrivere e fare debug. Ma non sei senza alternative: spaCy offre un'opzione leggibile e adatta alla produzione, la classe Matcher. La classe Matcher può far corrispondere regole predefinite a una sequenza di token in un contenitore Doc. In questo esercizio, farai pratica con Matcher per trovare una singola parola.

Puoi accedere al testo corrispondente in example_text e usare nlp e doc per accedere rispettivamente a un modello spaCy e al contenitore Doc di example_text.

Questo esercizio fa parte del corso

Natural Language Processing con spaCy

Visualizza il corso

Istruzioni dell'esercizio

  • Inizializza una classe Matcher.
  • Definisci un pattern per fare il match di witch in minuscolo in example_text.
  • Aggiungi i pattern alla classe Matcher e trova le corrispondenze.
  • Itera sulle corrispondenze e stampa gli indici dei token di inizio e fine e lo span del testo trovato.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice