EmpezarEmpieza gratis

Crear una entidad con nombre personalizada en spaCy

Si las entidades con nombre integradas de spaCy no son suficientes, puedes crear las tuyas usando el componente de pipeline entity_ruler de spaCy.

El componente entity_ruler te permite crear tus propias entidades y añadirlas a un pipeline de spaCy.

Empieza añadiendo el componente al pipeline existente con nlp.add_pipe(), colocándolo before del componente "ner" para que tus reglas se apliquen primero. add_pipe() devuelve el componente que añadió.

Luego puedes llamar a add_patterns() sobre el componente y pasarle un diccionario con el pattern de texto que quieres etiquetar con una entidad.

Como Acme es una empresa tecnológica, decides etiquetar el patrón "smartphone" con la etiqueta de entidad "PRODUCT".

spaCy se ha importado y nlp contiene un modelo en_core_web_sm cargado. Como cambiar un pipeline no afecta a los documentos que ya existen, volverás a crear el doc a partir del texto transcrito de call_4_channel_2.wav file una vez que el nuevo componente esté en su lugar.

Este ejercicio forma parte del curso

Procesamiento del lenguaje hablado en Python

Ver curso

Instrucciones del ejercicio

  • Añade el componente "entity_ruler" al pipeline de nlp, antes del componente "ner", y guárdalo en ruler.
  • Añade "smartphone" como valor para la clave "pattern".
  • Imprime los atributos de entidad contenidos en doc.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
Editar y ejecutar código