EntityRuler para NER
EntityRuler se puede combinar con el EntityRecognizer de un modelo existente para mejorar su precisión. En este ejercicio, vas a practicar cómo combinar un componente EntityRuler con un componente NER existente del modelo en_core_web_sm. El modelo ya está cargado como nlp.
Cuando EntityRuler se añade antes del componente NER, el reconocedor de entidades respetará los spans de entidades existentes y ajustará sus predicciones en función de los patrones añadidos al EntityRuler para mejorar la precisión de la tarea de reconocimiento de entidades con nombre.
Este ejercicio forma parte del curso
Procesamiento del Lenguaje Natural con spaCy
Instrucciones del ejercicio
- Añade un
EntityRuleranlpantes del componentener. - Define un patrón de entidad basada en tokens para clasificar
new york groupen minúsculas comoORG. - Añade los
patternsal componenteEntityRuler. - Ejecuta el modelo e imprime la tupla con el texto y el tipo de las entidades para el contenedor
Doc.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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.____])