Extraire des noms avec leur contexte
Reprenons notre jeu de données sur les politiciennes et politiciens suisses. Il se compose de 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 personnes actives en politique en Suisse.
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 ? Par exemple, vous pourriez comparer si les contextes diffèrent entre les femmes et les hommes en politique. Pour y arriver, vous devrez extraire le texte qui entoure les noms de nos politiciennes et politiciens.
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 fait correspondre ces deux types de caractères.
Cette activité fait partie du cours
Expressions régulières intermédiaires en R
Instructions de l’exercice
- Utilisez le vecteur
politicianset regroupez-le pour créer un « motif OU » comme vous l'avez fait au chapitre 2. - Créez un motif personnalisé entre crochets
[]qui fait correspondre à la fois les caractères de mot et la ponctuation. - Avec glue, ajoutez le
contextnouvellement créé à la fois avant et aprèspolit_pattern. Le\\s?indique qu'il peut y avoir une espace ou aucune espace après les noms des politiciennes et politiciens.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
)