ComeçarComece de graça

Extrair nomes com contexto

Vamos voltar ao nosso conjunto de dados sobre políticos suíços. Ele consiste em duas variáveis: articles, que é uma coleção de notícias sobre política suíça, e politicians, que é um vetor com vários nomes de políticos suíços.

Você já contou o número de ocorrências por nome, mas não seria interessante não só contar os nomes, como também ver em que contexto eles são usados? Você poderia, por exemplo, comparar se os contextos diferem entre políticas e políticos. Para isso, você vai precisar extrair o texto ao redor dos nomes dos políticos.

Como o texto contém caracteres de palavra \\w e também pontuação [:punct:], como pontos . ou vírgulas ,, você terá que criar um padrão que corresponda a ambos os tipos de caracteres.

Este exercício faz parte do curso

Expressões Regulares Intermediárias em R

Ver curso

Instruções do exercício

  • Use o vetor politicians e faça o colapso para criar um "padrão de ou" como você fez no capítulo 2.
  • Crie um padrão personalizado entre colchetes [] que corresponda tanto a caracteres de palavra quanto a pontuações.
  • Usando glue, adicione o context recém-criado tanto antes quanto depois de polit_pattern. O \\s? indica que pode haver um espaço ou nenhum espaço após os nomes dos políticos.

Exercício interativo prático

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

# Create our polit_pattern again by collapsing "politicians"
polit_pattern <- glue_collapse(___, sep = "|")

# Match one or more word characters or punctuations
context <- "([___[___]]+\\s){0,10}"

# Add this pattern in front and after the polit_pattern
polit_pattern_with_context <- glue(
  "{___}({polit_pattern})\\s?{___}"
)

str_extract_all(
  articles$text,
  pattern = polit_pattern_with_context
)
Editar e executar o código