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
Instructions
- Utilisez le vecteur
politicianset 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
contextnouvellement créé à la fois avant et aprèspolit_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
)