EntityRuler pentru NER
EntityRuler poate fi combinat cu EntityRecognizer dintr-un model existent pentru a-i îmbunătăți acuratețea. În acest exercițiu, vei exersa combinarea unei componente EntityRuler cu componenta NER existentă din modelul en_core_web_sm. Modelul este deja încărcat ca nlp.
Atunci când EntityRuler este adăugat înaintea componentei NER, recunoașterea entităților va respecta entitățile deja identificate și își va ajusta predicțiile în funcție de pattern-urile adăugate în EntityRuler, îmbunătățind astfel acuratețea sarcinii de recunoaștere a entităților denumite.
Acest exercițiu face parte din cursul
Procesarea limbajului natural cu spaCy
Instrucțiuni pentru exercițiu
- Adaugă un
EntityRulerîn pipeline-ulnlp, înaintea componenteiner. - Definește un pattern de entitate la nivel de token pentru a clasifica
new york group(scris cu litere mici) caORG. - Adaugă
patternsîn componentaEntityRuler. - Rulează modelul și afișează tuplul cu textul și tipul fiecărei entități din containerul
Doc.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."
# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")
# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]
# Add the patterns to the EntityRuler component
ruler.____(____)
# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])