Mini-Workshop (Structural) Topic Models
Sommersemester 2020 | IJK Hannover
Abschnitt 1 Überblick
1.1 Inhalt des virtuellen Mini-Workshops
- In diesem Mini-Workshop erläutere ich das praktische Vorgehen einer Datenanalyse mit Structural Topic Models. Wir behandeln die folgenden Schritte im Analyseprozess:
- Modellspezifikation
- Modellvergleich zur Auswahl eines geeigneten Modells
- Darstellung der Ergebnisse
- Weitere Analysen
- Zusammenhänge der Topic-Prävalenz mit Kovariaten
- Identifikation verwandter Topics
- Wir verwenden das Paket
{stm}(Roberts, Stewart, and Tingley 2019) zum Schätzen von Topic Models. Für die Variante der Structural Topic Models und die Implementation in diesem Paket sprechen für mich die folgenden Gründe- Gute Integration mit R und Paketen, die ich für die Arbeit mit Text-Daten verwende (insbesondere
{quanteda}und{tidytext}) - Gute ergänzende Pakete zur Arbeit mit den Modellen (insbesondere
{stminsights}und{oolong}) - Vergleichsweise schnelle Modellschätzung auch mit großen Datensätzen
- Direktes Schätzen von Zusammenhängen von Topics mit Kovariaten
- Initialisieren der Modellschätzung mit dem Spectral Algorithmus
- Recht weit verbreitet in einem Feld, in dem ich viel lese (Politische Kommunkation nach einem weitem Verständnis)
- Gute Integration mit R und Paketen, die ich für die Arbeit mit Text-Daten verwende (insbesondere
- Die Darstellung basiert auf einer Analyse, die ich gemeinsam mit Elena Link durchgeführt habe. Wir untersuchten, wie das Thema Impfen in Online-Foren für Eltern diskutiert wurde. Wir verwenden aber nur einen nicht repräsentativen Ausschnitt aus dem Material, um die notwendige Rechenleistung und -zeit zu verringern.
- Einen Preprint zur Analyse könnt ihr hier lesen: Vaccine-related Discussions in Online Communities for Parents. A Quantitative Overview.
- Die Dokumentation zur Studie ist hier verfügbar: https://bachl.github.io/vaccine_discussions/. Daten und Analyse-Skripts gibt es im OSF. Dort werden auch die Datenerhebung mittels Web-Scraping und die Datenaufbereitung erläutert. Diese Inhalte sind nicht Teil dieses Workshops. Wenn ihr Fragen dazu habt, dürft ihr sie natürlich stellen.
1.2 Welche Inhalte wir nicht behandeln
Auch wenn das im direkten Vergleich mit dem Parallel-Angebot zu Panel Data Analysis (meine Ausführlichkeit dort sind ein Grund für die spätere Lieferung dieser Materialien) enttäuschend sein mag: Die Inhalte in diesem Mini-Workshop entsprechen in ihrem Umfang wirklich nur dem, was ich zu Beginn des Digital-Semesters geplant und angekündigt hatte. Der Mini-Workshop ersetzt keine tiefer gehende Einarbeitung in die Methode, sondern ist als ein Einstieg zu verstehen.
Wir behandeln hier keine theoretischen, statistischen oder auf die Software-Implementierung der Modellschätzung bezogenen Fragen. Die Grundlagen dazu können aus den Texten im LMS entnommen werden (Maier et al. 2018; Roberts, Stewart, and Tingley 2019).
Es gibt neben
{stm}viele andere Implementationen in R und ihn anderer Software. Gefühlt gibt es alle 6 Monate eine neue Variante von Topic Models, alle 3 Monate eine neue Implementierung und jeden Monat ein Paket mit zusätzlichen Tools für die Arbeit mit Topic Models. Meine Entscheidung für{stm}ist keine informierte Entscheidung gegen andere Varianten, Implementierungen und Tools. Dieser Workshop ist keine Aufforderung, ausschließlich{stm}zu nutzen. Informiert euch gegebenenfalls selbst über Software-Lösungen, die für eure Bedürfnisse geeignet sind.Dieser Mini-Workshop ist kein R-Tutorial. Wenn ihr Interesse habt, R-Kenntnisse zu erwerben und zu vertiefen, empfehle ich R4DS.
Dieser Mini-Workshop ist keine allgemeine Einführung in die computergestützte Inhaltsanalyse. Wenn ihr allgemein Textanalysen mit R durchführen möchtet, empfehle ich zu diesem Thema die Einführung von Cornelius Puschmann.
1.3 Aufbau des Workshops
- Inhaltlicher Aufbau: Siehe Kapitel-Gliederung
Material
Dieses Dokument + R Skripte: (Hoffentlich) mehr oder weniger selbsterklärendes Material
Daten: Ein Ausschnitt auf den Daten der oben genannten Beispielstudie. Eine genauere Beschreibung folgt im nächsten Abschnitt. Sie sind nicht auf GitHub, sondern nur im LMS verfügbar.
Screencast: Zu einigen Analyseschritten stelle ich Screencasts zur Verfügung (siehe Anmerkungen im Text).
Übungen: Zur Einübung der Inhalte empfehle ich, die in diesem Material dokumentierten Code-Auszüge auf dem eigenen Rechner auszuführen und anzupassen. Die inhaltliche Interpretation der Modelle wird im Material nur angedeutet. Ihr könnt diese selbst vertiefen.
Pakete
Wir verwenden die folgenden Pakete
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, stm, stminsights, tidytext, quanteda, lubridate, knitr,
tictoc, furrr, oolong, textmineR, ggdendro)
theme_set(theme_bw()) # ggplot theme
tibble(package = c("R", sort(pacman::p_loaded()))) %>% mutate(version = map_chr(package,
~as.character(pacman::p_version(package = .x)))) %>% knitr::kable()| package | version |
|---|---|
| R | 3.6.2 |
| dplyr | 1.0.0 |
| forcats | 0.4.0 |
| furrr | 0.1.0 |
| future | 1.16.0 |
| ggdendro | 0.1.20 |
| ggplot2 | 3.3.2 |
| knitr | 1.28 |
| lubridate | 1.7.4 |
| Matrix | 1.2.18 |
| oolong | 0.3.8 |
| pacman | 0.5.1 |
| purrr | 0.3.4 |
| quanteda | 2.0.1 |
| readr | 1.3.1 |
| stm | 1.3.5 |
| stminsights | 0.4.0 |
| stringr | 1.4.0 |
| textmineR | 3.0.4 |
| tibble | 3.0.1 |
| tictoc | 1.0 |
| tidyr | 1.0.2 |
| tidytext | 0.2.3 |
| tidyverse | 1.3.0 |
Literatur
Maier, Daniel, A. Waldherr, P. Miltner, G. Wiedemann, A. Niekler, A. Keinert, B. Pfetsch, et al. 2018. “Applying LDA Topic Modeling in Communication Research: Toward a Valid and Reliable Methodology.” Communication Methods and Measures 12 (2-3): 93–118. https://doi.org/10.1080/19312458.2018.1430754.
Roberts, Margaret E., Brandon M. Stewart, and Dustin Tingley. 2019. “Stm: An R Package for Structural Topic Models.” Journal of Statistical Software 91 (1): 1–40. https://doi.org/10.18637/jss.v091.i02.