Inhaltsbasiertes Filtern
TF-IDF-Repräsentationen von Objekten, Kosinus-Ähnlichkeit, Erstellen eines Film-Empfehlungssystems aus Metadaten.
Inhaltsbasiertes Filtern ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was ist inhaltsbasiertes Filtern?
Inhaltsbasiertes Filtern empfiehlt Items, die den Items ähneln, die ein Benutzer bereits bevorzugt hat, und stützt sich dabei auf die eigenen Features der Items (Text, Genre, Tags). Anders als kollaboratives Filtern benötigt es keine anderen Benutzer und umgeht daher das Kaltstartproblem für Items.
Items als Feature-Vektoren
Die Grundidee: Wandeln Sie jedes Item in einen numerischen Vektor um, der seinen Inhalt beschreibt, und messen Sie anschließend die Ähnlichkeit zwischen den Vektoren. Für Textbeschreibungen ist TF-IDF das klassische Verfahren, um solche Vektoren zu erstellen.
Was ist TF-IDF?
TF-IDF (Term Frequency-Inverse Document Frequency) gewichtet Wörter danach, wie häufig sie in einem Item vorkommen, und reduziert gleichzeitig das Gewicht von Wörtern, die in allen Items häufig sind. Seltene, charakteristische Wörter erhalten hohe Gewichte und erfassen so, was ein Item einzigartig macht.
TfidfVectorizer
scikit-learn wandelt eine Liste von Item-Beschreibungen in zwei Zeilen in eine TF-IDF-Matrix um.
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(stop_words="english")
tfidf_matrix = vectorizer.fit_transform(df["description"])Die Form der Matrix verstehen
Die tfidf_matrix hat die Form (n_items, n_terms): eine Zeile pro Item und eine Spalte pro eindeutigem Wort im Vokabular. Sie ist dünn besetzt, da die meisten Items nur einen Bruchteil aller Wörter verwenden.
print(tfidf_matrix.shape) # (n_items, vocabulary_size)Den Vectorizer abstimmen
Nützliche Parameter sind: stop_words entfernt häufige Wörter, max_features begrenzt die Größe des Vokabulars und ngram_range=(1,2) schließt für umfangreichere Features auch Zweiwort-Phrasen ein.
vectorizer = TfidfVectorizer(
stop_words="english",
max_features=5000,
ngram_range=(1, 2)
)Kosinusähnlichkeit zwischen Items
Berechnen Sie die paarweise Ähnlichkeit zwischen allen Items. Das Ergebnis ist eine n_items x n_items-Matrix, deren Zellen angeben, wie ähnlich die Beschreibungen zweier Items sind.
from sklearn.metrics.pairwise import cosine_similarity
cosine_sim = cosine_similarity(tfidf_matrix)
print(cosine_sim.shape) # (n_items, n_items)Abkürzung mit dem linearen Kernel
Da TF-IDF-Vektoren standardmäßig L2-normalisiert sind, liefert linear_kernel dasselbe Ergebnis wie die Kosinusähnlichkeit, ist aber schneller. Das ist eine gängige Optimierung für große Kataloge.
from sklearn.metrics.pairwise import linear_kernel
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)Titel auf Indizes abbilden
Um ein Item anhand seines Namens nachzuschlagen, erstellen Sie einen umgekehrten Index, der Titel auf Zeilenpositionen abbildet.
indices = pd.Series(df.index, index=df["title"]).drop_duplicates()Die Funktion get_recommendations
Übergeben Sie einen Titel, rufen Sie die zugehörige Ähnlichkeitszeile ab, sortieren Sie sie absteigend, überspringen Sie das Item selbst und geben Sie die ähnlichsten Treffer zurück.
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]Stärken und Grenzen
Stärken: Funktioniert auch für ganz neue Items, und die Empfehlungen sind erklärbar („weil diese Wörter übereinstimmen“).
Grenzen: Das Verfahren bleibt auf die bekannten Vorlieben eines Benutzers beschränkt (Überspezialisierung) und kann keine überraschenden, genreübergreifenden Treffer entdecken, wie es kollaboratives Filtern kann.
Kurzer Test
Testen Sie Ihr Wissen über inhaltsbasiertes Filtern.
Zusammenfassung
Sie haben inhaltsbasiertes Filtern aufgebaut: TfidfVectorizer wandelt Beschreibungen in eine (n_items, n_terms)-Matrix um, cosine_similarity vergleicht Items und get_recommendations gibt die ähnlichsten Items zurück (wobei das Item selbst übersprungen wird). Das Verfahren bewältigt das Kaltstartproblem, birgt aber das Risiko einer Überspezialisierung. Als Nächstes folgen hybride Systeme und Evaluierungsmetriken.
Häufig gestellte Fragen
Ist die Lektion „Inhaltsbasiertes Filtern“ kostenlos?
Ja — der vollständige Text von „Inhaltsbasiertes Filtern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Inhaltsbasiertes Filtern“?
TF-IDF-Repräsentationen von Objekten, Kosinus-Ähnlichkeit, Erstellen eines Film-Empfehlungssystems aus Metadaten. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Inhaltsbasiertes Filtern“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kollaboratives Filtern: benutzer- und objektbasiert
- Matrixfaktorisierung mit SVD
- Inhaltsbasiertes Filtern
- Hybridsysteme und Evaluationsmetriken