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
Instruções do exercício
- 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.
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.____])