DTM vs. tidytext-Matrix
Das tidyverse ist eine Sammlung von R-Paketen mit gemeinsamen Prinzipien, die nahtlos zusammenarbeiten. In diesem Kapitel lernst du einige Tidy-Funktionen zur Datenmanipulation kennen. In dieser Übung vergleichst du eine DTM mit einem Tidy-Text-Daten-Frame, einem sogenannten Tibble.
Im tidyverse entspricht jede Beobachtung genau einer Zeile in einem Data Frame. Das erleichtert das Arbeiten in verschiedenen Paketen, weil die grundlegende Datenstruktur dieselbe ist. Teile dieses Kurses stützen sich stark auf das Paket tidytext, das genau diese Datenorganisation nutzt.
Vielleicht kennst du bereits den Operator %>% aus dem Paket magrittr. Er übergibt das Objekt auf der linken Seite als erstes Argument an die Funktion auf der rechten Seite.
Im Beispiel unten übergibst du das Objekt data an function1(). Beachte, dass die Klammern leer sind. Dessen Ergebnis wird dann an function2() weitergereicht. In der letzten Funktion musst du das Objekt data nicht mehr hinzufügen, weil es aus der Ausgabe von function1() weitergereicht wurde. Du ergänzt jedoch einen fiktiven Parameter some_parameter als TRUE. Diese Pipes erzeugen am Ende das object.
object <- data %>%
function1() %>%
function2(some_parameter = TRUE)
Um den Operator %>% zu verwenden, musst du magrittr nicht zwingend laden, da er auch in dplyr verfügbar ist.
dplyr enthält außerdem die Funktionen inner_join() (dazu später mehr) und count() zum Aufsummieren von Daten. Die letzte Funktion, die du brauchst, ist mutate(), um neue Variablen zu erstellen oder bestehende zu verändern.
object <- data %>%
mutate(new_Var_name = Var1 - Var2)
oder um eine Variable zu verändern
object <- data %>%
mutate(Var1 = as.factor(Var1))
Du wirst außerdem pivot_wider() aus tidyr verwenden, um die Daten so zu organisieren, dass jede Zeile einer Textzeile aus dem Buch entspricht und die positiven bzw. negativen Werte als Spalten vorliegen.
| index | negative | positive |
|---|---|---|
| 42 | 2 | 0 |
| 43 | 0 | 1 |
| 44 | 1 | 0 |
Um eine DTM in ein Tidy-Format zu überführen, nutze tidy() aus dem Paket broom.
tidy_format <- tidy(Document_Term_Matrix)
Diese Übung verwendet Text aus der griechischen Tragödie „Agamemnon". „Agamemnon" ist eine Geschichte über eheliche Untreue und Mord. Du kannst eine Kopie hier herunterladen.
Diese Übung ist Teil des Kurses
<Kurs>Sentimentanalyse in R</Kurs>Übungsanweisungen
Wir haben für diese Übung bereits eine bereinigte DTM namens ag_dtm erstellt.
- Erzeuge
ag_dtm_m, indem duas.matrix()aufag_dtmanwendest. - Indexiere
ag_dtm_mmit eckigen Klammern[und]auf die Zeile2206. - Wende
tidy()aufag_dtman. Nenne das neue Objektag_tidy. - Untersuche
ag_tidyin den Zeilen[831:835, ], um das Tidy-Format zu vergleichen. Du wirst ein Wort wiederfinden, das im untersuchten Teil vonag_dtm_min Schritt 2 vorkommt.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# As matrix
ag_dtm_m <- ___
# Examine line 2206 and columns 245:250
ag_dtm_m[___, 245:250]
# Tidy up the DTM
ag_tidy <- ___
# Examine tidy with a word you saw
ag_tidy[___, ]