Crearea unei entități numite personalizate în spaCy
Dacă entitățile numite predefinite din spaCy nu sunt suficiente, îți poți crea propriile entități folosind clasa EntityRuler() din spaCy.
EntityRuler() îți permite să definești entități proprii pe care să le adaugi într-un pipeline spaCy.
Începi prin a crea o instanță a clasei EntityRuler() și a-i transmite pipeline-ul curent, nlp.
Apoi poți apela add_patterns() pe instanță și îi transmiți un dicționar cu textul pattern pe care vrei să îl etichetezi cu o entitate.
Odată ce ai configurat un pattern, îl poți adăuga în pipeline-ul nlp folosind add_pipe().
Deoarece Acme este o companie de tehnologie, decizi să etichetezi patternul "smartphone" cu tag-ul de entitate "PRODUCT".
spaCy a fost deja importat, iar un doc există deja și conține textul transcris din fișierul call_4_channel_2.wav (fișier).
Acest exercițiu face parte din cursul
Procesarea limbajului vorbit în Python
Instrucțiuni pentru exercițiu
- Importă
EntityRulerdinspacy.pipeline. - Adaugă
"smartphone"ca valoare pentru cheia"pattern". - Adaugă instanța
EntityRuler(),ruler, în pipeline-ulnlp. - Afișează atributele entităților conținute în
doc.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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_)