\---  
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)  
}

