CommencerCommencer gratuitement

Extraire des noms avec leur contexte

Reprenons notre jeu de données sur les politicien·ne·s suisses. Il comporte deux variables : articles, qui est un ensemble d’articles de presse sur la politique suisse, et politicians, qui est un vecteur contenant plusieurs noms de personnalités politiques suisses.

Vous avez déjà compté le nombre d’occurrences par nom, mais ne serait-il pas intéressant de non seulement compter les noms, mais aussi de voir dans quel contexte ils sont utilisés ? Vous pourriez par exemple comparer si les contextes diffèrent entre politiciennes et politiciens. Pour cela, vous devez extraire le texte qui entoure les noms de nos personnalités politiques.

Comme le texte contient des caractères de mot \\w ainsi que de la ponctuation [:punct:] comme des points . ou des virgules ,, vous devrez créer un motif qui fasse correspondre ces deux types de caractères.

Cet exercice fait partie du cours

Expressions régulières intermédiaires en R

Afficher le cours

Instructions

  • Utilisez le vecteur politicians et concaténez-le pour créer un « motif en OU » comme vous l’avez fait au chapitre 2.
  • Créez un motif personnalisé entre crochets [] qui fasse correspondre à la fois des caractères de mot et des signes de ponctuation.
  • À l’aide de glue, ajoutez le context nouvellement créé à la fois avant et après polit_pattern. Le \\s? indique qu’il peut y avoir un espace ou aucun espace après les noms des personnalités politiques.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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
)
Modifier et exécuter le code