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
Instrucțiuni pentru exercițiu
- Adaugă componenta
"entity_ruler"în pipeline-ulnlp, înainte de componenta"ner", și salvează-o înruler. - 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_)