How to enable Multi-Language Sentiment Analysis with R

Have you seen how easy it is to integrate sentiment analysis in your Tableau dashboard – if your text is in English?

Until now the sentiment package for R only worked with English text. Today, I released version 1.0 of the sentiment package on GitHub that features multi-language support. In order to perform sentiment analysis with German text, just add the parameter language="german" as shown in this example:

Demo showing Multi-Language Sentiment Analysis with English and German text
Demo showing Multi-Language Sentiment Analysis with English and German text

The new code allows you to add any language. So far, I started to prepare German sentiment files. French and Spanish sentiment files are on my to-do list.

Digitale Banken: Die Zukunft des Privatkundengeschäfts und der Vermögensverwaltung

Interaktive Portfolio-Übersicht mit Tableau
Interaktive Zusammenstellung eines Portfolios mit automatischer Gewichtung auf Grundlage der Sharpe-Ratio

Vor gut einem Jahr habe ich mit dem Blog-Post „Digitale Banken: Welche Anforderungen bringt die Digitalisierung?“ einige Ideen aufgezeigt, wie sich Banken die Digitalisierung zu Nutze machen können. Die Motivation ist meist die Steigerung des Umsatzes, Kostenersparnis und die Erschließung neuer Märkte. Die Herausforderungen sind nach wie vor schwindenden Zinserträge, härtere regulatorische Vorschriften, erhöhter Wettbewerb und anspruchsvolle Kunden.

Seither war ich an vielen weiteren Projekten im Finanzwesen beteiligt und sehe, dass besonders das Privatkundengeschäfts und die Vermögensverwaltung von der Digitalisierung profitieren. Dabei habe ich drei Kernbereiche ausgemacht, die ich nachfolgend etwas mehr in den Fokus rücken möchte.

1. Payment und Zahlungsverkehr

Vielen Menschen fällt es schwer sich die sperrige IBAN zu merken. Die Email-Adressen, die Handynummer und den Fingerabdruck haben die meisten allerdings immer parat. Neue technische Möglichkeiten treffen so auf veränderte Verbraucherbedürfnisse. Zahlungen werden immer häufiger mit dem Smartphone abgewickelt – ohne Eingabe einer IBAN. Zahlungen werden schneller – kein ganzer Tag vergeht zwischen Kontobelastung und Gutschrift, sondern nur wenige Sekunden.

Außerdem werden Zahlungen dezentral. Dazu befasst sich der Finanzsektor zunehmend mit der Blockchain-Technologie (wie hier die Deutsche Bank), mit welcher nicht nur Überweisungen sondern auch Wertpapierhandel möglich sind. Insbesondere große Institute tun sich mit der Blockchain-Technologie allerdings schwer, da die zentrale Kontrolle des Zahlungsverkehrs auch als Instrument zur Kundenbindung verstanden wird.

2. Finanzierung und Kreditvergabe

Bei der Finanzierung und Kreditvergabe stehen neue/bessere Algorithmen im Mittelpunkt. Mit diesen möchte man stets folgende Fragen beantworten: Wie lässt sich der Credit Score optimal ermitteln? Wie empfehlen wir unseren Kunden proaktiv das richtige Finanzprodukt?

Die Konstruktion von Entscheidungsbäumen, eine Form des Maschinellen Lernens, ist für solche Algorithmen eine tragende Säule. Hierbei ist es ratsam die Ergebnisse immer wieder zu kontrollieren und gegebenfalls über Parameter die Gewichtung bestimmter Variablen zu korrigieren. Sonst kann es womöglich passieren, dass einem Gutverdiener der Dispo gestrichen wird, weil sein Gehaltseingang nicht als solcher erkannt wird; oder einem Rentner ein Bausparvertrag angepriesen wird, weil sein Social-Media-Profil einen solchen Bedarf vermuten lässt.

3. Beratungsplattformen für die Vermögensanlage

Zu Zeiten der Null-Zins-Politik ist bei der Vermögensanlage zunehmend Kreativität gefragt. Diese lässt sich schwer in starren Systemen aus dem Zeitalter der Mainframes abbilden. Stattdessen lassen sich Anlagestrategien aus unterschiedlichen Blickwinkeln mit Analytics-Anwendungen, wie Tableau („Datenanalyse für Banken„), beleuchten und sich ggf. um quantitative Funktionalität aus R anreichern.

Beispielsweise lässt sich mit Hilfe der Sharpe-Ratio interaktiv eine optimale Portfolio-Gewichtung berechnen, und die Williams-Percent-Range als Indikator für Chart-Trends nutzen. Ein solcher Self-Service-Gedanke passt zur Unternehmenskultur der Datendemokratisierung und lässt auch die Mitarbeiter aus Vertrieb und Beratung an der Digitalisierung teilhaben.

 

Alle hier gezeigten Beispiele sind echten Szenarien nachempfunden. Die Portfolio-Optimierung kann als Tableau Packaged Workbook (twbx) hier heruntergelanden werden, und benötigt Tableau mit R-Integration. Auch hierzu freue ich mich wieder über Feedback, Fragen und Anregungen…

Predictive Maintenance Beispiele: 4 Methoden zur Kostenoptimierung durch Predictive Maintenance

Predictive Maintenance Beispiele: PdM Dashboard auf Tableau Mobile und IoT Realtime Feed auf Tableau Desktop
Predictive Maintenance Beispiele: PdM Dashboard auf Tableau Mobile und IoT Realtime Feed auf Tableau Desktop

Einführung: Warum ist Predictive Maintenance wichtig?

Instandhaltungskosten tragen wesentlich zu den Produktionskosten bei, wobei sie je nach Branche auf 15 bis 60 Prozent der Gesamtkosten geschätzt werden. Predictive Maintenance (PdM), die vorausschauende Instandhaltung, hat das Potenzial, diese Kosten deutlich zu senken.

Unsere Erfahrungen und die ausführlichen Beispiele in meinem Buch zur Digitalisierung Decisively Digital: From Creating a Culture to Designing Strategy (Amazon) zeigen, dass Predictive Maintenance die Gesamtkosten einer Maschine während ihrer gesamten Lebensdauer reduzieren kann.

Das Prinzip von Predictive Maintenance

Predictive Maintenance zielt darauf ab, den Ausfall einer Maschine vorherzusagen und somit die Wartung zu optimieren. Die Wartungsarbeiten erfolgen nur dann, wenn ein Ausfall voraussichtlich eintreten wird. Doch wie lässt sich diese Vorhersage treffen?

Jene Vorhersagen, die häufig im Kontext mit Industrie 4.0 gesehen werden, lassen sich auf Grundlage folgender Fakten treffen:

  • Aktuelle Sensordaten: Wie verhält sich die Maschine gegenwärtig?
  • Historische Sensordaten: Wie hat sich die Maschine in der Vergangenheit verhalten?
  • Benachbarte Sensordaten: Wie haben sich andere, ähnliche Maschinen verhalten?
  • Instandhaltungsprotokoll: Wann wurde die Maschine zuletzt gewartet oder getauscht?
  • Instandhaltungsempfehlung: Welche Wartungsintervalle empfiehlt der Hersteller?

Methoden zur Interpretation von IoT-Daten

Solche Daten aus dem Internet der Dinge (IoT) lassen sich nun nicht ohne weiteres sinnvoll auf einem Dashboard darstellen. Ein Blick auf die bloßen Daten lässt hier kaum Schlüsse zu. So ist es für erfolgreiches Predictive Maintenance essentiell, dass statistische Methoden wie diese angewandt werden:

1. Mustererkennung: Durch das Identifizieren von Mustern zwischen bestimmten Ereignissen und Maschinenausfällen können wir voraussagen, wann und warum eine Maschine ausfallen könnte. Zum Beispiel könnte eine Maschine, die bei der Verarbeitung eines bestimmten Materials besonders belastet wird, eher ausfallen.

2. Trendmodell: Ein Trendmodell gibt den zeitlichen Verlauf der Maschinenperformance bis zu einem Ausfall wieder. Dies kann durch verschiedene Regressionsansätze modelliert und in drei Komponenten unterteilt werden: Trend, Saison und Rauschen.

3. Ereigniszeitanalyse: Die Analyse historischer Daten zu Ausfällen liefert ein weiteres Modell, das gegen aktuelle Messdaten gelegt werden kann, um damit die Dauer bis zum nächsten Ausfall bestimmen zu können.

4. Kritische Schwellwerte: Eine Überprüfung, ob bestimmte Schwellenwerte überschritten wurden, kann ebenfalls Hinweise auf einen bevorstehenden Ausfall geben. Diese Schwellenwerte können initial von Experten festgelegt und später durch maschinelles Lernen angepasst werden.

Diese Methoden lassen sich zum Beispiel in Python und R implementieren. Die Resultate zeigen konkrete Handlungsempfehlungen und eignen sich somit ausgezeichnet für Dashboards, die auch auf Tablets oder Smartphones gut zur Geltung kommen und fortlaufend aktualisiert werden.

Feedback und weiterführende Literatur

Wenn Sie mehr über Predictive Maintenance und über die Anwendung von digitalen Strategien in Ihrer Organisation erfahren möchten, empfehle ich Ihnen mein Buch Decisively Digital: From Creating a Culture to Designing Strategy (Amazon).

Was sind Ihre Gedanken zu Predictive Maintenance? Welche Daten und Methoden nutzen Sie für Ihre Instandhaltungsstrategie? Ich freue mich auf Kommentare und Anregungen. Teilen Sie uns Ihre Erfahrungen und Vorschläge in den Kommentaren mit:

Update: Predictive Maintenance mit Tableau wird außerdem auf der CeBIT am Stand der Deutschen Telekom im Rahmen von „Echtzeit-Analysen von Maschinendaten und externen Datenquellen“ vorgestellt:

„Predictive Maintenance Beispiele: 4 Methoden zur Kostenoptimierung durch Predictive Maintenance“ weiterlesen

How to implement Sentiment Analysis in Tableau using R

Interactive sentiment analysis with Tableau using R
Interactive sentiment analysis with Tableau using R

In my previous post I highlighted Tableau’s text mining capabilities, resulting in fancy visuals such as word clouds:

Today I’d like to follow up on this and show how to implement sentiment analysis in Tableau using Tableau’s R integration. Some of the many uses of social media analytics is sentiment analysis where we evaluate whether posts on a specific issue are positive, neutral, or negative (polarity), and which emotion in predominant.

What do customers like or dislike about your products? How do people perceive your brand compared to last year?

In order to answer such questions in Tableau, we need to install an R package that is capable of performing the sentiment analysis. In the following example we use an extended version of the sentiment package, which was initiated by Timothy P. Jurka.

The sentiment package requires the tm and Rstem packages, so make sure that they are installed properly. Execute these commands in your R console to install sentiment from GitHub (see alternative way to install at the end of this blog post):


install.packages("devtools")
library(devtools)
install_github("aloth/sentiment/sentiment")

The sentiment package offers two functions, which can be easily called from calculated fields in Tableau:

Screenshot 2016-01-31 15.25.24 crop

The function get_polarity returns „positive“, „neutral“, or „negative“:


SCRIPT_STR('
library(sentiment)
get_polarity(.arg1, algorithm = "bayes")
'
, ATTR([Tweet Text]))

The function get_emotion returns „anger“, „disgust“, „fear“, „joy“, „sadness“, „surprise“, or „NA“:


SCRIPT_STR('
library(sentiment)
get_emotion(.arg1, algorithm = "bayes")
'
, ATTR([Tweet Text]))

The sentiment package follows a lexicon based approach and comes with two files emotions_english.csv.gz (source and structure) and subjectivity_english.csv.gz (source and structure). Both files contain word lists in English and are stored in the R package library under /sentiment/data directory.

If text is incorrectly classified, you could easily fix this issue by extending these two files. If your aim is to analyze text other than English, you need to create word lists for the target language. Kindly share them in the comments!

Feel free to download the Packaged Workbook (twbx) here.

Update 11 Aug 2016: If you are having trouble with install_github, try to install directly form this website:


install.packages("Rcpp")
install.packages("http://alexloth.com/utils/sentiment/current/sentiment.zip",repos=NULL)

How to perform Text Mining at the Speed of Thought directly in Tableau

Interactive real-time text mining with Tableau Desktop 9.2
Interactive real-time text mining with Tableau Desktop

Tableau is an incredibly versatile tool, commonly known for its ability to create stunning visualizations. But did you know that with Tableau, you can also perform real-time, interactive text mining? Let’s delve into how we can harness this function to gain rapid insights from our textual data.

Previously, during text mining tasks, you might have found yourself reaching for a scripting language like R, Python, or Ruby, only to feed the results back into Tableau for visualization. This approach has Tableau serving merely as a communications tool to represent insights.

However, wouldn’t it be more convenient and efficient to perform text mining and further analysis directly in Tableau?

While Tableau has some relatively basic text processing functions that can be used for calculated fields, these often fall short when it comes to performing tasks like sentiment analysis, where text needs to be split into tokens. Even Tableau’s beloved R integration does not lend a hand in these scenarios.

The Power of Postgres for Text Mining in Tableau

Faced with these challenges, I decided to harness the power of Postgres‘ built-in string functions for text mining tasks. These functions perform much faster than most scripting languages. For example, I used the function regexp_split_to_table for word count, which takes a piece of text (like a blog post), splits it by a pattern, and returns the tokens as rows:

select
guid
, regexp_split_to_table(lower(post_content), '\s+') as word
, count(1) as word_count
from
alexblog_posts
group by
guid, word

Incorporating Custom SQL into Tableau Visualization

I joined this code snippet as a Custom SQL Query to my Tableau data source, which is connected to the database that is powering my blog:

Join with Custom SQL Query in Tableau applying the Postgres function regexp_split_to_table
Join with Custom SQL Query in Tableau applying the Postgres function regexp_split_to_table

And here we go, I was able to create an interactive word count visualization right in Tableau:

This example can be easily enhanced with data from Google Analytics, or adapted to analyze user comments, survey results, or social media feeds. The possibilities for Custom SQL in Tableau are vast and versatile. Do you have some more fancy ideas for real-time text mining with Tableau? Leave me a comment!

Update (TC Pro Tip): Identifying Twitter Hashtags in Tableau

A simple calculated field in Tableau can help identify words within tweets as hashtags or user references, eliminating the need for another regular expression via a Custom SQL Query:

CASE LEFT([Word], 1)
WHEN "#" THEN "Hash Tag"
WHEN "@" THEN "User Reference"
ELSE "Regular Content"
END

Looking for an example? Feel free to check out the Tweets featuring #tableau Dashboard on Tableau Public and download the Packaged Workbook (twbx):

Tableau dashboard that shows tweets featuring the hashtag #tableau (presented at Tableau Conference)
Tableau dashboard that shows tweets featuring the hashtag #tableau (presented at Tableau Conference)

Any more feedback, ideas, or questions? I hope this post provides you with valuable insights into how to master text mining in Tableau, and I look forward to hearing about your experiences and creative applications. You can find more tutorials like this in my new book Visual Analytics with Tableau (Amazon).

Transparency: This blog contains affiliate links. If you click on them, you will be redirected to the merchant. If you decide to make a purchase, we will receive a small commission. The price does not change for you. Affiliate links have no influence on our writing.