Stand: 4. April 2022

R, RStudio, polmineR und CWB-indizierte Korpora

Dieser Foliensatz zum Einstieg umfasst Hiweise zu …

  • Installation von R (als Statistik- und Programmiersprache)
  • Installation von RStudio (als Integrierte Entwicklungsumgebung / IDE)
  • Installation von polmineR (als R-Paket für Textanalysen)
  • Installation von Korpora über das R-Paket cwbtools (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

Die Korpora des PolMine-Projektes, insbesondere GermaParl und UNGA, stehen als linguistisch annotierte und indizierte Korpora zur Verfügung, die in die Corpus Workbench (CWB) eingepflegt worden sind. 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 oft 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- und macOS-Nutzer_innen können dabei mit vorkompilierten Paketen arbeiten, so dass im Regelfall alles ‘out of the box’ funktioniert. Nutzer_innen von Linux müssen vor der Installation von polmineR im Terminal für das RcppCWB-Paket die C-Bibliotheken pcre und GLib installieren. Genaue und aktuelle Informationen dazu findet man im README von RcppCWB bei GitHub.

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. Weit größere Korpora, die für substantiellere Analysen geeignet sind, werden im Rahmen des PolMine-Projektes entwickelt. Diese werden auf Zenodo bereitgestellt und über das R-Paket cwbtools von dort heruntergeladen und installiert.

Für unsere ersten Schritte nutzen wir das GermaParl-Korpus der Plenardebatten des Deutschen Bundestags (v1.0.6), das wir über Zenodo bereit stellen. Mit Hilfe von cwbtools kann das Korpus direkt installiert werden.

install.packages("cwbtools")
cwbtools::corpus_install(doi = "10.5281/zenodo.3742113")  # mehr als 1 GB, gute Konnektivität hilft!

Hiernach kann auch der UCSSR Foliensatz heruntergeladen werden. Die Installationsanweisungen finden Sie hier UCSSR Download. Die lokale Verfügbarkeit ist von Vorteil, wenn Sie offline mit den Folien arbeiten und einen praktischen Zugang zu den R Markdown Dateien haben möchten, auf denen die Folien basieren.

Ein kurzer Test der Installation

Wir testen nun zuerst, ob polmineR geladen werden kann.

library(polmineR)

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 daheim sind.

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

Schließlich prüfen wir, ob das GERMAPARL-Korpus so gross ist, wie wir es erwarten …

size("GERMAPARL")

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

Erste Gehversuche

Probieren wir die folgenden Befehle aus. 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 viele weitergehende statistischer Operationen. Zentral für das Design von polmineR-Pakets ist der Anspruch, dass es auch immer möglich bleiben muss, den Volltext zu lesen. Probieren wir 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!

Tutorials zur Installation von R und RStudio