Skip to content

Digital Analytics Blog

von Marcus Stade

Menu
Menu
report sentimentanalyse googleanalytics

Stimmungen in Texten analysieren mit der Google Cloud Platform

Posted on 4. August 20194. August 2019 by mstade

Für die maschinelle Analyse und Bewertungen von Texten gibt es viele Anwendungsfälle, zum Beispiel das Einordnen von Produktreviews in Online-Shops oder auch Kommentaren in Blogs. Mit Sentimentanalysen können in Texten eine positive oder negative Haltung erkannt werden. Maschinell kann damit eine Quantifizierung der Texte erfolgen, ohne dass deren Bedeutung von Menschen erfasst werden muss. Die Google Cloud Platform bietet mit der Natural Language API eine Sentiment-Analyse Funktion für dieses Zweck.

In diesem Beispiel sollen Kommentare in einem Blog ausgewertet werden, die eine Bewertung mit Google Analytics ermöglicht. Die Bewertung in Google Analytics sieht dann wie folgt aus:

report sentimentanalyse googleanalytics score
Report der durchschnittlichen Bewertung des Kommentarinhalts

Für die Verteilung der Kommentarklassifizierung wird folgendes Reporting verwendet:

report sentimentanalyse googleanalytics
Report der Kommentarklassifizierung in Google Analytics

Auf Artikelebene soll in einem Report die Anzahl der Kommentare, die Summe der Scores, die Summe der Magnitude und die durchschnittliche Bewertung des Scores dargestellt werden. Score ist dabei das Ergebnis der Bewertung hinsichtlich positiver oder negativer Äußerung. Magnitude bewertet die Emotinalität der Aussage. Aus dem AVG Score kann dann eine Bewertung der Kommentare zu jedem Artikel abgeleitet werden.

Der Ablauf

Um diese Auswertung in Google Analytics zu erhalten, wird folgender Workflow benutzt:

workflow_sentimentanalyse_cloudfunction
Workflow der Sentimentanalyse

Wird das Kommentarformular abgesendet, werden alle notwendigen Daten über den Google Tag Manager an eine Cloud Function gesendet. Dort wird der Text mithilfe der Natural Language API bewertet. Aus der Cloud Function heraus, senden wir die Daten an Google Analytics per Measurement Protocol.

Die Analyse per Google Tag Manager starten

Um die Analyse zu starten, wird aus dem Google Tag Manager ein POST Request an die Cloud Function gesendet. Hier kann eine einfache Funktion für AJAX Requests verwendet werden:

postrequest sentimentanalyse
Post-Request im Google Tag Manager zum Aufruf der Cloud Function

Folgenden Daten senden wir an die Cloud Function:

  • den zu analysierenden Text
  • die Seiten-URL (Google Tag Manager Built-In Variable: Page URL)
  • die Google Analytics Client-ID, die im Measurement-Protocol Hit verwendet werden soll

Den zu analysierenden Text wird über eine Custom Javascript Variable aus dem Formularfeld ausgelesen:

postrequest kommentartext js
Javascript Function, die den Wert des Kommentafeldes liefert

Die Google Analytics Client ID wird ebenfalls per Custom Javascript Variable in den dataLayer geschrieben:

googleanalytics clientid datalayer
Google Analytics clientID in den dataLayer schreiben

Die in den dataLayer vorhandene ClientID wird dann in die dataLayer Variable clientID eingelesen. Auf einem passenden GTM-Trigger Form-Submit werden die Daten dann an die Cloud Function gesendet:

senddata sentimentanalyse cloudfunction
Aufruf der sendData Funktion

Datenverarbeitung in der Cloud-Function

Eine Python Cloud Function wird in der Google Cloud Platform angelegt. Die Function sentiment() wird dabei als Einstiegsfunction festgelegt:

sentimentanalyse cloudfunction part1

Zuerst wird headers definiert. Die Einstellungen in headers müssen bei der Antwort des Servers mitgeliefert werden, da diese sonst aufgrund der Cross-Origin-Ressource-Sharing Policy (CORS Policy) im Browser nicht akzeptiert wird (inkl. Fehlermeldung in der Console).

Dann werden die POST Parameter ausgelesen. Für eine produktive Nutzung sind hier Validierungen basierend auf dem Use-Case sinnvoll. Danach wird der Text eine Funktion übergeben, die ein Objekt mit Score und Magnitude zurückliefert. Score wird in einer Range von -1 (sehr negativ) bis +1 (sehr positiv) bewertet. Magnitude wird als positive Zahl angegeben. Beides wollen wir in Google Analytics als Metric (Integer) verwenden um auch Berechnungen in Google Analytics vorzunehmen. Da der Score auch negativ sein kann, addieren wir 1. Das heißt, das Minimum ist nun 0 (sehr negativ) und das Maximum ist 2 (sehr positiv). Die Zahl wird mit 100 multipliziert, gerundet und in eine Ganzzahl umgewandelt. Für jeden Kommentar kann daher der Score 0 bis 200 in Google Analytics betragen. Entsprechend ist auch der AVG Score auf dieser Skala.

Ebenfalls kann eine Einordnung des Score in eine Klassifizierung erfolgen, beispielsweise:

  • -1 bis -0.25: negativ
  • -0.24 bis 0.24: neutral
  • 0.25 bis 1: positiv

Diese wird als Custom Dimension nach Google Analytics gesendet und ermöglicht somit die Auswertung anhand dieser Dimension.

Danach wird per Measurement-Protocol ein Event an Google Analytics mit der ClientID gesendet. Die Event Action enthält dabei PageURL und Event-Label den Score. Da Kalkulationen auf Basis von Score und Magnitude in Google Analytics erfolgen sollen, werden diese als Custom Metric 1 und 2 gesendet. In Google Analytics sind die Custom Metrics mit Hit-Scope angelegt.

Am Ende wird der Header mit dem Antwortcode 200 zurückgeliefert und die Function beendet.

Für die Funktion für die Analyze des Textes wird die folgende Funktion genutzt, die sich sehr nah an der Dokumentation der Natural Language API orientiert:

sentimentanalyse cloudfunction part2

Zudem muss im Interface der Google Cloud Platform die API für Natural Language aktiviert werden.

Die gesamte Cloud Function:

sentimentanalyse cloudfunction full

Google Analytics Report erstellen

Für den Report werden die beiden Custom Metrics angelegt:

report sentimentanalyse googleanalytics custommetrics

die Custom Dimension:

report sentimentanalyse googleanalytics customdimension

sowie die Calculated Metrics, die die durchschnittliche Bewertung errechnet:

report sentimentanalyse googleanalytics calcmetrics

Nun können die Reports angelegt werden:

report create sentimentanalyse googleanalytics
Report für die durchschnittliche Bewertung der Kommentare auf URL Ebene (= Event Action)

Event Action schlüsselt die Metriken anhand der URL auf. Über AVG Score kann nun die Bewertung der Artikel auf Basis der Kommentare erfolgen.

report create contentclassification googleanalytics
Report für die Klassifizierung der Kommentare auf URL Ebene (= Event Action)

Mithilfe der Custom Dimension CommentClassification kann die Verteilung von negativen, neutralen und positiven Kommentaren ausgewertet werden.

1 thought on “Stimmungen in Texten analysieren mit der Google Cloud Platform”

  1. Pingback: BP 3.01: Google Optimize Podcast

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Keep in Touch

Supporter: InPignus GmbH

ImPignus

mohrstade

mohrstade.de

Analytics Pioneers

Schlagwörter

App+Web App-Tracking Basic Big Query Customer Data Platform DataQuality DataStudio Events Google Analytics für Firebase ITP Machine Learning Property PWA Quick-Tipp User-Journey Wordpress Überblick

Podcast Empfehlung:

beyond pageview

Neueste Beiträge

  • Tag Management Platform: Commanders Act Platform X – DataCollection (Teil 2)
  • Tag Management Platform: Übersicht (Teil 1)
  • IP und User Agent Identifier: Nachteile
  • GA4 Recipes: Machine Learning Features für Predictive Audiences in anderen Tools nutzen, am Beispiel von Tealium AudienceStream
  • Quick Tipp: GA4 Configuration Tag vs. Universal Analytics Setting Variable – Sequence matters

Kategorien

  • Allgemein
  • Cloud
  • Dashboard
  • Firebase Analytics
  • Google Analytics
  • Google Analytics 4 (App+Web)
  • Google Optimize
  • Google Tag Manager
  • Machine Learning
  • Matomo
  • Tag Management

Links

  • Datenschutzerklärung
  • Hear Me Speak
  • Impressum
  • Meet & Eat
  • Über den Blog
©2023 Digital Analytics Blog | Built using WordPress and Responsive Blogily theme by Superb