← retour aux snippets

prétraitement texte: nettoyage de base

nettoyer, normaliser et tokeniser du texte pour ML

prétraitement texte: nettoyage de base

objectif

Expliquer et montrer comment nettoyer, normaliser et tokeniser du texte pour ML.

code minimal

import re
import unicodedata

def normalize_text(s: str) -> str:
    s = s.lower()
    s = unicodedata.normalize("NFKC", s)
    s = re.sub(r"[^a-z0-9\s]", " ", s)
    s = re.sub(r"\s+", " ", s).strip()
    return s

print(normalize_text("Déjà  Vu -  DATA!!!  "))

utilisation

# intégrer dans un TfidfVectorizer via preprocessor
from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(preprocessor=normalize_text, min_df=2)

variante(s) utile(s)

# retirer stopwords français (liste minimale)
stop = {"le","la","les","de","du","des","et","un","une","en","au","aux"}
def preprocess_no_stop(s: str) -> str:
    s = normalize_text(s)
    return " ".join(w for w in s.split() if w not in stop)

notes

  • Évitez de supprimer trop agressivement la ponctuation si elle porte du sens.
  • Conservez l’Unicode NFKC pour homogénéiser les formes.