Quand utiliser quoi
| Tâche | Prétraitement |
|---|---|
| BERT/Transformers | Utilisez UNIQUEMENT leur tokenizer |
| TF-IDF + ML classique | Minuscules, retirer les stopwords, lemmatiser |
| FastText | Minimal (il gère les sous-mots) |
| Arabe | Normaliser alef/hamza, retirer les diacritiques |
| Français | Gérer les accents, les élisions (l', d') |
Pipeline universel
import re
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
def preprocess(text, language='english'):
text = text.lower().strip()
text = re.sub(r'http\S+', '', text) # Remove URLs
text = re.sub(r'[^a-zA-Z0-9\s]', '', text) # Remove special chars
tokens = word_tokenize(text)
lemmatizer = WordNetLemmatizer()
tokens = [lemmatizer.lemmatize(t) for t in tokens if len(t) > 2]
return ' '.join(tokens)
Pour BERT : faites confiance au tokenizer
Le WordPiece de BERT gère la casse, les sous-mots et les tokens spéciaux. N'appliquez pas de prétraitement personnalisé — cela nuirait aux performances.