\---  
Titre: Protocole de nettoyage automatisé de corpus texte sous R  
auteur: Pauline Bureau  
\---

#### Objectif

Ce protocole automatise le nettoyage d’un corpus \`.txt\` extrait de fichiers PDF convertis. Il vise à éliminer les éléments suivants, tout en préservant les mots composés valides :

\- URLs (liens web)  
\- Numéros de page  
\- Traits d’union de coupure de ligne  
\- Sauts de ligne non nécessaires

#### Préparation

1\. Créer un dossier \`corpus\_brut/\` contenant les fichiers \`.txt\` extraits  
2\. Créer un dossier \`corpus\_nettoye/\` qui recevra les fichiers nettoyés

\`\`\`r  
library(stringr)  
library(readr)

# Définir les chemins d'entrée et de sortie  
input\_dir \<- "corpus\_brut"  
output\_dir \<- "corpus\_nettoye"

# Créer le dossier de sortie s'il n'existe pas  
if (\!dir.exists(output\_dir)) dir.create(output\_dir)

# Liste des fichiers texte  
files \<- list.files(input\_dir, pattern \= "\\\\.txt$", full.names \= TRUE)

#### Fonctions de nettoyage

clean\_text \<- function(text) {  
  # 1\. Supprimer les URLs (http et www)  
  text \<- str\_remove\_all(text, "https?://\\\\S+|www\\\\.\\\\S+")

  # 2\. Supprimer les numéros de page du type "3 / 4"  
  text \<- str\_remove\_all(text, "\\\\d+\\\\s\*/\\\\s\*\\\\d+")

  # 3\. Supprimer les traits d’union en fin de ligne causés par les retours à la ligne (sans espace après)  
  text \<- str\_replace\_all(text, "-\\\\s\*\\n\\\\s\*", "")

  # 4\. Réunir les lignes coupées (remplacer sauts de ligne inutiles par un espace)  
  text \<- str\_replace\_all(text, "(\\\\S)\\\\s\*\\\\n\\\\s\*(\\\\S)", "\\\\1 \\\\2")

  # 5\. Supprimer les nombres isolés (souvent résidus de pages)  
  text \<- str\_remove\_all(text, "\\\\b\\\\d+\\\\b")

  #6. Supprimer les multiples espaces  
  text \<- str\_squish(text)

  return(text)  
}

#### Traitement du corpus

# Boucle sur tous les fichiers  
for (file in files) {  
  # Lire le texte  
  raw\_text \<- read\_file(file)

  # Appliquer le nettoyage  
  cleaned \<- clean\_text(raw\_text)

  # Enregistrer dans le dossier de sortie  
  out\_path \<- file.path(output\_dir, basename(file))  
  write\_file(cleaned, out\_path)  
}

