Criando uma entidade nomeada personalizada no spaCy
Se as entidades nomeadas nativas do spaCy não forem suficientes, você pode criar as suas usando a classe EntityRuler() do spaCy.
EntityRuler() permite criar suas próprias entidades para adicionar a um pipeline do spaCy.
Você começa criando uma instância de EntityRuler() e passando para ela o pipeline atual, nlp.
Em seguida, você pode chamar add_patterns() na instância e passar um dicionário com o pattern de texto que deseja rotular com uma entidade.
Depois de configurar um padrão, você pode adicioná-lo ao pipeline nlp usando add_pipe().
Como a Acme é uma empresa de tecnologia, você decidiu marcar o padrão "smartphone" com o rótulo de entidade "PRODUCT".
spaCy já foi importado e um doc já existe contendo o texto transcrito de call_4_channel_2.wav file).
Este exercicio faz parte do curso
Processamento de Linguagem Falada em Python
Instruções do exercicio
- Importe
EntityRulerdespacy.pipeline. - Adicione
"smartphone"como o valor para a chave"pattern". - Adicione a instância
EntityRuler(),ruler, ao pipelinenlp. - Imprima os atributos de entidade contidos em
doc.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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_)