ComeçarComece de graça

RegEx com EntityRuler no spaCy

Expressões regulares, ou RegEx, são usadas para extração de informações baseada em regras com padrões complexos de correspondência de strings. RegEx pode ser usado para recuperar padrões ou substituir padrões correspondentes em uma string por outros padrões. Neste exercício, você vai praticar o uso do EntityRuler no spaCy para encontrar endereços de e-mail em um text fornecido.

O pacote spaCy já está importado para você. Você pode usar \d para corresponder a padrões de string representativos de um metacaractere que corresponde a qualquer dígito de 0 a 9.

Um padrão do spaCy pode usar REGEX como atributo. Nesse caso, um padrão terá o formato [{"TEXT": {"REGEX": "<a given pattern>"}}].

Este exercício faz parte do curso

Processamento de Linguagem Natural com spaCy

Ver curso

Instruções do exercício

  • Defina um padrão para corresponder a números de telefone no formato 8888888888 para ser usado pelo EntityRuler.
  • Carregue um modelo vazio de inglês do spaCy e adicione um componente EntityRuler ao pipeline.
  • Adicione o padrão compilado ao componente EntityRuler.
  • Execute o modelo e imprima a tupla de texto e tipo das entidades para o text fornecido.

Exercício interativo prático

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

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Editar e executar o código