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.