ComeçarComece de graça

EntityRuler para NER

O EntityRuler pode ser combinado com o EntityRecognizer de um modelo existente para aumentar a precisão. Neste exercício, você vai praticar como combinar um componente EntityRuler com um componente NER já existente do modelo en_core_web_sm. O modelo já está carregado como nlp.

Quando o EntityRuler é adicionado antes do componente NER, o reconhecedor de entidades respeita os spans de entidades existentes e ajusta suas previsões com base nos padrões adicionados ao EntityRuler para melhorar a precisão da tarefa de reconhecimento de entidades nomeadas.

Este exercício faz parte do curso

Processamento de Linguagem Natural com spaCy

Ver curso

Instruções do exercício

  • Adicione um EntityRuler ao nlp antes do componente ner.
  • Defina um padrão de entidade por token para classificar new york group (em minúsculas) como ORG.
  • Adicione os patterns ao componente EntityRuler.
  • Execute o modelo e imprima a tupla com o texto e o tipo das entidades do container Doc.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código