EntityRuler con un modelo en blanco de spaCy
EntityRuler te permite añadir entidades a doc.ents. Puede combinarse con EntityRecognizer, un componente del pipeline de spaCy para el reconocimiento de entidades con nombre, para mejorar la precisión, o usarse por sí solo para implementar un sistema de reconocimiento de entidades basado únicamente en reglas. En este ejercicio, practicarás cómo añadir un componente EntityRuler a un modelo de inglés en blanco de spaCy y clasificar las entidades con nombre del text dado usando un reconocimiento de entidades basado únicamente en reglas.
El paquete spaCy ya está importado y tienes un modelo de inglés en blanco listo para usar como nlp. Ya se ha creado una lista de patterns para clasificar OpenAI y Microsoft en minúsculas como ORG para que la uses.
Este ejercicio forma parte del curso
Procesamiento del Lenguaje Natural con spaCy
Instrucciones del ejercicio
- Crea y añade un componente
EntityRuleral pipeline. - Añade los patrones dados al componente
EntityRuler. - Ejecuta el modelo sobre el
textproporcionado y crea su contenedorDoccorrespondiente. - Imprime una tupla (texto y tipo de las entidades) para todas las entidades en el contenedor
Doc
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
nlp = spacy.blank("en")
patterns = [{"label": "ORG", "pattern": [{"LOWER": "openai"}]},
{"label": "ORG", "pattern": [{"LOWER": "microsoft"}]}]
text = "OpenAI has joined forces with Microsoft."
# Add EntityRuler component to the model
entity_ruler = nlp.____("entity_ruler")
# Add given patterns to the EntityRuler component
entity_ruler.____(____)
# Run the model on a given text
doc = nlp(____)
# Print entities text and type for all entities in the Doc container
print([(ent.____, ent.____) for ent in doc.____])