Creare un'entità personalizzata in spaCy
Se le entità nominate integrate di spaCy non sono sufficienti, puoi crearne di tue usando la classe EntityRuler() di spaCy.
EntityRuler() ti permette di creare entità personalizzate da aggiungere a una pipeline spaCy.
Per iniziare, crea un'istanza di EntityRuler() passandole la pipeline corrente, nlp.
Poi puoi chiamare add_patterns() sull'istanza e passarle un dizionario con il pattern di testo che vuoi etichettare come entità.
Una volta definito un pattern, puoi aggiungerlo alla pipeline nlp usando add_pipe().
Dato che Acme è un'azienda tecnologica, decidi di etichettare il pattern "smartphone" con il tag di entità "PRODUCT".
spaCy è stato importato e un doc è già disponibile, contenente il testo trascritto da call_4_channel_2.wav file).
Questo esercizio fa parte del corso
Elaborazione del linguaggio parlato in Python
Istruzioni dell'esercizio
- Importa
EntityRulerdaspacy.pipeline. - Aggiungi
"smartphone"come valore per la chiave"pattern". - Aggiungi l'istanza di
EntityRuler(),ruler, alla pipelinenlp. - Stampa gli attributi delle entità contenute in
doc.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Import EntityRuler class
from spacy.pipeline import ____
# Create EntityRuler instance
ruler = EntityRuler(nlp)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Update existing pipeline
nlp.add_pipe(____, before="ner")
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)