Im Bereich der maschinellen Sprachverarbeitung (Natural Language Processing, NLP) müssen Texte in eine Form gebracht werden, die für Maschinen zugänglich und verarbeitbar ist. Das „Bag of Words“ (BoW)-Modell ist eine der einfachsten und am weitesten verbreiteten Methoden zur Umwandlung von Text in eine numerische Darstellung, die für viele Machine-Learning-Algorithmen nützlich ist. BoW eignet sich vor allem für Aufgaben wie die Textklassifikation, Sentiment-Analyse und Information Retrieval.
Dieser Artikel beschreibt die Funktionsweise hinter BoW und gibt Beispiele für den praktischen Einsatz. Zusätzlich wird das Modell im Vergleich zu TF-IDF eingeordnet, das eine gewichtete Variante des BoW-Ansatzes darstellt.
Kernidee hinter Bag of Words
Die zentrale Idee des Bag-of-Words-Modells ist es, die Bedeutung eines Textes durch die Häufigkeit und das Vorhandensein bestimmter Wörter darzustellen. Dabei wird die grammatische Struktur sowie die Reihenfolge der Wörter ignoriert. Stattdessen geht das Modell davon aus, dass der Inhalt eines Dokuments (zumindest teilweise) durch die bloße Präsenz von Wörtern und deren Häufigkeit beschrieben werden kann.
Funktionsweise des Bag-of-Words-Algorithmus:
Das Bag-of-Words-Modell bricht einen Text auf, indem es jeden Satz oder jedes Dokument in einzelne Wörter (Tokens) zerlegt und dann zählt, wie oft jedes Wort vorkommt. Das Ergebnis ist ein Vektor, der die Häufigkeit jedes Wortes in einer Textsammlung beschreibt. Wichtig ist, dass die Reihenfolge der Wörter im Modell keine Rolle spielt – daher die Bezeichnung „Bag of Words“.
Mathematische Herleitung und Anwendung
Schritt-für-Schritt-Erklärung des BoW-Modells:
- Tokenisierung Jeder Text wird in eine Liste von Wörtern (Tokens) zerlegt. Zum Beispiel wird der Satz „Das Wetter ist schön heute“ in die Wörter „Das“, „Wetter“, „ist“, „schön“, „heute“ zerlegt.
- Vokabelerstellung Basierend auf allen Dokumenten, die analysiert werden sollen, wird eine Liste aller einzigartigen Wörter erstellt. Diese Liste bildet das Vokabular des Modells. Das Vokabular ist oft auf eine begrenzte Anzahl von Wörtern beschränkt, um den Vektorraum klein und berechenbar zu halten. Aus den Sätzen „Das Wetter ist schön heute“ und „Heute ist das Wetter warm“ folgt damit das Vokabular: [‚das‘, ‚heute‘, ‚ist‘, ’schön‘, ‚warm‘, ‚wetter‘]
- Vektorisierung
Jedes Dokument wird als Vektor dargestellt, wobei jeder Eintrag des Vektors einem Wort aus dem Vokabular entspricht. Der Wert in jedem Eintrag gibt die Häufigkeit des jeweiligen Wortes im Dokument an.
Das Wetter ist schön heute warm Satz 1 1 1 1 1 1 0 Satz 2 1 1 1 0 1 1 - Mathematische NotationSei eine Sammlung von Dokumenten und das Vokabular. Jedes Dokument wird als Vektor dargestellt, wobei der -te Eintrag in die Häufigkeit des Wortes im Dokument angibt:
- Anwendung in ML-Modellen Diese Vektoren können als Eingaben für Machine-Learning-Algorithmen wie Naive Bayes oder lineare Klassifikatoren verwendet werden, die auf Worthäufigkeiten basieren, um Klassifikationsaufgaben zu lösen
Zusammenfassung
Der Artikel erklärt das Bag-of-Words (BoW)-Modell als eine grundlegende Methode in der maschinellen Sprachverarbeitung (NLP). Er beschreibt detailliert die mathematische Herleitung und den Aufbau von BoW, die Umwandlung von Texten in Vektoren und Einsatzmöglichkeiten wie Textklassifikation und Sentiment-Analyse. Der Artikel enthält ein kurzes Beispiel, das illustriert, wie BoW in einer realen Anwendung eingesetzt werden kann.
Referenzen
[R1]: Scikit-learn Documentation on Text Feature Extraction. Link to documentation
[R2]: Wikipedia: Bag-of-words model. Link to Wikipedia
[R3]: D. Jurafsky and J. H. Martin. 2024. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models, 3rd edition. Online manuscript released August 20, 2024. https://web.stanford.edu/~jurafsky/slp3.