IniziaInizia gratis

EntityRuler con pattern multipli in spaCy

EntityRuler ti permette di aggiungere entità a doc.ents e potenziare le prestazioni di named entity recognition. In questo esercizio, farai pratica aggiungendo un componente EntityRuler a una pipeline nlp esistente per assicurarti che più entità vengano classificate correttamente.

Il modello en_core_web_sm è già caricato ed è disponibile come nlp. Hai a disposizione un testo di esempio in example_text e puoi 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

  • Stampa un elenco di tuple con testo e tipo delle entità in example_text usando il modello nlp.
  • Definisci più pattern per associare le versioni in minuscolo di brother e sisters all’etichetta PERSON.
  • Aggiungi un componente EntityRuler alla pipeline nlp e aggiungi i patterns all’EntityRuler.
  • Stampa una tupla con testo e tipo delle entità per example_text usando il modello nlp.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

nlp = spacy.load("en_core_web_md")

# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")

# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
            {"label": ____, "pattern": [{"lower": ____}]}]

# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)

# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])
Modifica ed esegui il codice