Emoticons extrahieren
In diesem Abschnitt schauen wir uns an, wie wir systematisch Emojis aus Tweets auslesen und auswerten können.
Das folgende Notebook enthält Codebeispiele für das Extrahieren und Analysieren von Emoticons in Tweets (und anderen Texten):
Emotionen über Emojis identifizieren
Eine einfache Möglichkeit nach Emojis zu suchen ist die Verwendung des LIKE
Operators:
Damit können wir Texte zumindest nach dem Vorkommen einzelner Emojis hin untersuchen. Das reicht aber für erweiterte Analysen nicht aus. Besser wäre es, wenn wir aus den Texten (hier: Tweets) mit einem Befehl alle Emojis extrahieren könnten und mit einer Tabelle bekannter Emojis und deren Bedeutung abgleichen könnten. Wie das geht, beschreibe ich im Folgenden.
Emojis mit Scala/Python und UDFs extrahieren
Emoticons extrahieren
In Databricks können wir neben SQL auch Scala oder Python verwenden. Scala ist die Programmiersprache, mit der Apache Spark entwickelt wurde (Spark SQL ist ein Teil von Apache Spark). In Scala ist es mit einem Befehl über einen regulären Ausdruck möglich, alle Emojis zu extrahieren. Wir verpacken die Zeile noch in eine neue Funktion oder User Defined Function (UDF), so dass wir sie anschließend auch aus SQL heraus aufrufen können:
Emoticons und sonstige Symbole extrahieren
Neben den älteren Emojis gibt es mittlerweile eine ganze Reihe weiterer Symbole, die ebenfalls erkannt werden können. Dazu müssen lediglich die Unicode-Blöcke Dingbats und Miscellaneous Symbols and Pictographs zusätzlich zum Block Emoticons hinzugefügt werden:
Emojis mit SQL analysieren
Die Zeile 2 sorgt dafür, dass die neue Funktion findEmoticons
auch in SQL verfügbar ist. Wir können sie dann einfach auf die Spalte text
anwenden:
Das Ergebnis der Funktion ist eine neue Spalte als Liste (Array) von Emojis:
Wie wir mit Arrays in SQL umgehen ist bekannt bzw. könnt ihr im dafür vorgesehenen Tutorial nachlesen. Wir können z.B. explode
verwenden, um pro Zeile ein Emoji zu erhalten:
Der Vorteil, dass wir genau ein Emoji in einer Spalte haben, liegt auf der Hand: Wir können z.B. die neue Spalte emoji
nutzen, um die Daten mit einer Liste von bekannten Emojis und deren Bedeutung zu verbinden. Diese Liste können wir uns z.B. selbst als Google Spreadsheet aufbauen, oder wir suchen nach einer solchen Liste im Internet.
Zur Demonstration habe ich eine Liste mit einigen Emojis und deren emotionaler Bedeutung in Google Spreadsheets angelegt, die ihr wie folgt laden könnt:
Nach dem Ausführen des obigen Blocks habt ihr die neue Tabelle emoji_meaning
in eurem Databricks Account:

Jetzt müssen wir die beiden Tabellen nur noch zusammenbringen:
Fehlende Emojis pflegen
Wie wir schnell erkennen können, haben einige Zeilen in der Spalte meaning
den Wert null
. Das bedeutet, wir haben in unserer Tabelle emoji_meaning
, also im Google Spreadsheet, dieses Emoji noch nicht mit einer Bedeutung versehen. Das können wir nachholen, die Tabelle neu laden, und das obige Statement erneut ausführen. Um möglichst schnell auf die fehlenden Emojis zu stoßen, können wir das Ergebnis entsprechend filtern:
Viel Spaß beim Analysieren!
🔗 Links
Last updated
Was this helpful?