ComeçarComece de graça

Fazendo correspondências com sintaxe estendida no spaCy

A extração de informações baseada em regras é essencial para qualquer pipeline de NLP. A classe Matcher permite que os padrões sejam mais expressivos ao incluir alguns operadores dentro de chaves. Esses operadores servem para comparações estendidas e são semelhantes aos operadores do Python como in, not in e operadores de comparação. Neste exercício, você vai praticar a funcionalidade de correspondência do spaCy, o Matcher, para encontrar ocorrências de termos específicos em um texto de exemplo.

A classe Matcher já foi importada da biblioteca spacy.matcher. Você usará um contêiner Doc de um texto de exemplo neste exercício por meio de doc. Um modelo spaCy pré-carregado também está acessível em nlp.

Este exercício faz parte do curso

Processamento de Linguagem Natural com spaCy

Ver curso

Instruções do exercício

  • Defina um objeto de correspondência usando Matcher e nlp.
  • Use o operador IN para definir um padrão que corresponda a tiny squares e tiny mouthful.
  • Use esse padrão para encontrar correspondências em doc.
  • Imprima os índices inicial e final dos tokens e o trecho de texto das correspondências.

Exercício interativo prático

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

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Editar e executar o código