0Pricing
Learn AI with Python · Leçon

Filtrage fondé sur le contenu

Représentations d’éléments par TF-IDF, similarité cosinus, création d’un moteur de recommandation de films à partir de métadonnées.

Filtrage fondé sur le contenu est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Qu’est-ce que le filtrage fondé sur le contenu ?

Le filtrage fondé sur le contenu recommande des éléments similaires à ceux qu’un utilisateur a déjà appréciés, en se basant sur les propres caractéristiques des éléments (texte, genre, balises). Contrairement au filtrage collaboratif, cette méthode n’a besoin d’aucune donnée provenant d’autres utilisateurs et évite donc le problème du démarrage à froid des éléments.

Les éléments comme vecteurs de caractéristiques

L’idée centrale consiste à transformer chaque élément en un vecteur numérique décrivant son contenu, puis à mesurer la similarité entre les vecteurs. Pour les descriptions textuelles, TF-IDF est la méthode classique pour construire ces vecteurs.

Qu’est-ce que TF-IDF ?

TF-IDF (fréquence des termes–fréquence inverse de document) pondère les mots selon leur fréquence d’apparition dans un élément, tout en réduisant le poids des mots communs à tous les éléments. Les mots rares et distinctifs reçoivent des poids élevés, ce qui permet de représenter ce qui rend un élément unique.

TfidfVectorizer

scikit-learn transforme une liste de descriptions d’éléments en une matrice TF-IDF en deux lignes.

from sklearn.feature_extraction.text import TfidfVectorizer

vectorizer = TfidfVectorizer(stop_words="english")
tfidf_matrix = vectorizer.fit_transform(df["description"])

Comprendre la forme de la matrice

La matrice tfidf_matrix a pour forme (n_éléments, n_termes) : une ligne par élément et une colonne par mot unique du vocabulaire. Elle est creuse, car la plupart des éléments n’utilisent qu’une fraction de l’ensemble des mots.

print(tfidf_matrix.shape)  # (n_items, vocabulary_size)

Régler le vectoriseur

Paramètres utiles : stop_words élimine les mots courants, max_features plafonne la taille du vocabulaire et ngram_range=(1,2) inclut des expressions de deux mots pour obtenir des caractéristiques plus riches.

vectorizer = TfidfVectorizer(
    stop_words="english",
    max_features=5000,
    ngram_range=(1, 2)
)

Similarité cosinus entre les éléments

Calculez la similarité par paires entre tous les éléments. Le résultat est une matrice n_éléments × n_éléments où chaque cellule indique la similarité entre les descriptions de deux éléments.

from sklearn.metrics.pairwise import cosine_similarity

cosine_sim = cosine_similarity(tfidf_matrix)
print(cosine_sim.shape)  # (n_items, n_items)

Raccourci avec le noyau linéaire

Comme les vecteurs TF-IDF sont normalisés selon la norme L2 par défaut, linear_kernel donne le même résultat que la similarité cosinus, mais plus rapidement. Il s’agit d’une optimisation courante pour les catalogues volumineux.

from sklearn.metrics.pairwise import linear_kernel

cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)

Associer les titres à des indices

Pour rechercher un élément par son nom, construisez un index inversé reliant le titre à la position de sa ligne.

indices = pd.Series(df.index, index=df["title"]).drop_duplicates()

La fonction get_recommendations

À partir d’un titre, récupérez sa ligne de similarité, triez-la par ordre décroissant, ignorez l’élément lui-même et renvoyez les meilleures correspondances.

def get_recommendations(title, n=10):
    idx = indices[title]
    scores = list(enumerate(cosine_sim[idx]))
    scores = sorted(scores, key=lambda x: x[1], reverse=True)
    top = scores[1:n+1]          # skip itself at position 0
    item_idxs = [i for i, _ in top]
    return df["title"].iloc[item_idxs]

Points forts et limites

Points forts : fonctionne pour les éléments tout nouveaux et produit des recommandations explicables (« parce qu’il partage ces mots »).

Limites : reste limité aux goûts connus d’un utilisateur (surspécialisation) et ne peut pas découvrir les succès surprenants entre genres comme peut le faire le filtrage collaboratif.

Vérification rapide

Testez vos connaissances sur le filtrage fondé sur le contenu.

Récapitulatif

Vous avez construit un filtrage fondé sur le contenu : TfidfVectorizer transforme les descriptions en une matrice (n_éléments, n_termes), cosine_similarity compare les éléments et get_recommendations renvoie les éléments les plus similaires en ignorant l’élément lui-même. Cette méthode gère le démarrage à froid, mais risque la surspécialisation. Ensuite : les systèmes hybrides et les métriques d’évaluation.

Questions Fréquemment Posées

La leçon « Filtrage fondé sur le contenu » est-elle gratuite ?

Oui — le texte complet de « Filtrage fondé sur le contenu » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Filtrage fondé sur le contenu » ?

Représentations d’éléments par TF-IDF, similarité cosinus, création d’un moteur de recommandation de films à partir de métadonnées. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Filtrage fondé sur le contenu » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Filtrage collaboratif : basé sur les utilisateurs et les éléments
  2. Factorisation matricielle avec SVD
  3. Filtrage fondé sur le contenu
  4. Systèmes hybrides et métriques d’évaluation
← Retour à Learn AI with Python