Laden Sie \(n=10^k\) Tweets von Twitter herunter (mit \(k=2\)) via der Twitter API; Suchterm soll sein “(karl_lauterbach?)”. Bereiten Sie die Textdaten mit grundlegenden Methoden des Textminings auf (Tokenisieren, Stopwörter entfernen, Zahlen entfernen, …).
Nutzen Sie die Daten, um eine Sentimentanalyse zu erstellen.
Solution
Nutzen Sie die Daten der letzten Aufgabe, um eine Sentimentanalyse zu erstellen.
Zuerst muss man sich anmelden und die Tweets herunterladen; dieser Teil ist hier nicht aufgeführt (s. andere Aufgaben).
library(rtweet)library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.3 ✔ readr 2.1.4
✔ forcats 1.0.0 ✔ stringr 1.5.0
✔ ggplot2 3.4.4 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.0
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ purrr::flatten() masks rtweet::flatten()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidytext)library(lsa) # Stopwörter
Loading required package: SnowballC
library(SnowballC) # Stemming
Beachten Sie, dass die Spalten je nach Funktion, die Sie zum Herunterladen der Tweets verwenden, unterschiedlich heißen können.
karl2 <- karl1 %>%select(contains("text"))
karl3 <- karl2 %>%unnest_tokens(output = word, input = text)
Achtung, Sentimentanalyse sollte vor dem Stemming kommen.
Categories:
textmining
twitter
Source Code
---extype: stringexsolution: NAexname: twitter05expoints: 1categories:- textmining- twitterdate: '2022-10-28'slug: twitter05title: twitter05---# ExerciseLaden Sie $n=10^k$ Tweets von Twitter herunter (mit $k=2$) via der Twitter API; Suchterm soll sein "@karl_lauterbach".Bereiten Sie die Textdaten mit grundlegenden Methoden des Textminings auf (Tokenisieren, Stopwörter entfernen, Zahlen entfernen, ...).Nutzen Sie die Daten,um eine Sentimentanalyse zu erstellen.</br></br></br></br></br></br></br></br></br></br># SolutionNutzen Sie die Daten der letzten Aufgabe,um eine Sentimentanalyse zu erstellen.Zuerst muss man sich anmelden und die Tweets herunterladen;dieser Teil ist hier nicht aufgeführt (s. andere Aufgaben).```{r}library(rtweet)library(tidyverse)library(tidytext)library(lsa) # Stopwörterlibrary(SnowballC) # Stemming``````{r read-karl1, echo=FALSE}karl_raw <- read_rds(file = "/Users/sebastiansaueruser/datasets/Twitter/hate-speech/tweets_to_Karl_Lauterbach_2021.rds")karl1 <- karl_raw %>% slice_head(n = 100)```Beachten Sie, dass die Spalten je nach Funktion, die Sie zum Herunterladen der Tweets verwenden, unterschiedlich heißen können.```{r}karl2 <- karl1 %>%select(contains("text"))``````{r}karl3 <- karl2 %>%unnest_tokens(output = word, input = text)``````{r}karl4 <-karl3 %>%anti_join(tibble(word = lsa::stopwords_de)) ``````{r}karl5 <- karl4 %>%mutate(word =str_replace_na(word, "^[:digit:]+$")) %>%mutate(word =str_replace_na(word, "hptts?://\\w+")) %>%mutate(word =str_replace_na(word, " +")) %>%drop_na()``````{r}data(sentiws, package ="pradadata")``````{r}karl7 <- karl5 %>%inner_join(sentiws)``````{r}karl7 %>%group_by(neg_pos) %>%summarise(senti_avg =mean(value, na.rm =TRUE),senti_sd =sd(value, na.rm =TRUE),senti_n =n())```Achtung, Sentimentanalyse sollte *vor* dem Stemming kommen.---Categories: - textmining- twitter