14. Juli 2021
timer-icon 8 Min.

Ein Dashboard für KI-basierte Textanalysen

Gibt es in Ihrem Unternehmen ungenutzte Textdaten? In diesem Artikel werden die Vorteile einer KI-basierten Textanalyse und deren Visualisierung mit einem Dashboard dargestellt.

Heutzutage haben Unternehmen eine Vielzahl von Kontaktpunkten zu ihren Kunden. Dabei entstehen z.B. über Social-Media-Kanäle, Kundenportale, E-Mails oder Messenger-Dienste große Mengen an textuellen Daten, die wichtige und interessante Informationen enthalten. Doch fällt es schwer sich einen Überblick über diese Daten zu verschaffen und Trends zu erkennen. Um das ganze Potential der Daten zu nutzen, bietet sich eine KI-basierte Analyse und ein Dashboard zur Visualisierung der Ergebnisse an. Im folgenden Beitrag möchten wir Ihnen ein solches Dashboard vorstellen und wie es Ihnen z.B. beim Verstehen ihrer Kunden helfen kann.

Warum sollten Sie Textdokumente analysieren?

Viele Unternehmen verwenden umfangreiche Business-Intelligence Anwendungen, um ihre Verkaufs- und Betriebsdaten zu analysieren, Prognosen zu treffen, effizienter zu sein und bessere Entscheidungen zu treffen. Textdaten, die an unterschiedlichen Stellen im Unternehmen entstehen, bleiben oft ungenutzt, obwohl sie wichtige Informationen enthalten. Diese unstrukturierten Textdaten zu verarbeiten und zu analysieren, bringt neue Herausforderungen und Aufgaben mit sich.

Das manuelle Analysieren ist auf Grund der großen Datenmenge oft zu kosten- und zeitaufwendig. Ebenfalls können bei manueller Verarbeitung leichter Fehler und Inkonsistenzen entstehen. Mit Hilfe eines Dashboards und einer maschinellen Datenanalyse können Zeit und Ressourcen gespart werden.

Mit unserem Dashboard können Sie folgende Fragestellungen beantworten:

  • Ist das Interesse der Kunden, nach der Veröffentlichung eines neuen Produktes gestiegen? Kann ich einen Trend erkennen?
  • Wie hat sich die allgemeine Stimmung/Meinung meiner Kunden verändert?
  • Welche Themenbereiche interessiert meine Kunden besonders?
  • Was schreiben die Kunden über ein bestimmtes Produkt und gibt es bestimmte Themen, die sie dabei ansprechen?

Aufbereitung der Textdaten

Wir haben dieses Dashboard für die Analyse von Textdaten aus unserer firmeninternen Kommunikation über Slack entwickelt um Themen, Stimmungen und Trends im Unternehmen sichtbar zu machen. Deshalb werden die einzelnen Originaltexte im Dashboard nicht dargestellt, da es sich um personenbezogene Daten handelt. Zur Präsentation des Dashboards in diesem Blogpost wurde ein repräsentativer Datensatz verwendet. Dieser beinhaltet freiverfügbare Tweets, die alle unter den Hashtags:  #AI #ML #Data #iot #DevOps #APM #agile entstanden sind. Im Dashboard sind trotzdem nur aggregierte Informationen sichtbar und nicht die Originalinhalte der Tweets.

Das Dashboard kann mit allen möglichen Textdaten gefüllt werden, solange diese einen Zeitstempel haben. Ebenfalls müssen die Daten nicht nur aus einer Quelle stammen, sondern es können Texte aus unterschiedlichsten Quellen kombiniert werden.

Als erster Schritt der Datenanalyse, haben wir die Textdaten aufgeräumt und fehlerhafte oder unvollständige Einträge behoben. (Dadurch werden Tweets entfernt welche nur Bilder oder Links enthalten und gar keine eigentlichen Textinhalte. Zusätzlich werden ungewünschte Tweets von Bots entfernt.) Danach werden, je nach Kontext in dem das Dashboard eingesetzt werden soll, die nötigen Informationen extrahiert. Aus den Textdaten können Informationen wie Emojis, Weblinks oder Hashtags entnommen und als eigene Merkmale (sogenannte Features) gespeichert werden. Zusätzliche Metadaten wie Standort, Datenquelle oder Sprache können ebenfalls verwendet werden.

Das Dashboard

Abbildung 1: Benutzeroberfläche des Dashboards

Im Folgenden werden die einzelnen Elemente und der Aufbau des Dashboards erklärt. Das Dashboard ist nach dem Prinzip Overview first – details on demand aufgebaut. Das heißt, auf der obersten Ebene sind die Daten maximal aggregiert und je weiter wir uns nach unten bewegen, desto detaillierter werden die Informationen.

Filterbereich

Im Filterbereich direkt unter der Kopfzeile befindet sich eine Zeitleiste, mit der sich der zu betrachtende Zeitraum beliebig verstellen lässt. Beispielsweise erkennen wir in einem unserer Plots, dass von Mitte November bis Anfang Januar besonders viele positive Emojis verwendet wurden. Mit Hilfe der Zeitleiste können wir uns nun diesen Zeitraum genauer anschauen (siehe Abbildung 1).

Rechts neben der Zeitleiste befindet sich die Suchleiste. Hier können die Textdaten nach bestimmten Stichwörtern durchsucht und gefiltert werden. Es können auch mehrere Wörter miteinander kombiniert und so z.B. nach bestimmten Produkten oder Schlagwörtern gesucht werden.

Sentiment- und Volumen-Plots

Ein sehr ausschlaggebendes und dank KI ebenfalls aus dem Text extrahierbares Feature ist das Sentiment, welches die Empfindung bzw. die Gefühle des Autors als numerischen Wert beschreibt. Anhand dieser Information können Meinungen zu gewissen Themen, über die Zeit hinweg im Sentiment-Plot unter dem Filterbereich dargestellt werden. Um ein vollständigeres Meinungsbild zu schaffen, werden zusätzlich zum Sentiment der Textdaten auch Informationen wie Emojis, Bewertungen und Likes bzw. Dislikes mit einbezogen.

Neben dem Plot für das Sentiment wird auch die Anzahl der Tweets über die Zeit hinweg abgebildet. Beide Plots können verwendet werden, um Trends zu erkennen und dann bei Bedarf bestimmte Zeiträume zu analysieren. Diese beiden Kennzahlen werden oben rechts in der Kopfzeile mit dem durchschnittlichen Sentiment und der Summe aller Tweets aggregiert dargestellt.

GIF des Twitter Dashboards mit Veränderung des Zeitraums

Abbildung 2: Veränderung des zu betrachtenden Zeitraums

Emoji- und Wort-Analyse

Abbildung 3: Emoji- und Wort-Analyse der verschiedenen Gruppierungen

Bewegen wir uns nun auf die nächste Ebene des Dashboards. Dort finden wir auf der linken Seite eine maschinell erzeugte Analyse der Wörter und Emojis aus unseren Textdaten. In dieser tabellarischen Ansicht können bestimmte Gruppierungen miteinander verglichen werden. Anhand des Dropdown-Menüs werden Gruppierung wie Monat, Jahr, Wochentag oder Topic ausgewählt.

In den Tabellen wird daraufhin die Häufigkeit der Emojis bzw. Wörter pro Gruppierung dargestellt. So wird z.B. angezeigt welche Emojis im Oktober am häufigsten verwendet werden. Diese absolute Häufigkeit der Emojis/Wörter ist allerdings nicht immer besonders aussagekräftig, da die meistbenutzten Emojis/Wörter oft unabhängig von der Gruppe gleich sind. Man erkennt, dass das Emoji „➡“ unabhängig vom Monat, immer das beliebteste Emoji ist.

Um bessere Aussagen treffen zu können wird neben den häufigsten, zusätzlich die relevantesten und ungewöhnlichsten Emojis/Wörter in der Tabelle dargestellt. Um die Relevanz für jedes Emoji/Wort in einer Gruppierung zu bestimmen, wird ihr TF-IDF-Wert berechnet. Dieses statistische Maß wird zur Beurteilung der Relevanz von Termen in Dokumenten einer Dokumentenkollektion eingesetzt (Details am Ende des Blogposts). Bei der genaueren Betrachtung der relevantesten Emojis im Monat Dezember, bestätigt sich die logische Vermutung, dass das Thema Weihnachten sich hier in den Emojis wieder finden lässt (siehe Abbildung 3).

Durch diese Analyse lassen sich besondere Themen/Wörter in bestimmten Gruppierungen entdecken. In unseren AI-Tweets konnten wir so besonders leicht Events/Konferenzen identifizieren, da diese meist nur in einem bestimmten Monat genannt wurden und daher als ungewöhnlich und besonders relevant erkannt werden.

Topic Analyse

Abbildung 4: Übersicht der automatisch generierten Topics

Bei der Analyse einer großen Menge an Text-Informationen ist es sehr hilfreich, wenn sich diese in Themen bzw. Topics gruppieren lassen. Dadurch wird ein schneller Überblick über die Daten geschaffen und es ergeben sich neue Möglichkeiten mit den Daten zu interagieren und interessante und wertvolle Kenntnisse zu erlangen.

Mit Hilfe einer sogenannten Topic-Analyse werden die Themen in den Textdaten automatisch erkannt und jedem einzelnen Textobjekt eines oder mehrere dieser Topics zugewiesen. Dazu haben wir Machine-Learning Methoden aus dem Natural Language Processing (NLP) verwendet. Wir mussten dazu die Topics nicht selbst definieren, sondern sie werden vom Algorithmus automatisch auf Basis der Daten generiert. Details über das technische Vorgehen bei der Topic Analyse sind im letzten Abschnitt des Blogposts zu finden.

Mit Hilfe der erzeugten Topics können wir nun Trends und Themen über die Zeit hinweg analysieren. Dabei kann verfolgt werden wann und welche Themen besonders viel Aufmerksamkeit bekommen haben und wie die Stimmung zu bestimmten Themen ist.  Diese automatisch generierten Topics find wir in unserem Dashboard rechts neben der Emoji- und Wort-Analyse. Jede Karte ist ein Topic und wird mit einer Word Cloud dargestellt. Zusätzlich wird das durchschnittliche Sentiment und wie viele Tweets dem Topic angehören, dargestellt.

Der automatische Algorithmus hat unsere AI-Tweets in sinnvolle Topics eingeteilt. Die dabei entstandenen Topics entsprachen zum größten Teil wegen unserer Hashtag-Auswahl rund um das Thema AI, unseren Erwartungen. Dass das Thema Crypto-Währung in diesem Zusammenhang auch oft erwähnt wird, war eine neue Erkenntnis, welche wir dank des Dashboards identifizieren und genauer untersuchen konnten.

Dank der Topic Karten können wir die in der Wort-Analyse identifizierten Events und Konferenzen auch sehr einfach einem Themengebiete zuordnen. Wir müssen den Namen der Konferenz dazu nur in die Suchleiste eingeben und sehen wie sich die zugehörigen Tweets auf die einzelnen Topics verteilen.

Abbildung 5: Suche nach Event

Detailansicht

Für eine detailliertere Analyse der Topics, Emojis und Wörter, können diese selektiert werden. Klicken wir auf ein Emoji, Wort oder Topic werden uns in den unteren beiden Plots das Sentiment und die Anzahl der entsprechenden Tweets über die Zeit hinweg angezeigt. Damit können nun mehrere Emojis bzw. Wörter und auch Topics miteinander verglichen werden.

Abbildung 6: Vergleich unterschiedlicher Topics

Bei dem Vergleich unterschiedlicher Topics ist zu erkennen, dass das Sentiment des Topics News allgemein am positivsten ist und die Stimmung des Topics Crypto, im Vergleich zu den anderen Topics besonders stark schwankt.

Fazit

Mit diesem Twitter Dashboard haben wir eine repräsentative Umsetzung eines Dashboards zur intelligenten Analyse einer großen Menge an Dokumenten vorgestellt. Wir haben gezeigt, dass sich die Funktionen des Dashboards sowohl zu Beantwortung typischer Fragestellungen als auch für detaillierter Analysen nutzen lassen. Sie bieten dem Nutzer umfangreiche Möglichkeiten, um die gewünschten Textdaten dank Machine Learning optimal zu analysieren und deren Potential auszunutzen.

Bei Interesse an der technischen Umsetzung unsere Analysen können sie einfach weiterlesen und sich im Abschnitt Technische Umsetzung zusätzlich informieren.

Sollten wir mit diesem Artikel Ihr Interesse geweckt haben und Sie wollen ein Novatec-Dashboard zur Text-Analyse in ihrem Unternehmen nutzen, dann schauen Sie gerne auf unserer Website zum Thema Intelligente Dokumentenanalyse vorbei und zögern Sie nicht uns zu kontaktieren. Wir freuen uns!

Technische Umsetzung

Nachdem bereits alle Funktionen und Vorteile unserer KI-basierte Analyse und des Dashboards gezeigt wurden, werden im folgenden Abschnitt ein paar technischen Details der Umsetzung dargestellt. Das Frontend wurde mit der Python Library Dash realisiert und die Datenanalyse basiert auf NLP-Methoden, welche die menschliche Sprache zerlegen und darin und Muster und semantische Strukturen erkennen können.

Emoji und Wort Analyse mit NLP

Bevor die weitere Analyse auf die Textdaten angewandt werden können, werden diese  Vorverarbeitet. Dabei wurde mit dem Python Modul Natural Language Toolkit (NLTK) gearbeitet. Mit diesem Modul wurden sämtliche ungewünschten Textinhalte entfernt und einzelne Wörter extrahiert (Tokenisation), sowie auf ihren Wortstamm reduziert (Lemmatisation). Diese gesäuberten Texte dienen dann als Basis für weitere Analysen.

Bei dem tabellarischen Vergleich verschiedener Gruppierung (siehe 4.4) kam das TF-IDF Maße zum Einsatz. Es steht für „Term Frequency – Inverse Document Frequency” und ist ein Maß aus dem Bereich Information Retrieval. Wie bereits beschrieben lässt sich mit diesem Maß die Relevanz von Wörtern in Dokumenten einer Dokumentenkollektion darstellen. In unserem Fall sind die Dokumente die unterschiedlichen Gruppierungen der Tweets nach Monat, Jahr usw. Wie wird nun dieses TF-IDF Maß berechnet?

Die Formel zur Berechnung des TF-IDF Maßes für einen bestimmten Term (Wort) baut sich wie folgt auf:

Term-Frequency (Suchwortdichte): Gibt an, wie häufig der Term  im Dokument  vorkommt. Kann normalisiert werden indem durch die maximale Häufigkeit eines Terms in Dokument  geteilt wird. Bei so kurzen Inhalten wie Tweets hat es aber normalerweise den Wert 0 (Term ist nicht im Dokument) oder 1 (Term ist im Dokument).

Inverse Document-Frequency (Inverse Dokumenthäufigkeit): Es wird die Spezifität eines Terms    innerhalb aller zu betrachtenden Dokumenten gemessen.  Dies berechnet sich durch den Logarithmus von der Menge aller Dokumente . Es bestraft Terme, die in fast allen Dokumenten vorkommen und hebt seltene Terme hervor.

TF-IDF: Zur Berechnung des finalen Maßes werden die beiden Teile miteinander multipliziert.

Nachdem der TF-IDF Wert mit Hilfe des Python Moduls Scikit-learn für jedes Wort bzw. Emoji berechnet wurde, kann anhand dieses Wertes für jede Gruppierung die Wörter mit dem höchsten Wert und somit auch der höchsten Relevanz bestimmt werden. Diese werden dann in tabellarischer Form in der „Word and Emoji Analysis“ abgebildet.

Topic Generierung

Bei der Topic-Analyse wurden unsere Textdaten automatisch in unterschiedliche Topics eingeteilt. Dabei handelt es sich um einen Unsupervised Machine Learning Ansatz, der es sich gut für eine explorative Analyse eignet, weil keinerlei weitere Eingaben vom Nutzer benötigt werden. Es gibt unterschiedliche Methoden, die Tweets auf der Dokumentenebene in Topics einzuteilen. Die Latent-Dietrich-Alocation (LDA) und Non-negativ Matrix Factorization (NMF) sind die beliebtesten Methoden. Sie liefern beide sinnvolle Einteilungen der Dokumente in Topics. Im Rahmen unserer Textdaten lieferte die NMF Methode sinnvollere und eindeutigere Topics, weshalb wir diese hier genauer beschreiben werden.

Bei der NMF Methode wird, wie der Name schon sagt, versucht eine große Matrix als das Produkt zweier kleinerer Matrizen darzustellen. Die große Matrix ist in diesem Fall die Matrix, die abbildet in welchen Dokumenten welchen Wörter vorkommen. Diese lässt sich aus den Daten einfach ablesen. Durch das Faktorisieren kommt die Dimension der Topics hinzu und wir erhalten zwei Matrizen aus deren Einträgen wir ausgelesen können, welche Topics ein Dokument am meisten beeinflussen und welche Wörter dann jeweils die Topic am besten beschreiben.

Abbildung 7: Non-Negative Matrix Factorization

Die Einträge der Wörter-Dokumenten-Matrix sind nicht die Anzahl der Vorkommen, sondern der TF-IDF Wert der Wörter, da dieser die Relevanz darstellt und bessere Ergebnisse liefert.

Speichern und Filtern der Daten

Die Daten wurden für eine schnelle Verarbeitung lokal als ein Pandas DataFrame im Speicher gehalten. Das Durchsuchen der Textdokumente nach spezifischen Wörtern wird aber über eine Volltextsuche in ElasticSearch abgewickelt. Die Ergebnisse des Suche wird dann mit den lokalen Daten vereint und im Dashboard dargestellt.

Artikel kommentieren