SKOPOS GROUP

Wir sind ein Teil der SKOPOS GROUP für zeitgemäße Marktforschung.

Eine breit aufgestellte Unternehmensgruppe, die alle zeitgemäßen Marktforschungs-Dienstleistungen unter einem Dach vereint. Digital und innovativ. Von national bis international. Von Kunden-Befragung über UX-Research bis Insight-Community. Von Mitarbeiter-Befragung über Mystery-Shopping bis Customer-Experience und Data Science decken wir alle relevanten Themen und Methoden ab.

Journal Nützliches Wissen aus der Welt der Data Science
Maschinelles Lernen

Mit einer „Bag-of-Words“ in die Welt der Textanalysen einsteigen

Sollen Textdaten in Machine Learning-Modellen verwendet werden, ergibt sich ein Problem: Die Methoden des Machine Learnings verstehen Worte nicht, sondern benötigen Zahlen, um damit zu rechnen. Nun können Textdaten, zum Beispiel Google-Bewertungen, ganz unterschiedlich sein: einige sind lang und komplex, andere sind kurz und einfach geschrieben. Wie können diese unterschiedlichen Textdaten dann so in Zahlen umgewandelt werden, dass wir als Data Scientists damit arbeiten können?

Eine Lösung kann das sogenannte Bag-of-Words-Modell sein. Dieser Ansatz ist einfach und leicht verständlich, aber wird dennoch in vielen Bereichen erfolgreich eingesetzt. Grundsätzlich funktioniert das Bag-of-Words-Modell so, dass Texte in Form von Häufigkeiten einzelner Wörter repräsentiert werden. Durch Zählen der Wortvorkommen können so ganze Sätze in Vektoren umgewandelt werden. Der Aufbau der Sätze oder die Ordnung der Wörter spielt dabei keine Rolle. Es wird lediglich betrachtet, ob ein Wort vorkommt, aber nicht wo es im Dokument steht – ganz im Sinne einer „Tasche voller Worte“ (Bag-of-Words).

Um das Ganze zu veranschaulichen haben wir uns drei Kununu-Bewertungen aus unserem SKOPOS-Universum herausgesucht. Du kannst Dich also auf Beispiele aus der realen Welt freuen.

Einfaches Beispiel oder die ideale Welt der Textanalysen

In der idealen Welt der Textanalysen, wäre jedes Beispiel so einfach wie das folgende: drei einfache Sätze mit sehr ähnlichen Wörtern, die etwas ähnliches aussagen. Die folgende Tabelle zeigt in den Zeilen drei Sätze und in den Spalten alle Wörter, die in diesen drei Texten vorkommen. Jedes Wort wird, wie oben bereits erklärt, durch einen Vektor von Zahlen repräsentiert. Dabei entspricht jeder Eintrag in dem Vektor einem Wort. Die Zahl an einer Stelle im Vektor gibt an, wie häufig das Wort in dem Text vorkommt. Die Häufigkeit des Auftretens jedes Worts wird dann als Merkmal für das Training eines Algorithmus verwendet.

Ein einfaches Beispiel – für mehr Details einfach draufklicken!

Möchtest Du also zum Beispiel wissen, welche Texte über Kund:innen sprechen, dann schaust Du Dir die Vektor-Einträge an, die zum Wort „Kunden“ gehören. Ist der Eintrag > 0 wird über das Thema „Kunde“ gesprochen. Bestimmt schweben Dir jetzt schon einige Anwendungsbeispiele im Kopf herum, dazu aber später mehr.

Ähnlichkeiten berechnen

Auch mit diesem einfachen Ansatz, lassen sich bereits spannende Fragen untersuchen: Möchte man zum Beispiel schauen, wie ähnlich sich zwei Sätze sind, kann dies durch die Berechnung der Ähnlichkeiten zwischen den Vektoren umgesetzt werden. Ein klassisches Maß für die Ähnlichkeit ist die so genannte „Cosine Similarity“ (Cosinus-Ähnlichkeit). Diese beschreibt den Winkel (Bogenmaß) zwischen den zwei Vektoren. Im Grunde heißt es: je besser die 1en der Vektoren sich überschneiden, desto ähnlicher sind sich diese.

Ähnlichkeiten zwischen den Sätzen – für mehr Details einfach draufklicken!

Satz 1 und Satz 2 haben eine große Ähnlichkeit, da diese beide die flache Hierarchie beschreiben und viele gleiche Keywords enthalten. Satz 1 und Satz 3 haben keine Überschneidungen, und haben somit eine Ähnlichkeit von 0. Satz 2 und Satz 3 überschneiden sich nur teilweise.

Preprocessing oder die reale Welt

Wie bereits angedeutet war das obige Beispiel sehr idealisiert, da nur gleiche Wortformen verwendet wurden. Die reale Welt sieht meist etwas anders, und zwar sehr viel komplexer aus. Das folgende Beispiel ist zwar immer noch sehr einfach, doch es zeigt, wie nur kleine Änderungen in der Formulierung die Sache sehr viel komplexer machen: Wir ändern lediglich beim zweiten Satz „Hierarchie flach“ zu „Flache Hierarchien“ und verlängern den dritten Satz ein wenig.

Das Preprocessing – für mehr Details einfach draufklicken!

Die Einbeziehung von mehreren Wortformen (zum Beispiel „Hierarchie“ und „Hierarchien“) hat dabei auch Einfluss auf die Ähnlichkeiten. Diese werden nämlich deutlich kleiner, da viele Wörter in unterschiedlichen Formen vorkommen und somit separate Einträge in den Vektoren sind.

Ähnlichkeiten – für mehr Details einfach draufklicken!

Obwohl wir nur die Formulierung geändert haben, haben die ersten beiden Sätze jetzt eine Ähnlichkeit von null. Wie Du aber aus dem einfachen Beispiel weißt, bildet das nicht die Realität ab. Denn die Bedeutung der Sätze hat sich nicht grundlegend geändert. Das Problem ist, dass hier die Wörter in unterschiedlichen Formen vorkommen und somit keine gemeinsamen Wörter mehr haben. Um solche Probleme zu vermeiden, verwenden wir das sogenannte Preprocessing der Texte. Ziel ist es hierbei die Texte in ein einheitlicheres Format zu bekommen und ähnliche Wörter zusammenzulegen. Dazu gehören einige Schritte, die wir Dir im Folgenden erklären wollen.

Das Preprocessing verändert nichts an der eigentlichen Methode, macht uns die Arbeit mit den Texten deutlich einfacher. In vielen praktischen Anwendungen macht das Preprocessing am Ende mehr aus als die Wahl des Algorithmus.

Groß- und Kleinschreibung anpassen

In der Regel enthält die Groß- und Kleinschreibung keine besonders wichtigen Informationen und ist auch relativ selbsterklärend – es werden einfach alle Wörter klein geschrieben. Durch Satzanfänge und Substantivierung werden nämlich Wörter, die eigentlich gleich sind, unterschiedlich gemacht – in diesem Beispiel „Die“ und „die“.

Groß- und Kleinschreibung – für mehr Details einfach draufklicken!

Stopwords entfernen

Fast jede Sprache hat Wörter, die sehr häufig vorkommen und den Redefluss verbessern, aber zum Inhalt des Textes nichts beitragen, zum Beispiel “der, die, das, und, bei, usw.“. Diese Wörter führen dazu, dass Sätze als ähnlich angesehen werden, die eigentlich nichts miteinander zu tun haben – zum Beispiel Satz 1 und 3, die beide das Wort „die“ beinhalten. Deshalb werden in diesem Schritt alle Stopwords entfernt. Dazu gibt es für alle gängigen Sprachen Wortlisten, die diese enthalten – ein allgemeines Regelwerk quasi. Alternativ oder zusätzlich kann man auch alle Wörter entfernen, die in beispielsweise mehr als 70 % aller Texte vorkommen.

Stopwords – für mehr Details einfach draufklicken!

Stemming

Der letzte Schritt beinhaltet das sogenannte Stemming und ist der wohl wichtigste Schritt des Preprocessings. Beim Stemming werden Wörter auf ihren Wortstamm heruntergekürzt, sodass zum Beispiel „hierarchie“ und „hierarchien“ zu dem gleichen Keyword „hierarchie“ werden. Dadurch sind sich die Vektoren von Satz 1 und 2 nun wieder sehr ähnlich. In unserem Beispiel sieht das dann so aus:

Stemming und Ähnlichkeiten nach dem Preprocessing – für mehr Details einfach draufklicken!

Dies sind die gängigsten Preprocessing-Schritte die so gut wie immer eingesetzt werden, wenn wir mit Textdaten arbeiten. Es gibt je nach Kontext vielleicht aber auch noch weitere Schritte. Zum Beispiel lassen sich Texte mit vielen Rechtschreibfehlern korrigieren und Zahlen und Web-Adressen entfernen.

Anwendung in der Praxis

In der Regel werden die Vektoren nicht nur für Ähnlichkeiten verwendet, sondern für Machine Learning-Modelle. Beispielsweise können Vektoren dafür verwendet werden mit Klassifizierungsalorithmen, die Sätze in Kategorien einzuordnen, um sich zukünftige manuelle Zuordnungen zu sparen. In unserem Beispiel würden sich die Kategorien „Hierarchie“ und „Kunden“ eignen. Diese werden vorher festgelegt und die Sätze dann zunächst händisch codiert, sodass jeder Satz den Kategorien zugeordnet wird, in denen die Themen vorkommen. Mit diesen und vielen weiteren Satz-Code-Paaren wird dann ein Machine Learning-Modell trainiert. Dieses Modell lernt dann nicht nur welche Keywords zu den entsprechenden Kategorien passen, sondern auch welche Zusammenhänge zwischen den Keywords bestehen – und das ganz automatisch.

Probleme und Ausblick auf andere Methoden

Das größte Problem von Bag-of-Words ist, dass die Vektoren sehr groß werden können. Aus drei Sätzen haben wir bereits einen neun-dimensionalen Vektor generiert. Wenn wir 10.000 (oder 1 Millionen) Sätze verwenden, wird das Ganze unüberschaubar, weil zu viele unterschiedliche Wörter enthalten sind, die aber oft das gleiche meinen. In der Praxis werden dann nur die häufigsten Keywords verwendet. Dadurch gehen aber Informationen über nicht so häufig genannte Keywords verloren. Es ist deshalb ein ständiger Trade-Off zwischen Größe der Vektoren und Genauigkeit des Modells. Dazu kommt, dass sehr große Vektoren es dem Modell schwer machen zu lernen und viele Trainingsdaten gebraucht werden.

Deswegen sind Bag-of-Words-Modelle häufig nur ein erster Ansatz und es gibt weitere Methoden, um aus Textdaten Zahlen zu machen. Ein spannender und seit einigen Jahren häufig verwendeter Ansatz sind so genannte „Word Embeddings“. Auch hier werden Texte und Wörter in Vektoren umgewandelt – allerdings auf eine Art und Weise, die es ermöglicht Synonyme zu berücksichtigen und gleichzeitig weniger Zahlen für die gleiche Aussagekraft zu verwenden. In einem künftigen Beitrag gehen wir darauf nochmal genauer ein.

Du willst mehr über das Thema Textanalysen erfahren? Dann schau mal hier vorbei:

Text Analytics Suite

Dein Ansprechpartner:
Michael Ellers
Junior Data Scientist
Du willst mehr wissen? Sprich uns gerne an!

Du willst Marktforschung im Unternehmen sichtbar machen?

Dann lass uns gemeinsam deine Daten sichtbar werden!

Warum wir?
Deine Anfrage

Unser hochmotiviertes Team freut sich, von Dir und Deiner Fragestellung zu hören.

  • Hidden
  • Hidden

Mehr lesen?