Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Vectoriser des textes avec TF-IDF
Pour comparer des textes entre eux, il faut les transformer en nombres. TF-IDF (Term Frequency - Inverse Document Frequency) est une méthode classique qui donne un score a chaque mot en fonction de son importance dans le document par rapport a l'ensemble des documents.
Un mot frequent dans un document mais rare dans les autres aura un score TF-IDF eleve. Un mot comme 'le' ou 'de', present partout, aura un score faible.
fit_transform prend une liste de textes et renvoie une matrice ou chaque ligne correspond a un texte et chaque colonne a un mot du vocabulaire.
Écris une fonction vectorize_texts(texts) qui prend une liste de textes, les vectorise avec TfidfVectorizer et renvoie un tuple (matrice, vectorizer). La matrice doit etre convertie en tableau numpy dense avec .toarray().
Exemple : matrix, vec = vectorize_texts(['le chat dort', 'le chien mange']) matrix.shape vaut (2, 4) (2 textes, 4 mots uniques)
Tests (1/1)
Tests
import numpy as np
matrix, vec = vectorize_texts(['le chat dort', 'le chien mange', 'le chat mange'])
assert matrix.shape[0] == 3, f'Attendu 3 lignes, obtenu {matrix.shape[0]}'
assert matrix.shape[1] > 0, 'La matrice doit avoir des colonnes'
assert isinstance(matrix, np.ndarray), 'La matrice doit etre un numpy array'
assert hasattr(vec, 'transform'), 'Le vectorizer doit avoir une méthode transform'
vocab = vec.get_feature_names_out()
assert 'chat' in vocab, 'Le mot chat devrait etre dans le vocabulaire'