ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Añade un EntityRuler a nlp antes del componente ner.
  • Define un patrón de entidad basada en tokens para clasificar new york group en minúsculas como ORG.
  • Añade los patterns al componente EntityRuler.
  • 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.____])
Editar y ejecutar código