Extract Emoticons
In diesem Abschnitt schauen wir uns an, wie wir systematisch Emojis aus Tweets auslesen und auswerten können.
Last updated
Was this helpful?
In diesem Abschnitt schauen wir uns an, wie wir systematisch Emojis aus Tweets auslesen und auswerten können.
Last updated
Was this helpful?
Das folgende Notebook enthält Codebeispiele für das Extrahieren und Analysieren von Emoticons in Tweets (und anderen Texten):
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.
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:
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:
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:
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!
Neben den älteren Emojis gibt es mittlerweile eine ganze Reihe weiterer Symbole, die ebenfalls erkannt werden können. Dazu müssen lediglich die Dingbats und Miscellaneous Symbols and Pictographs zusätzlich zum Block Emoticons hinzugefügt werden:
Wie wir mit Arrays in SQL umgehen ist bekannt bzw. könnt ihr im nachlesen. Wir können z.B. explode
verwenden, um pro Zeile ein Emoji zu erhalten: