Stopwörter filtern
Unwichtige Wörter entfernen
Wir haben nun jeweils ein Wort pro Zeile in der Spalte word. Das ermöglicht es uns nun theoretisch, Analysen auf den Texten mittels SQL durchzuführen. Wir könnten z.B. zählen, welches Wort in allen Tweets am häufigsten vorkommt:
select word, count(1) as `Anzahl`
from tweets_words
group by word
order by `Anzahl` descJe nach Datensatz wird bei euch nun z. B. ein Wort wie "organic" weit oben stehen. Das ist nicht verwunderlich, da wir im ersten Schritt die Tweets nach diesem Wort gefiltert haben. Sehr weit oben stehen aber auch Wörter wie "a", "the", "is", "to", "rt" usw. Das sind Wörter, die in der englischen Sprache häufig vorkommen, uns aber wenig Aufschluss in der Analyse geben. Deshalb sind sie unerwünscht, und wir nennen sie auch Stopwörter.
Wir könnten nun eine Liste von Stopwörtern erstellen und diese aus der Menge mittels where Bedingung ausschließen:
select word, count(1) as `Anzahl`
from tweets_words
-- Ausschluss bestimmter Füllwörter
where word not in ('to', 'the', 'rt', 'a')
group by word
order by `Anzahl` descWenn wir die Liste für alle Stopwörter erweitern, wird diese sehr lang und das SQL-Statement unübersichtlich. Zudem dauert das eine Weile. Glücklicherweise sind wir nicht die Ersten mit diesem Problem, und kluge Leute haben Listen für verschiedene Sprachen veröffentlicht, wie z.B. diese hier.
Angenommen, wir haben diese Liste als neue Tabelle stopwords in Databricks importiert. Wir können nun eine Unterabfrage statt der manuellen Liste nutzen:
select word, count(1) as `Anzahl`
from tweets_words
-- Eine Tabelle statt manueller Liste
where word not in (select word from stopwords)
group by word
order by `Anzahl` descDas Ergebnis aus Schritt 4 als View sähe demnach so aus:
Links
Last updated
Was this helpful?