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
Istruzioni dell'esercizio
- Aggiungi un
EntityRuleranlpprima del componentener. - Definisci un pattern di entità basato su token per classificare
new york group(in minuscolo) comeORG. - Aggiungi i
patternsal componenteEntityRuler. - 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.____])