EntityRuler con múltiples patrones en spaCy
EntityRuler te permite añadir entidades a doc.ents y mejorar el rendimiento del reconocimiento de entidades con nombre. En este ejercicio, practicarás cómo añadir un componente EntityRuler a un pipeline nlp existente para asegurarte de que varias entidades se clasifiquen correctamente.
El modelo en_core_web_sm ya está cargado y disponible como nlp. Puedes acceder a un texto de ejemplo en example_text y usar nlp y doc para acceder al modelo de spaCy y al contenedor Doc de example_text, respectivamente.
Este ejercicio forma parte del curso
Procesamiento del Lenguaje Natural con spaCy
Instrucciones del ejercicio
- Imprime una lista de tuplas con el texto y el tipo de las entidades en
example_textusando el modelonlp. - Define múltiples patrones para hacer coincidir en minúsculas
brotherysisterscon la etiquetaPERSON. - Añade un componente
EntityRuleral pipeline denlpy añade lospatternsalEntityRuler. - Imprime una tupla con el texto y el tipo de las entidades para
example_textusando el modelonlp.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
nlp = spacy.load("en_core_web_md")
# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")
# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
{"label": ____, "pattern": [{"lower": ____}]}]
# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)
# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])