IniziaInizia gratis

EntityRuler per il NER

EntityRuler può essere combinato con l’EntityRecognizer di un modello esistente per migliorarne l’accuratezza. In questo esercizio, metterai in pratica la combinazione di un componente EntityRuler con un componente NER già presente nel modello en_core_web_sm. Il modello è già caricato come nlp.

Quando EntityRuler viene aggiunto prima del componente NER, il riconoscitore di entità rispetterà gli span di entità esistenti e adeguerà le sue previsioni in base ai pattern aggiunti all’EntityRuler, così da migliorare l’accuratezza del riconoscimento delle entità nominate.

Questo esercizio fa parte del corso

Natural Language Processing con spaCy

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiungi un EntityRuler a nlp prima del componente ner.
  • Definisci un pattern di entità basato su token per classificare new york group (in minuscolo) come ORG.
  • Aggiungi i patterns al componente EntityRuler.
  • Esegui il modello e stampa la tupla con il testo delle entità e il relativo tipo per il contenitore Doc.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."

# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")

# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]

# Add the patterns to the EntityRuler component
ruler.____(____)

# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])
Modifica ed esegui il codice