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 exercicio faz parte do curso
Processamento de Linguagem Natural com spaCy
Instruções do exercicio
- Defina um padrão para corresponder a números de telefone no formato
8888888888para ser usado peloEntityRuler. - Carregue um modelo vazio de inglês do
spaCye adicione um componenteEntityRulerao pipeline. - Adicione o padrão compilado ao componente
EntityRuler. - Execute o modelo e imprima a tupla de texto e tipo das entidades para o
textfornecido.
exercicio interativo prático
Tente este exercicio 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.____])