ÎncepețiÎncepe gratuit

Crearea unei entități denumite personalizate în spaCy

Dacă entitățile denumite predefinite din spaCy nu sunt suficiente, poți crea propriile entități folosind componenta de pipeline entity_ruler din spaCy.

Componenta entity_ruler îți permite să creezi propriile entități și să le adaugi într-un pipeline spaCy.

Începi prin a adăuga componenta în pipeline-ul existent cu nlp.add_pipe(), plasând-o before componenta "ner", astfel încât propriile tale reguli să fie aplicate primele. add_pipe() returnează componenta adăugată.

Apoi poți apela add_patterns() pe componentă și îi poți transmite un dicționar cu textul pattern pe care vrei să îl etichetezi cu o entitate.

Deoarece Acme este o companie de tehnologie, decizi să etichetezi pattern-ul "smartphone" cu eticheta de entitate "PRODUCT".

spaCy a fost importat, iar nlp conține un model en_core_web_sm deja încărcat. Deoarece modificarea unui pipeline nu are niciun efect asupra obiectelor doc deja existente, vei recrea doc-ul din textul transcris al fișierului call_4_channel_2.wav file după ce ai adăugat noua componentă.

Acest exercițiu face parte din cursul

Procesarea limbajului vorbit în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă componenta "entity_ruler" în pipeline-ul nlp, înainte de componenta "ner", și salvează-o în ruler.
  • Adaugă "smartphone" ca valoare pentru cheia "pattern".
  • Afișează atributele entităților conținute în doc.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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_)
Editează și rulează codul