Crear una entidad con nombre personalizada en spaCy
Si las entidades con nombre integradas de spaCy no son suficientes, puedes crear las tuyas con la clase EntityRuler() de spaCy.
EntityRuler() te permite crear tus propias entidades para añadirlas a un pipeline de spaCy.
Empieza creando una instancia de EntityRuler() y pasándole el pipeline actual, nlp.
Después puedes llamar a add_patterns() sobre la instancia y pasarle un diccionario con el pattern de texto que quieres etiquetar con una entidad.
Una vez que tengas el patrón configurado, puedes añadirlo al pipeline nlp usando add_pipe().
Como Acme es una empresa tecnológica, decides etiquetar el patrón "smartphone" con la etiqueta de entidad "PRODUCT".
spaCy ya se ha importado y ya existe un doc que contiene el texto transcrito de call_4_channel_2.wav file).
Este ejercicio forma parte del curso
Procesamiento del lenguaje hablado en Python
Instrucciones del ejercicio
- Importa
EntityRulerdesdespacy.pipeline. - Añade
"smartphone"como valor para la clave"pattern". - Añade la instancia
EntityRuler(),ruler, al pipelinenlp. - Imprime los atributos de las entidades que contiene
doc.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import EntityRuler class
from spacy.pipeline import ____
# Create EntityRuler instance
ruler = EntityRuler(nlp)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Update existing pipeline
nlp.add_pipe(____, before="ner")
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)