Comece agoraComece grátis

Criando uma entidade nomeada personalizada no spaCy

Se as entidades nomeadas nativas do spaCy não forem suficientes, você pode criar as suas usando o componente de pipeline entity_ruler do spaCy.

O componente entity_ruler permite criar suas próprias entidades e adicioná-las a um pipeline do spaCy.

Você começa adicionando o componente ao pipeline existente com nlp.add_pipe(), posicionando-o before do componente "ner" para que suas regras sejam aplicadas primeiro. add_pipe() retorna o componente que foi adicionado.

Em seguida, você pode chamar add_patterns() no componente e passar a ele um dicionário com o pattern de texto que você quer rotular com uma entidade.

Como a Acme é uma empresa de tecnologia, você decide marcar o padrão "smartphone" com a entidade "PRODUCT".

O spaCy já foi importado e nlp contém um modelo en_core_web_sm carregado. Como alterar um pipeline não afeta docs que já existem, você vai recriar o doc a partir do texto transcrito de call_4_channel_2.wav arquivo quando o novo componente estiver no lugar.

Este exercicio faz parte do curso

Processamento de Linguagem Falada em Python

Ver curso

Instruções do exercicio

  • Adicione o componente "entity_ruler" ao pipeline nlp, antes do componente "ner", e salve em ruler.
  • Adicione "smartphone" como valor para a chave "pattern".
  • Imprima os atributos de entidade contidos em doc.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código