Stand: 31. September 2018

R, RStudio, polmineR und CWB-indizierte Korpora

Dieser Foliensatz zum Einstieg umfasst Hiweise zu …

  • Installation von R (Statistik- und Programmiersprache)
  • Installation von RStudio (Integrierte Entwicklungsumgebung)
  • Installation von polmineR (R-Paket zur Textanalyse)
  • Installation von Korpora über R-Pakete (hier: GermaParl)
  • erstes Demo zum Befehlssatz des polmineR-Pakets

Um aber gleich zu vermitteln, was diese Kombination soll und wohin die Reise geht, zuerst ein kurzer YouTube-Videoclip.

Installation von R und RStudio

Das MigParl-Korpus der migrations- und integrationsbezogenen Debatten in den deutschen Parlamenten steht als linguistisch annotiertes und indiziertes Korpus zur Verfügung, das in die Corpus Workbench (CWB) eingepflegt worden ist. Die Analysen können mit dem R-Paket polmineR durchgeführt werden.

Voraussetzung zur Nutzung dieser Analyseumgebung ist die Installation von R und RStudio. Besondere Systemanforderungen gibt es für grundlegende Analysen nicht. Der wesentliche limitierende Faktor bei komplexen statistischen Operationen ist meist der verfügbare Hauptspeicher (gut sind 8GB, mit 16GB kommt man schon sehr weit).

Die Statistik- und Programmiersprache R ist eine freie Software-Entwicklung des R Project for Statistical Computing. Sie kann für gängige Betriebssysteme (Windows, macOS, Linux) über die Server des Comprehensive R Archive Network (CRAN) heruntergeladen und installiert werden. Zum CRAN-Server an der Universität Münster gelangen Sie zum Beispiel hier.

RStudio ergänzt R als Integrierte Entwicklungsumgebung (kurz IDE, für integrated development environment) um eine Einbettung von R in eine graphische Benutzeroberfläche, die eine Vielzahl nützlicher Funktionen bereit hält und die enorm helfen kann, produktiv mit R zu arbeiten. Die Arbeit mit der Open Source-Version von RStudio Desktop wird nachdrücklich empfohlen, zum Download gelangen Sie hier. Als Einstieg in RStudio können Sie die Webinar-Serie RStudio Essentials nutzen.

Installation von polmineR

Das offizielle Release des polmineR-Pakets ist bei CRAN publiziert und kann mit der Funktion install.packages installiert werden:

install.packages("polmineR")

Windows-Nutzerinnen und Nutzer können dabei mit vorkompilierten Paketen arbeiten, so dass alles ‘out of the box’ funktionieren sollte. Nutzerinnen und Nutzer von macOS und Linux müssen vor der Installation von polmineR im Terminal für das RcppCWB-Paket die Bibliotheken pcre und GLib installieren. Bitte beachten Sie die Installationsanleitung zum polmineR-Paket unter MacOS, die Sie hier finden.

Das polmineR-Paket wird aktiv weiterentwickelt. Die aktuelle Entwicklungsversion ist über [GitHub] als Plattform zur Verwaltung quelloffener Software verfügbar. Sie behebt bekannte Fehler (“Bugs”), enthält oftmals neue Funktionen und bietet in der Regel über eine verbesserte Dokumentation. Die Installation erfolgt mit install_github aus dem devtools-package.

install.packages("devtools")
devtools::install_github("PolMine/polmineR", ref = "dev")

Installation von Korpora

Das polmineR-Paket enthält kleine Beispiel-Korpora, um die Funktionalität des Pakets zu illustrieren und zu testen. Die eigentlichen, weit größeren Korpora sind auf einem Server des PolMine-Projekts hinterlegt und werden über korpus-spezifische R-Pakete nachgeladen.

Ein entsprechendes MigParl-Paket wird im Vorfeld des MigTex-Workshops bereitstehen. Für unsere ersten Schritte nutzen wir das GermaParl-Korpus der Plenardebatten des Deutschen Bundestags. Dieses ist noch nicht über CRAN verfügbar, sondern steht über das ‘drat’-Repositorium des PolMine-Projekts zur Verfügung. Um auf dieses einfach zugreifen zu können, wird zunächst das ‘drat’-package installiert. Dann folgt die Installation von ‘cwbtools’ als Voraussetzung zur Installation von Korpora aus Archivdateien, und dann des GermaParl-Pakets.

install.packages("drat")
drat::addRepo("polmine") # 'polmine' muss hier ausnahmsweise klein geschrieben werden!
install.packages(pkgs = c("cwbtools", "GermaParl"))

Jetzt können wir das GermaParl-Paket laden und das Korpus vom PolMine-Webserver holen.

GermaParl::germaparl_download_corpus() # hier kommt mehr als 1 GB, braucht sicher einen Moment!

Ein kurzer Test der Installation

Wir testen nun zuerst, ob polmineR geladen werden kann. Als Bildschirmausgabe sollten Sie eine Auskunft über die Versionsnummer des Pakets erhalten, sowie einen Hinweis, wo die “registry”-Dateien (temporär) liegen, welche die verfügbaren Korpora beschreiben.

library(polmineR)

Zweitens aktivieren wir das GermaParl-Korpus. Dann testen wir ob nun auch das “GERMAPARL”-Korpus (CWB-Korpora werden immer groß geschrieben) in der Liste der verfügbaren Korpora ist, ergänzend zu “REUTERS” und “GERMAPARLMINI”, die im polmineR-Paket beheimatet sind.

use("GermaParl")
c("REUTERS", "GERMAPARLMINI", "GERMAPARL") %in% corpus()[["corpus"]]

Schließlich prüfen wir, ob das GERMAPARL-Korpus die richtige Größe hat …

size("GERMAPARL")

Mehr als 100 000 000 Worte? Das sollte für den Start reichen.

Erste Gehversuche

Wenn Sie möchten, können Sie nun die folgenden Befehle ausprobieren. Diese werden dann in den folgenden Foliensätzen ausführlicher erläutert.

partition("GERMAPARL", year = "2001") # Anlegen eines Subkorpus ("Partition")
kwic("GERMAPARL", query = "Integration") # einfache Ansicht von Konkordanzen
kwic("GERMAPARL", '[pos = "NN"] "mit" "Migrationshintergrund"', cqp = TRUE) # Nutzung CQP-Syntax
cooccurrences("GERMAPARL", "Islam") # eine erste Kookkurrenz-Berechnung
count("GERMAPARL", query = c("Islam", "Muslime", "Koran")) # simples Zählen

Das Zählen ist ja dann auch die Grundlage für vieler weitergehender statistischer Operationen. Zentral für das Design des PolMine-Pakets ist es jedoch, dass es auch immer möglich bleiben muss, den Volltext zu lesen. Probieren Sie auch das aus.

merkel <- partition("GERMAPARLMINI", date = "2009-11-10", speaker = "Merkel", regex = TRUE)
read(merkel, meta = c("speaker", "date"))

So viel zunächst als Einstieg!