Inizia subitoInizia gratis

Creare un'entità nominata personalizzata in spaCy

Se le entità nominate predefinite di spaCy non bastano, puoi crearne di tue usando il componente di pipeline entity_ruler di spaCy.

Il componente entity_ruler ti permette di creare entità personalizzate e aggiungerle a una pipeline spaCy.

Si parte aggiungendo il componente alla pipeline esistente con nlp.add_pipe(), posizionandolo before del componente "ner" così che le tue regole vengano applicate per prime. add_pipe() restituisce il componente aggiunto.

Puoi poi chiamare add_patterns() sul componente e passargli un dizionario con il pattern di testo che vuoi etichettare come entità.

Dato che Acme è un'azienda tecnologica, decidi di etichettare il pattern "smartphone" con il tag di entità "PRODUCT".

spaCy è stato importato e nlp contiene un modello en_core_web_sm caricato. Poiché modificare una pipeline non ha effetto sui doc già esistenti, ricreerai il doc dal testo trascritto di call_4_channel_2.wav file una volta aggiunto il nuovo componente.

Questo esercizio fa parte del corso

Elaborazione del linguaggio parlato in Python

Visualizza corso

Istruzioni dell'esercizio

  • Aggiungi il componente "entity_ruler" alla pipeline nlp, prima del componente "ner", e salvalo in ruler.
  • Aggiungi "smartphone" come valore per la chiave "pattern".
  • Stampa gli attributi delle entità contenute in doc.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
Modifica ed esegui il codice