Exemple de table de données textuelles

library(dplyr)
## 
## Attachement du package : 'dplyr'
## Les objets suivants sont masqués depuis 'package:stats':
## 
##     filter, lag
## Les objets suivants sont masqués depuis 'package:base':
## 
##     intersect, setdiff, setequal, union
library(nycflights13)
library(stringr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.1     ✔ readr     2.1.6
## ✔ ggplot2   4.0.1     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data_textuelle = tibble( nom = c("Mr Eric Legrand", "Mme
Anabelle Dupont", "Mme Fatou Slaoui"), adresse = c("12 rue
Archimède", "47 avenue de la Libération", "3 rue des Fleurs"), ville
= c("Niort", "Poitiers", "Marseille") )

Exercice 1 Transformer les colonnes nom, adresse et ville du tableau précédent : en majuscules,

data_textuelle$nom_m = str_to_lower(data_textuelle$nom)
mutate ( data_textuelle, adresse_m =  str_to_lower(adresse),ville_m = str_to_lower(ville))
## # A tibble: 3 × 6
##   nom                    adresse                   ville nom_m adresse_m ville_m
##   <chr>                  <chr>                     <chr> <chr> <chr>     <chr>  
## 1 "Mr Eric Legrand"      "12 rue\nArchimède"       Niort "mr … "12 rue\… niort  
## 2 "Mme\nAnabelle Dupont" "47 avenue de la Libérat… Poit… "mme… "47 aven… poitie…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"        Mars… "mme… "3 rue d… marsei…

en minuscules

mutate ( data_textuelle, adresse_M =  str_to_upper(adresse),ville_M = str_to_upper(ville),nom_M = str_to_upper(nom))
## # A tibble: 3 × 7
##   nom                    adresse             ville nom_m adresse_M ville_M nom_M
##   <chr>                  <chr>               <chr> <chr> <chr>     <chr>   <chr>
## 1 "Mr Eric Legrand"      "12 rue\nArchimède" Niort "mr … "12 RUE\… NIORT   "MR …
## 2 "Mme\nAnabelle Dupont" "47 avenue de la L… Poit… "mme… "47 AVEN… POITIE… "MME…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"  Mars… "mme… "3 RUE D… MARSEI… "MME…

en format capitalisé

mutate ( data_textuelle, adresse_T =  str_to_title(adresse),ville_T = str_to_title(ville),nom_T = str_to_title(nom))
## # A tibble: 3 × 7
##   nom                    adresse             ville nom_m adresse_T ville_T nom_T
##   <chr>                  <chr>               <chr> <chr> <chr>     <chr>   <chr>
## 1 "Mr Eric Legrand"      "12 rue\nArchimède" Niort "mr … "12 Rue\… Niort   "Mr …
## 2 "Mme\nAnabelle Dupont" "47 avenue de la L… Poit… "mme… "47 Aven… Poitie… "Mme…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"  Mars… "mme… "3 Rue D… Marsei… "Mme…

Exercice 2 : concaténer l’adresse et la ville, avec la ville en majuscules

mutate(data_textuelle,  concatenation = paste(nom,ville,adresse))
## # A tibble: 3 × 5
##   nom                    adresse                      ville  nom_m concatenation
##   <chr>                  <chr>                        <chr>  <chr> <chr>        
## 1 "Mr Eric Legrand"      "12 rue\nArchimède"          Niort  "mr … "Mr Eric Leg…
## 2 "Mme\nAnabelle Dupont" "47 avenue de la Libération" Poiti… "mme… "Mme\nAnabel…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"           Marse… "mme… "Mme Fatou S…

Exercice 3 : concaténer le nom, l’adresse et la ville avec : un séparateur sep = “-” ou un argument collapse = “|”

mutate(data_textuelle,  concatenation = paste(nom,ville,adresse, sep ="-"))
## # A tibble: 3 × 5
##   nom                    adresse                      ville  nom_m concatenation
##   <chr>                  <chr>                        <chr>  <chr> <chr>        
## 1 "Mr Eric Legrand"      "12 rue\nArchimède"          Niort  "mr … "Mr Eric Leg…
## 2 "Mme\nAnabelle Dupont" "47 avenue de la Libération" Poiti… "mme… "Mme\nAnabel…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"           Marse… "mme… "Mme Fatou S…

un argument collapse = “|”.

mutate(data_textuelle,  concatenation = paste(nom,ville,adresse, collapse ="|"))
## # A tibble: 3 × 5
##   nom                    adresse                      ville  nom_m concatenation
##   <chr>                  <chr>                        <chr>  <chr> <chr>        
## 1 "Mr Eric Legrand"      "12 rue\nArchimède"          Niort  "mr … "Mr Eric Leg…
## 2 "Mme\nAnabelle Dupont" "47 avenue de la Libération" Poiti… "mme… "Mr Eric Leg…
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"           Marse… "mme… "Mr Eric Leg…

Exercice 4 : À partir de l’adresse complète concaténée précédemment avec le délimiteur “|”, créer une liste issue du découpage selon ce séparateur.

mutate(data_textuelle, lst_decoupage = str_split(paste(nom, ville, adresse, sep = "|"), "\\|"))
## # A tibble: 3 × 5
##   nom                    adresse                      ville  nom_m lst_decoupage
##   <chr>                  <chr>                        <chr>  <chr> <list>       
## 1 "Mr Eric Legrand"      "12 rue\nArchimède"          Niort  "mr … <chr [3]>    
## 2 "Mme\nAnabelle Dupont" "47 avenue de la Libération" Poiti… "mme… <chr [3]>    
## 3 "Mme Fatou Slaoui"     "3 rue des Fleurs"           Marse… "mme… <chr [3]>

Exercice 5 : À partir de la colonne nom, créer trois nouvelles colonnes : genre, prenom et nom.

separate(data_textuelle, nom, into = c("genre", "prenom", "nom"), sep = " ")
## Warning: Expected 3 pieces. Missing pieces filled with `NA` in 1 rows [2].
## # A tibble: 3 × 6
##   genre           prenom nom     adresse                      ville     nom_m   
##   <chr>           <chr>  <chr>   <chr>                        <chr>     <chr>   
## 1 "Mr"            Eric   Legrand "12 rue\nArchimède"          Niort     "mr eri…
## 2 "Mme\nAnabelle" Dupont <NA>    "47 avenue de la Libération" Poitiers  "mme\na…
## 3 "Mme"           Fatou  Slaoui  "3 rue des Fleurs"           Marseille "mme fa…

Exercice 6 : Saisir La donnée

library(tidyverse)
library(stringr)
library(tidytext)
data_textuelle = tibble( id = 1 :3, texte = c( "La data science
est un domaine interdisciplinaire.", "Le text mining permet
d’analyser des documents.", "Les ingénieurs utilisent R et Python
pour le NLP." ) )

Exercice 7 : Passer le texte en minuscules

mutate ( data_textuelle, texte_m = str_to_lower (texte))
## # A tibble: 3 × 3
##      id texte                                                 texte_m           
##   <int> <chr>                                                 <chr>             
## 1     1 "La data science\nest un domaine interdisciplinaire." "la data science\…
## 2     2 "Le text mining permet\nd’analyser des documents."    "le text mining p…
## 3     3 "Les ingénieurs utilisent R et Python\npour le NLP."  "les ingénieurs u…

Exercice 7 : Supprimer la ponctuation

mutate ( data_textuelle, texte_ssp =  str_remove_all(texte, "[:punct:]"))
## # A tibble: 3 × 3
##      id texte                                                 texte_ssp         
##   <int> <chr>                                                 <chr>             
## 1     1 "La data science\nest un domaine interdisciplinaire." "La data science\…
## 2     2 "Le text mining permet\nd’analyser des documents."    "Le text mining p…
## 3     3 "Les ingénieurs utilisent R et Python\npour le NLP."  "Les ingénieurs u…

Exercice 7 : Supprimer les chiffres

mutate ( data_textuelle, texte_sn =str_remove_all(texte, "[:digit:]"))
## # A tibble: 3 × 3
##      id texte                                                 texte_sn          
##   <int> <chr>                                                 <chr>             
## 1     1 "La data science\nest un domaine interdisciplinaire." "La data science\…
## 2     2 "Le text mining permet\nd’analyser des documents."    "Le text mining p…
## 3     3 "Les ingénieurs utilisent R et Python\npour le NLP."  "Les ingénieurs u…

Exercice 8 :