Schlüsselwörter

figure a

Der Bereich Computational Methods hat für die Sozial- und Geisteswissenschaften zunehmend an Bedeutung gewonnen. Das kann unter anderem darauf zurückgeführt werden, dass Kulturgüter wie historische Bücher, Daten von Organisationen oder auch die Kommunikation in journalistischen Medien in den letzten Jahrzehnten digital verfügbar wurden. Nicht nur das: Viele soziale, auch interpersonale, Prozesse laufen mittlerweile zum Beispiel auf Online-Plattformen direkt in digitalen Umgebungen ab. Computational Methods helfen dabei, umfangreiche und heterogene Datenbestände zusammenzustellen und automatisiert auszuwerten. Daraus ergeben sich auch weitere wissenschaftliche Fragestellungen und Herangehensweisen, indem beispielsweise menschliches Verhalten mit Simulationsmodellen nachgestellt wird, um aus dem Vergleich mit der sozialen Wirklichkeit grundlegende Mechanismen herauszuarbeiten. Besonders reizvoll ist dabei, dass gleichzeitig eine Vogelperspektive und eine Froschperspektive eingenommen werden können. So kann beispielsweise mit Netzwerkanalysen die Struktur hinter dem Zusammenspiel einer Vielzahl an AkteurenFootnote 1 visualisiert werden, ohne dass die einzelnen Akteure aus dem Blick geraten müssen.

Anzeichen für die zunehmende Bedeutung von Computational Methods sind auch die Gründung von spezialisierten Fachzeitschriften, Forschungseinrichtungen und Lehrstühlen sowie Fachvertretungen. In der Kommunikationswissenschaft wird dies beispielsweise an der Gründung einer Computational Methods Division innerhalb der internationalen Fachvertretung International Communication Association (ICA) deutlich. Ausgangspunkt war die Idee, dass Computational Methods eine wichtige Rolle für die Weiterentwicklung kommunikationswissenschaftlicher Forschung spielen werden: „We believe that computational methods will be at the forefront of progress in the field in the coming decades“ (ICA CM 2017). Damit aber Computational Methods im Rahmen substanzieller Forschung eingesetzt werden können, braucht es Wissenschaftler:innen, die mit diesen Methoden umgehen können.

Das vorliegende Buch soll (bisherige) technische Laien in die Lage versetzen, selbstständig automatisierte Verfahren der Datenerhebung und Datenauswertung anzuwenden. Es ist begleitend zu Lehrveranstaltungen entstanden, in denen für Studierende der Sozial- und Geisteswissenschaften der Weg in eine zunächst fremde, dann aber sehr spannende Welt eröffnet wird. Dabei geht es darum, diese digitale Welt nicht nur besser zu verstehen, sondern auch mitgestalten zu können.

Im ersten Teil des Buches wird grundlegendes Wissen über Datenquellen, Datenformate und Verfahren zur Aufbereitung von Daten vermittelt. Im zweiten Teil finden sich kurze Einführungen in die zwei einschlägigen Programmiersprachen R und Python sowie in Konzepte zum Verwalten größerer Programmierprojekte. Im dritten Teil werden spezielle Erhebungs- und Auswertungsverfahren vorgestellt, beispielsweise Webscraping, Textanalyse und Klassifikationsverfahren. Innerhalb der Kapitel wird neben einem Überblick über die Verfahren jeweils eine Anleitung für ein ausgewähltes Beispiel gegeben. Die Beispiele beziehen sich häufig auf kommunikationswissenschaftlich relevante Bereiche, verbunden mit der Hoffnung, dass die Konzepte und Anleitungen anschlussfähig für sehr unterschiedliche Felder sind. Denn die Kommunikationswissenschaft ist eine integrative Disziplin, in der sowohl sozial- als auch geisteswissenschaftliches Denken zusammenkommt.

Die vorliegende Einführung gibt einen ersten Einblick in die vorgestellten Bereiche, kann aber nicht die vielen, sehr guten Einführungswerke in spezialisierte Verfahren ersetzen. Deshalb sind am Ende jedes Kapitels weiterführende Literaturhinweise und themenspezifische Einführungswerke zusammengestellt. Daneben finden sich nach jedem Kapitel Übungsfragen, mit denen theoretisches und praktisches Wissen überprüft werden kann. Zusätzlich zu den Inhalten in diesem Buch werden Daten und Skripte in einem Repositorium als Begleitmaterialien zur Verfügung gestellt. Wie diese beim Lernen von Computational Methods helfen können, wird in Abschn. 1.2.4 beschrieben.

1 Was sind Computational Methods?

Ausgehend von der Bezeichnung „Computational Methods“ wären darunter alle Verfahren zu verstehen, bei denen „Computation“ zur wissenschaftlichen Analyse eingesetzt wird. Versteht man unter dem Begriff „Computation“ in direkter Übersetzung allerdings ganz allgemein jede Form des Rechnens, dann umfasst das auch die quantitative Auswertung von Befragungen und Texten und jede Art von Statistik, im einfachsten Fall sogar die Bildung von Summen und Mittelwerten. Auch eine Eingrenzung auf maschinelles Rechnen hilft hier nicht weiter, denn Maschinen sind im Verständnis der Informatik nicht zwangsläufig elektronische oder mechanische Geräte. Ein Beispiel für eine rein konzeptionelle Maschine ist die Turing-Maschine, die ein Rechenmodell bzw. die mathematische Version eines Algorithmus darstellt. Zudem werden auch in der klassischen statistischen Analyse Computer eingesetzt. Im Film Hidden Figures (2016) findet sich ein anschauliches Beispiel dafür, dass unter Computern auch Menschen mit einer Begabung für das Rechnen verstanden werden können. Die „Computational Unit“, in der Berechnungen für die Flugbahnen der Apollo-Raumfahrtmission durchgeführt werden, besteht zunächst ausschließlich aus Frauen. Erst am Ende des Films wird dargestellt, wie diese Aufgabe von elektronischen Maschinen übernommen wird.

Es ist aber gerade dieser Aspekt, das Hinausgehen über klassische sozial- und geisteswissenschaftliche Methoden, der als Besonderheit von Computational Methods angesehen wird (siehe auch van Atteveldt und Peng 2018, S. 82). Einigkeit besteht in den Sozialwissenschaften zumindest dahingehend, dass es sich eben nicht um klassische Methoden handelt, sondern um Verfahren aus der Informatik: „Computational social sciences is a research discipline at the interface between computer science and the traditional social sciences. This interdisciplinary and emerging scientific field uses computationally methods to analyze and model social phenomena, social structures, and collective behavior“ (Amaral 2017; siehe auch Cioffi-Revilla 2010, S. 259). Doch auch hier wird schnell klar, dass es sich nicht zwangsläufig um neue Entwicklungen handelt. Im Gegenteil: Es lässt sich mittlerweile bereits eine historische Perspektive auf diesen Forschungsbereich einnehmen (Cioffi-Revilla 2017, S. 18 ff.). Bereits in den 1960er-Jahren finden sich Publikationen, in denen diskutiert wird, inwiefern computerbasierte Methoden für sozialwissenschaftliche Fragestellungen nutzbar sind (Coleman 1964).

Im Zusammenhang mit Computational Methods haben sich in verschiedenen Disziplinen Bezeichnungen herausgebildet, mit denen die Verbindung zu computerbasierten Methoden angezeigt wird (Tab. 1.1; siehe auch Welker 2019). Ganz allgemein wird in den Sozialwissenschaften von Computational Social Science (CSS) und in den Geisteswissenschaften von Digital Humanities (DH) gesprochenFootnote 2. Daneben finden sich fachspezifische Bezeichnungen wie Digital Sociology, Computational Communication Science, Digital History oder Computational Linguistics. Die englischen Bezeichnungen machen deutlich, dass es sich um globale Entwicklungen handelt.

Tab. 1.1 Forschungsrichtungen, in denen Computational Methods eingesetzt werden

Weitere Bezeichnungen stammen stärker aus der Tradition der Informatik und fokussieren spezifische Aspekte der Datenerhebung, wie etwa die Begriffe Data Mining oder Knowledge Discovery in Databases. Diese Begriffe findet man auch außerhalb der und an der Schnittstelle zur Wissenschaft. Als Bezeichnung für in der Wirtschaft verbreitete Tätigkeitsfelder haben sich die Begriffe Data Engineer und Data Scientist herausgebildet, inklusive entsprechender Studiengänge. Während erstere vor allem mit der Entwicklung von Software für die Datenaufbereitung beschäftigt sind, widmen sich letztere der Analyse. Hinzu kommen in größeren Organisationen Data Architects, die vor allem die Infrastruktur und Koordination der Teilaufgaben im Blick haben.

Dass sich in diesem Bereich verschiedene Traditionen verbinden, erkennt man auch daran, dass je nach Perspektive unterschiedliche Terminologien für die gleichen Sachverhalte verwendet werden.Footnote 3 Wo in der klassischen Statistik von unabhängigen und abhängigen Variablen die Rede ist, sprechen Data Scientists von Features und Labels. Beide Varianten umfassen die Merkmalsausprägungen der untersuchten Fälle, etwa das Erstelldatum von Kommentaren auf einer Webseite. Dabei geht es jedoch um mehr als nur um alternative Bezeichnungen, häufig unterscheiden sich auch die Zielstellungen. Während aus anwendungsorientierter Sicht vor allem die optimale Vorhersage von Verhalten relevant ist, suchen Wissenschaftler:innen nach Erklärungen. Beide Perspektiven modellieren die Wirklichkeit mit statistischen Mitteln. Erstere streben dabei allerdings eine möglichst hohe Modellgüte an, während für letztere die einzelnen Parameter der Modelle wichtiger sind.Footnote 4 Auch innerhalb der Wissenschaft kommen verschiedene erkenntnistheoretische Grundpositionen zusammen. Der Begriff Digital Methods kommt beispielsweise aus einer stärker interpretativen oder sogar ethnografischen Perspektive, wenn darunter „the repurposing of methods in media for social and cultural research“ (Rogers 2010, S. 243) verstanden wird. Damit ist etwa gemeint, dass für die wissenschaftliche Analyse von Online-Kommunikation die Mittel der Online-Kommunikation verwendet werden sollten. So würde man Suchmaschinen untersuchen, indem man Suchmaschinen verwendet. Hinzu kommt vor allem im Bereich der Digital Humanities noch eine ganz praktische Perspektive, wenn darunter auch künstlerisches oder literarisches Schaffen verstanden wird, bei dem computergestützt kulturelle Artefakte nicht nur beschrieben oder analysiert, sondern selbst produziert werden.

Die Kombinationen mit dem Wort „digital“ verweisen bereits auf den Gegenstandsbereich digitaler Kommunikation, der allerdings sehr umfassend und damit schwer fassbar ist.Footnote 5 Etwas engere Fokussierungen nehmen die Begriffe Internet Research oder noch enger Web Science und Web Mining vor.Footnote 6 Noch spezifischer sind Felder wie Webometrics, in denen in der Tradition bibliografischer Zitationsanalysen unter anderem netzwerkanalytische Strukturen zwischen Webseiten im Vordergrund stehen. In der vorliegenden Einführung wird der nicht auf eine Disziplin festgelegte Begriff Computational Methods verwendet, da die Methoden im Vordergrund stehen sollen. Diese Methoden können in kreativer Weise für sehr unterschiedliche Fragestellungen fruchtbar gemacht werden.

Wenn auch die inhaltliche Begriffsbestimmung nicht trivial ist, so sind Computational Methods faszinierend. Ein Teil der Faszination ergibt sich vermutlich daraus, dass Computer (als technische Maschinen) dabei Aufgaben übernehmen, die im ersten Moment menschliche Fähigkeiten voraussetzen. Deutlich wird dies im Bereich der Sprach- und Bilderkennung: Suchmaschinen können Bilder danach sortieren, ob sie Katzen oder Menschen enthalten. Smartphones reagieren auf die verbale Anweisung, einen Timer zu stellen. Und in menschlichen Gesichtern wird versucht, automatisch Emotionen zu erkennen. In diesen Beispielen werden maschinell komplexe, aber sehr spezifische Aufgaben gelöst, die man herkömmlich nur Menschen zutraut. Deshalb wird auch von künstlicher Intelligenz gesprochen, ohne dass dabei tatsächlich Intelligenz im Spiel wäre (Russell und Norvig 2012, S. 22).

Interessant für die wissenschaftliche Analyse werden entsprechende Verfahren unter anderem dadurch, dass sie automatisiert auf einer großen Datenmenge durchgeführt werden können. Hierin liegt ein entscheidender Vorteil gegenüber menschlichen Analysen, wenn eine kleine Stichprobe für eine Fragestellung nicht ausreicht. Zudem versprechen Computational Methods eine hohe Reliabilität – das heißt, sie führen zumindest dem ersten Anschein nach zu den immer gleichen Ergebnissen.Footnote 7

Theoretisch besteht die Besonderheit von Automatisierung darin, dass mit einem vergleichsweise hohen Anfangsaufwand ein System aufgesetzt wird, das anschließend ohne menschliche Eingriffe läuft und so den Aufwand reduziert. Automatisierung bedeutet zum Beispiel bei der Analyse von Texten, dass der Zusatzaufwand mit jedem zusätzlichen Dokument sinkt. Aus ökonomischer Sicht sinken die Grenzkosten: „As a rule-of-thumb, we consider a system fully automated if the marginal cost of analyzing additional texts goes to zero as the size of the corpus being analyzed increases, and the coding is completely replicable given a set of software, dictionaries, and so forth“ (Monroe und Schrodt 2008, S. 352; siehe auch Scharkow 2011, S. 547). Automatisierung ist allerdings in der Praxis nicht zwangsläufig effektiv oder effizient (Abb. 1.1). Das Lernen der Verfahren, die Vorbereitung der Infrastruktur und die Behebung von Fehlern führen häufig dazu, dass kontinuierlicher Aufwand betrieben werden muss. Gleichzeitig verändern sich dabei die Fragestellungen und Probleme, an denen gearbeitet wird. Insofern ist die Beschäftigung mit Computational Methods trotz oder vielleicht gerade aufgrund von Bemühungen zur maschinellen Automatisierung ein kreativer und inspirierender Prozess.

Abb. 1.1
figure 1

Der Fluch der Automatisierung. (Quelle: Munroe (2013; https://xkcd.com/1319/))

Automatisierung kann in allen Phasen des Forschungsprozesses eine Rolle spielen:

  • Mittels automatisierter Datenerhebung können Inhalte wie etwa Kommentare auf Social-Media-Plattformen oder Webseiten in großem Umfang erschlossen werden. Zu diesem Zweck wird Webscraping eingesetzt, bei dem im Prinzip der Browser so automatisiert wird, dass die Klicks eines Menschen simuliert werden. Aus den Quelltexten der angesurften Webseiten werden dann die gewünschten Daten extrahiert. Einige Anbieter stellen auch Application Programming Interfaces (APIs) bereit, über die vorstrukturierte Daten abgerufen werden können.

  • Automatisierte Datenaufbereitung meint die Umwandlung unstrukturierter Inhalte in strukturierte Daten. Unstrukturierte Inhalte zeichnen sich dadurch aus, dass die Eigenschaften der Fälle nicht bereits in standardisierter Form vorliegen. Bei der automatisierten Textanalyse werden beispielsweise aus Kommentaren die Sätze und Wörter extrahiert und in Datensätze umgeformt, sodass Wörter zu Variablen werden (Document-Term-Matrix). Bei der Datenaufbereitung geht es auch darum, nicht benötigte Daten zu entfernen (engl. boilerplate removal).

  • Der Übergang zwischen automatisierter Aufbereitung und Datenanalyse ist fließend. Auf Grundlage strukturierter Textdaten lassen sich beispielsweise Kommentare danach klassifizieren, ob sie eher positive oder eher negative Aussagen enthalten. Hier unterscheidet man überwachte und unüberwachte Lernverfahren. Erstere zeichnen sich dadurch aus, dass die Zielkategorien durch menschlich erstelltes Trainingsmaterial vorgegeben werden. Letztere sind explorativ angelegt und gruppieren Fälle nach Ähnlichkeit, um zum Beispiel Themen zu bestimmen. In das Feld automatisierter Datenanalyse fallen darüber hinaus Netzwerkanalysen, Zeitreihenanalysen, geografische Analysen und Computersimulationen.Footnote 8

  • Bei der Darstellung von Ergebnissen können ebenfalls computerbasierte Methoden zum Einsatz kommen. Beispielsweise werden große Netzwerke häufig mit Algorithmen visualisiert, bei denen die Elemente schrittweise in eine zweidimensionale Anordnung gebracht werden, sodass verbundene Elemente möglichst nah beieinanderstehen. Darüber hinaus lassen sich Ergebnisse interaktiv aufbereiten und online veröffentlichen, damit einzelne Datenkategorien oder Parameter von den Nutzer:innen nachträglich angepasst werden können.

In diesem Sinne wird der Begriff im vorliegenden Buch verwendet: Der Bereich Computational Methods umfasst alle Verfahren der automatisierten Datenerhebung, -aufbereitung, -analyse und -darstellung.Footnote 9 Im Buch werden einerseits konzeptionelle Grundlagen vermittelt und andererseits praktische Anleitungen gegeben. Eine lineare Lektüre ist dabei nicht unbedingt nötig. Sie können beispielsweise direkt in die Kapitel zum Webscraping einsteigen. Je nach Vorwissen wird es hilfreich sein, von dort gezielt in die vorangegangenen Kapitel zu springen, vor allem, wenn Ihnen die verwendeten Begriffe, Datenformate und Programmiertechniken unbekannt sind. In Kap. 12 am Ende des Buchs finden Sie weitere Hinweise zu möglichen Leserichtungen.

2 Der Werkzeugkoffer

Zwei Werkzeuge sind nicht nur für die folgenden Kapitel, sondern auch sonst für die Arbeit mit Computational Methods unverzichtbar: die Kommandozeile und ein guter Texteditor. Beides wird im Folgenden kurz eingeführt. Sie können die Ausführungen gegebenenfalls zunächst überfliegen und später nachschlagen. Zumindest die im ersten Abschnitt genannten Grundregeln für den Umgang mit Dateien sollten Sie aber möglichst frühzeitig umsetzen. Im letzten Abschnitt zu den Begleitmaterialien finden Sie außerdem Hinweise zu Daten und Skripten, die ergänzend zu den einzelnen Kapiteln als Hilfsmittel zur Verfügung stehen.

Dieses Buch führt damit in die Tiefe der Computational Methods ein und soll dazu beitragen, dass Sie entsprechende Werkzeuge irgendwann auch selbst entwickeln können. Alternativ finden sich mittlerweile unter dem Stichwort Forschungssoftware (engl. research software) viele leistungsfähige Tools mit grafischen Benutzeroberflächen.Footnote 10 Diese sind sehr hilfreich für einen schnellen Einstieg und als Inspiration für mögliche Analyseverfahren. Wenn Sie sich in einen Bereich neu einarbeiten – beispielsweise in die Netzwerkanalyse –, dann lohnt es sich, zunächst nach passender Software zu recherchieren. Für viele Bereiche haben andere Wissenschaftler:innen bereits Materiallisten zusammengestellt, die häufig als Awesome List bezeichnet werden.Footnote 11 Allerdings sind die Möglichkeiten dann auf die vorgegebenen Funktionen begrenzt und auch nicht immer im Detail transparent. Diese Beschränkungen können Sie überwinden, indem Sie selbst die Grundtechniken von Computational Methods erlernen.

2.1 Grundregeln für Ordner und Dateien

Wichtig ist für die Arbeit mit Daten, dass Sie sich mit dem Dateisystem Ihres Computers auskennen. Einige Grundregeln erleichtern die Arbeit ungemein:

  1. 1.

    Erstellen Sie ein Arbeitsverzeichnis, das Sie leicht erreichen können, beispielsweise in dem Dokumente-Ordner Ihres Computers. Unter einem Verzeichnis versteht man einen Ordner, in dem Unterordner und Dateien abgelegt werden. Die Anzahl der Dateien wächst in Programmierprojekten schnell an. Nutzen Sie deshalb zur Organisation auch Unterverzeichnisse. Arbeiten Sie immer in diesem Verzeichnis, beispielsweise wenn Sie die Kommandozeile starten.

    Zu Ordnern, Unterordnern und Dateien können Sie mit der Maus navigieren, indem Sie im Explorer (Windows) bzw. dem Finder (Mac)Footnote 12 die entsprechenden Symbole anklicken. Es ist allerdings auch möglich, Dateien oder Verzeichnisse gezielt über den sogenannten Pfad zu adressieren. Der Aufbau von Pfaden unterscheidet sich zwischen den Betriebssystemen. Unter Windows (Abb. 1.2) beginnt ein Pfad mit dem Buchstaben des Laufwerks gefolgt von einem Doppelpunkt (meistens C:). Danach folgen getrennt mit BackslashsFootnote 13 die Unterordner. Der Pfad ist im Explorer in der Adressleiste erkennbar. Zu beachten ist, dass die Anzeige häufig gekürzt ist und englische Ordnernamen übersetzt sind. Der tatsächliche Pfad kann herausgefunden werden, indem man mit der Maus innerhalb eines Unterordners in die Adressleiste klickt. Unter Mac und Linux beginnt ein Pfad mit einem Slash, danach folgen getrennt mit weiteren Slashs die Unterordner. Eine vollständige Angabe ist hier aber nur selten nötig, denn mit einer Tilde ~ kann direkt auf das aktuelle Benutzerverzeichnis verwiesen werden (Abb. 1.3).

    Wenn Sie bereits im gewünschten Verzeichnis sind, können Sie in der Kommandozeile oder beim Programmieren relative Pfade einsetzen. Relative Pfade beginnen im aktuellen Verzeichnis. Aus dem aktuellen Arbeitsverzeichnis und dem relativen Pfad wird automatisch der absolute Pfad zusammengesetzt. Wenn beispielsweise der Ordner C:\Users\Jakob\Documents\ Ihr aktuelles Arbeitsverzeichnis ist, dann reicht die Angabe Datenanalyse, um das entsprechende Unterverzeichnis zu benennen.

  2. 2.

    Verwenden Sie in Dateinamen keine Leerzeichen, Umlaute und Sonderzeichen. Anstelle von Leerzeichen können Sie Unterstriche verwenden. Unter Mac und Linux wird Groß- und Kleinschreibung unterschieden. Deshalb ist es günstig, alle Namen in Kleinschreibung zu halten.

    Dateien setzen sich aus einem Namen und einer Endung zusammen. Die Dateiendung umfasst den letzten Teil nach dem Punkt; darüber ist der Dateityp erkennbar. Bilder haben beispielsweise die Endung .png oder .jpg. Quelltexte enden mit .R oder mit .py. Daten werden häufig in Dateien mit den Endungen .csv und .json abgelegt. Textdateien erkennen Sie an der Endung .txt. Auch Markdown-Dateien mit der Endung .md werden Ihnen begegnen. Diese enthalten Text, der mit einfachen Konventionen so strukturiert und formatiert ist, dass er zum Beispiel auf Webseiten angezeigt werden kann (siehe Kap. 3).

    Je nach Voreinstellung Ihres Betriebssystems müssen Sie die Dateiendungen erst einblenden, das sollten Sie am besten jetzt sofort tun! Unter Windows 11 (Abb. 1.2) öffnen Sie dazu den Explorer, wechseln in den Reiter Anzeigen und wählen im Bereich Einblenden die Option Dateinamenerweiterungen. Unter macOS (Abb. 1.3) öffnen Sie im Finder die Voreinstellungen und wählen die Option Alle Dateinamensuffixe Einblenden. Unter Linux-Systemen werden die Erweiterungen normalerweise standardmäßig angezeigt.

Abb. 1.2
figure 2

Die Adressleiste und das Einblenden von Dateierweiterungen unter Windows 11. Hinweis: Beachten Sie den Unterschied zwischen dem angezeigten Pfad in der Adressleiste und dem tatsächlichen Pfad. (Quelle: eigene Darstellung)

Abb. 1.3
figure 3

Dateierweiterungen unter macOS im Finder einblenden. Hinweis: Beachten Sie, dass sich die Tilde im tatsächlichen Pfad auf das Benutzerverzeichnis bezieht. (Quelle: eigene Darstellung)

2.2 Die Kommandozeile

Mit der Kommandozeile, auch Eingabeaufforderung, Konsole, Terminal oder Shell genannt, schauen Sie hinter den Vorhang der grafischen Oberfläche von Windows, Mac oder Linux. Hier werden über die Tastatur Befehle eingegeben, mit denen zum Beispiel Programme installiert oder gestartet werden. Die Handhabung und die Befehle unterscheiden sich etwas zwischen den Betriebssystemen. Auch wenn Sie normalerweise unter Windows oder Mac arbeiten, kommt vermutlich irgendwann der Zeitpunkt, zu dem Sie in ein Linux-Terminal wechseln müssen. Denn insbesondere Cloud-Computing, das heißt die Nutzung von Servern statt des eigenen Computers, setzt üblicherweise auf einer Infrastruktur mit Linux-Systemen auf.

Die klassische KommandozeileFootnote 14 öffnen Sie unter Windows zum Beispiel, indem Sie die Windows-Taste drücken und die Buchstaben cmd (= command) eingeben. Nach dem Starten wird das aktuelle Verzeichnis angezeigt (Abb. 1.4). Hinter dem aktuellen Verzeichnis blinkt ein Cursor und Sie können an dieser Stelle Befehle eingeben, um beispielsweise Verzeichnisse zu wechseln oder Programme zu installieren. Ein Befehl wird ausgeführt, sobald er mit der Enter-Taste bestätigt wird.

Abb. 1.4
figure 4

Die Eingabeaufforderung unter Windows 10. (Quelle: eigene Darstellung)

Das Verzeichnis wechseln Sie mit dem Befehl cd (= change directory) und der Angabe eines absoluten oder relativen Pfads.Footnote 15 Der Befehl dir zeigt den Inhalt des Verzeichnisses an, also die enthaltenen Dateien und Ordner. Um vom aktuellen Verzeichnis eine Ebene nach oben zu wechseln, wird der Befehl cd .. verwendet. Längere Pfade oder Befehle können auch über die Zwischenablage in die Kommandozeile eingefügt werden.

Den Umweg über den cd-Befehl kann man sich aber sparen, wenn man das Verzeichnis zunächst im Explorer öffnet. Gibt man anschließend oben in die Adressleiste cmd ein und bestätigt mit der Entertaste, dann wird die Kommandozeile in diesem Verzeichnis geöffnet.

Auf dem Mac lässt sich die Kommandozeile öffnen, indem in der Spotlight-Suche (Lupen-Symbol) „Terminal“ eingegeben wird. Im Terminal wird zu Beginn einer Zeile der Name des Computers angezeigt, nach einem Doppelpunkt folgen der Name des aktuellen Verzeichnisses, dann ein Leerzeichnen und der Benutzername (Abb. 1.5). Die Befehle werden hinter dem Dollarzeichen eingegeben. Auch hier werden Verzeichnisse durch den Befehl cd gefolgt von einem relativen oder absoluten Pfad gewechselt. Der Inhalt des aktuellen Verzeichnisses wird mit dem Befehl ls angezeigt, wobei der Parameter -l für eine kompakte Darstellung sorgt: ls -l.

Abb. 1.5
figure 5

Das Terminal unter macOS High Sierra. (Quelle: eigene Darstellung)

Unter einem Linux-System wie Ubuntu erreichen Sie die Kommandozeile über die Command-Taste und Eingabe von „Terminal“. Da sowohl macOS als auch Linux zu den Unix-Systemen zählen, ist die Bedienung identisch (Abb. 1.6).

Abb. 1.6
figure 6

Das Terminal unter Ubuntu 18. (Quelle: eigene Darstellung)

Egal auf welchem System Sie arbeiten, einige Funktionen sind in nahezu jeder Kommandozeile enthalten. Mit den Pfeiltasten (hoch/runter) können Sie etwa vorherige Befehle aufrufen. Bei langen Verzeichnisnamen hilft auch die Autovervollständigung: Tippen Sie die ersten Buchstaben ein und drücken Sie dann die Tabulatortaste!

Die Kommandozeile können Sie schließen, indem Sie das Fenster schließen. Wenn Sie innerhalb der Kommandozeile in einem Befehl festhängen, dann können Sie in der Regel über die Tastenkombination Strg + Pause oder Strg + C (Windows) bzw. Command + Pause oder Command + C (Mac) entkommen.Footnote 16

2.3 Texteditoren

Ein weiteres wichtiges Werkzeug sind Texteditoren. Denn viele Datenformate, Skripte und Quelltexte sind Textformate. Vor allem wenn man den Inhalt einer Datei oder das Dateiformat nicht kennt, sollte man die Datei zunächst mit einem Texteditor erkunden. Auf der Kommandozeile stehen unter Unix-Systemen häufig die Editoren vim und nano zur Verfügung.

Für Einsteiger ist die Arbeit auf der Kommandozeile aber häufig etwas umständlich. Ein für alle Betriebssysteme geeigneter Open-Source-Texteditor ist Atom.Footnote 17 Nach dem ersten Starten wird eine Einführung präsentiert. Eine Stärke dieses Editors ist die Paketverwaltung (Menüpunkt Einstellungen), über die viele Erweiterungen nachinstalliert werden können. Unter Windows ist Notepad++ empfehlenswert und die meisten Beispiele in diesem Buch werden mit diesem Editor illustriert.Footnote 18 Ein Texteditor, der speziell für MacOS entwickelt wurde, ist Textmate.Footnote 19 Eine weitere betriebssystemübergreifende Alternative bietet der Editor VS Code.Footnote 20 Installieren Sie sich am besten jetzt gleich einen solchen Texteditor!

Um Dateien in einem Texteditor zu öffnen, gibt es in der Regel zwei Wege. Entweder starten Sie zuerst den Editor und öffnen die Datei über das entsprechende Menü. Oder Sie suchen im Dateimanager (Explorer, Finder bzw. Files) das Verzeichnis und öffnen die Datei von dort aus über das Kontextmenü der Datei. Dieses Kontextmenü wird in der Regel über die rechte Maustaste erreicht. Dort finden Sie beispielsweise unter Windows einen Punkt Öffnen mit und können dann den Texteditor auswählen. Erscheint der Texteditor nicht bereits bei den vorgeschlagenen Programmen, können Sie ihn dort hinzufügen. Dafür suchen Sie den Ordner, in welchem der Editor installiert ist und wählen in diesem unter Windows die Datei mit der Endung .exe aus.

2.4 Begleitmaterialien zum Buch

Ein weiteres Hilfsmittel für den Einstieg in die Welt der Computational Methods können die Begleitmaterialien zu diesem Lehrbuch sein. Da Computational Methods sehr praktisch sind, sollen die vorbereiteten Beispiele, Skripte und Datensätze die einzelnen Kapitel dieses Buchs ergänzen und dabei helfen, schrittweise eigene praktische Kompetenzen aufzubauen. Besonders bei komplexen Verfahren kann es hilfreich sein, zunächst vorbereitete Skripte Schritt für Schritt nachzuvollziehen, bevor man selbst Anpassungen vornimmt und schlussendlich eigene Skripte schreibt.

Die Begleitmaterialien befinden sich in einem GitHub-Repositorium,Footnote 21 das zu Beginn eines jeden Kapitels verlinkt ist und auf das wir im Text mit ☛ Repositorium verweisen. Die Inhalte des Repositoriums können Sie entweder im Browser öffnen oder lokal auf Ihrem Computer speichern und bearbeiten. Um die Dateien gesammelt herunterzuladen, finden Sie unter der Bezeichnung Code einen Link zu einer Zip-Datei. Da Repositorien auf GitHub unter Versionsverwaltung stehen, können diese auch über Befehle der Versionsverwaltung heruntergeladen werden. Nutzen Sie die Gelegenheit, um das Zusammenspiel von Kommandozeile, Versionsverwaltung und Texteditor auszuprobieren! Dazu installieren Sie zunächst die für Ihr Betriebssystem passende Git-Version.Footnote 22 Anschließend können Sie über die folgenden Schritte das Verzeichnis herunterladen:

  1. 1.

    Legen Sie ein Arbeitsverzeichnis auf Ihrem Computer an und öffnen Sie dort die Kommandozeile.

  2. 2.

    Laden Sie das Repositorium über die Kommandozeile mit folgendem Befehl herunter: git clone https://github.com/strohne/cm

  3. 3.

    Öffnen Sie in einem der Verzeichnisse des heruntergeladenen Repositoriums die Datei readme.md mit Notepad++, Atom oder einem anderen Texteditor.

Einen Einstieg in Versionsverwaltungen bietet Abschn. 6.1.

3 Mit Fehlern umgehen

Fehler zu machen, zu erkennen und zu beheben ist ein ganz wesentlicher Bestandteil von Computational Methods. Schließlich handelt es sich um ein interdisziplinäres Feld, das Wissen und Methoden aus unterschiedlichen Bereichen umfasst, in denen man nicht zwangsweise bereits Expert:in ist. Außerdem lassen sich kaum neue Daten erschließen, Programme erkunden oder Methoden ausprobieren, ohne dabei auch einmal festzustecken oder zeitweise in die falsche Richtung zu laufen.

Während das Lösen von Problemen durchaus viel Spaß bereiten kann, wenn man an neuen Ideen knobelt und dabei über sich hinauswächst, kann es gleichzeitig frustrierend und zeitintensiv sein. Um möglicher Frustration vorzubeugen, sind nachfolgend einige häufige Fehler und Tipps aufgeführt:

  • Manchmal werden Dateien oder Verzeichnisse nicht gefunden. Hier hilft es, systematisch zu überprüfen, ob sich der angegebene Pfad auch auf das richtige Arbeitsverzeichnis bezieht, die Datei auch wirklich in diesem Ordner liegt und das Datenformat korrekt ist.

  • Häufige Fehlerquellen sind außerdem Schreibfehler. Diese sind leicht zu übersehen, da sie in einigen Programmen nicht optisch hervorgehoben werden. Auch Leerzeichen, Groß- und Kleinschreibung machen in den meisten Programmiersprachen einen Unterschied. Es hilft oft, mehrfach zu prüfen, ob Verzeichnisse, Variablen oder Befehle richtig geschrieben sind. Einige Wörter wie „for“ oder „in“ sind in Programmiersprachen mit Funktionen belegt und sollten nur dafür verwendet werden.

  • Wenn Dateien nicht korrekt eingelesen werden, kann dies an Steuerzeichen oder nicht sichtbaren Zeichen liegen. In CSV-Dateien signalisieren zum Beispiel Zeilenumbrüche, wann eine neue Zeile in einer Tabelle beginnt und diese Markierungen können je nach Betriebssystem unterschiedlich formatiert sein. Hier hilft es, die Datei im Texteditor zu öffnen, nicht sichtbare Zeichen einzublenden und zum Beispiel Zeilenumbrüche auszutauschen (siehe Abschn. 3.1).

  • Bei der Arbeit mit R oder Python verwendet man häufig Funktionen, also definierte Abläufe von Befehlen, die andere Entwickler:innen in sogenannten Packages bereitstellen. Packages werden meist laufend weiterentwickelt. Deshalb kommt es vor, dass Befehle nach einiger Zeit veralten und nicht mehr funktionieren. Hinweise dazu, wie Sie die Version der Packages überprüfen und aktualisieren, finden Sie in den entsprechenden Kapiteln (siehe Kap. 5). Mitunter werden Funktionen sogar abgeschafft (engl. deprecated), dann muss man sie durch Alternativen ersetzen.

  • Über viele Fehlermeldungen haben sich meistens bereits andere geärgert. Deswegen hilft es häufig, angezeigte Fehlermeldungen in eine Suchmaschine einzugeben. Eine Plattform, auf der viele Problemlösungen dokumentiert sind und über die man Hilfe zu speziellen Programmierfragen bekommt, ist Stack Overflow.Footnote 23 Dahinter steht eine aktive Community, die sich gegenseitig bei Problemen rund um das Programmieren hilft.

  • Eine gute Inspirationsquelle sind Cheatsheets, die im Internet zu allen möglichen Themen und Programmiersprachen oder -paketen zu finden sind. Auf nur ein bis zwei Seiten werden übersichtlich die entsprechenden Hilfsmittel zusammengefasst und es lässt sich schnell ein Überblick über wichtige Funktionen gewinnen.

Die aufgeführten Punkte erscheinen vielleicht im ersten Moment trivial. Dennoch tappen selbst ausgewiesene Expert:innen immer wieder in die gleichen Fallen. Die Fehlerbehebung bleibt stets eine der wichtigsten Tätigkeiten und es ist hilfreich, dafür nach und nach eigene Routinen auszubilden.

4 Überblick über das Buch

Computational Methods, wie sie hier verstanden werden, schlagen eine Brücke zwischen automatisierten Verfahren und inhaltlichen Fragestellungen. Fängt man an damit zu arbeiten, geht ein Großteil der Zeit in die Aufbereitung von Daten, die Erkundung von Methoden und natürlich in die Behebung von Fehlern. Allein die Auseinandersetzung mit den Methoden ist inspirierend für den Forschungsprozess, am Ende geht es aber darum, Phänomene in der geistigen, kulturellen und sozialen Welt zu verstehen und zu erklären. Mit Computational Methods werden zum einen altbekannte Fragestellungen adressiert, etwa wie sich Öffentlichkeit über Diskurse im Zeitverlauf entfaltet. Sie werfen neues Licht auf diese Phänomene, indem beispielsweise größere Textkorpora analysiert werden können oder Diskurse als Netzwerke von Akteuren und Texten verstanden werden. Zum anderen ergeben sich in unseren Lebenswelten allein durch das Aufkommen von Online-Plattformen und den Einsatz sogenannter Künstlicher Intelligenz – dieser schillernde Begriff meint nichts anderes als automatisierte Verfahren – auch neue Forschungsfragen. In Bezug auf Öffentlichkeit stellt sich beispielsweise die Frage, inwiefern Empfehlungssysteme zu einer Fragmentierung von Öffentlichkeit führen, wenn Menschen personalisierten Inhalten ausgesetzt werden. Und der Einsatz von Bots führt auch zu grundsätzlichen theoretischen Fragen, etwa zu der Frage, inwiefern Programme und Algorithmen als handelnde Akteure begriffen werden können und wem eigentlich die Verantwortung für automatisiertes Verhalten zugeschrieben wird.

Computational Methods sind somit in der Lebenswelt anzutreffen, gleichzeitig aber auch Analyseinstrumente für wissenschaftliche Fragestellungen. Die Welt dieser Methoden entwickelt sich ständig weiter. Damit Sie für unterschiedliche Szenarien gewappnet sind, werden im ersten Teil des Buchs konzeptionelle Grundlagen eingeführt. Unabhängig von konkreter Software oder bestimmten Tools werden Denkmuster vermittelt – insbesondere geht es darum, die Welt durch eine eckige Brille als Ansammlung von Matrizen und Tabellen zu betrachten. Denn dies ist eine grundlegende Datenstruktur, mit der Daten erfasst, transformiert und analysiert werden können.

  • Kap. 2 führt in Zugänge zur automatisierten Datenerhebung ein und benennt exemplarische Datenquellen: Unstrukturierte Inhalte können aus Webseiten ausgelesen werden, vorstrukturierte Daten werden über Application Programming Interfaces (APIs) bereitgestellt und schließlich findet sich mittlerweile eine Vielzahl von Datenbanken mit fertig aufbereiteten Datensätzen.

  • In Kap. 3 werden Datenformate vorgestellt, denen man in der Welt der Computational Methods begegnet. Grundlegend ist die Unterscheidung von Datentypen – beispielsweise von Zahlen oder Buchstaben. Diese Daten können tabellarisch zusammengestellt oder durch Auszeichnungssprachen und Objektdatenformate strukturiert sein. Auch für die Zusammenstellung mehrerer Tabellen zu Datenbanken gibt es etablierte Verfahren. Dahinter liegen Datenmodelle, mit denen die Abbildung der Wirklichkeit auf Datenstrukturen und damit die Bedeutung der Daten festgelegt werden.

  • Verfahren zur Datenextraktion werden in Kap. 4 beleuchtet. Mit Selektionsverfahren und -sprachen wie regulären Ausdrücken, XPath oder SQL lassen sich unstrukturierte in strukturierte Daten transformieren oder Teildatensätze auswählen, um sie schließlich für die Datenanalyse in Tabellen- oder Matrizenform umzuformen, zusammenzuführen und zu aggregieren.

Im zweiten Teil des Buchs findet sich jeweils eine kurze Einführung in die Programmierung mit R und Python, zwei der wichtigsten Sprachen für die Anwendung von Computational Methods. Diese Sprachen verweisen auf unterschiedliche Traditionen. Während R näher an der Welt der Statistik ist, wird Python insbesondere von Wissenschaftler:innen mit Informatikhintergrund eingesetzt. Beide Sprachen sind sehr gut dazu geeignet, Daten zu erheben, aufzubereiten und auszuwerten. Je nach Anwendungsgebiet können Sie persönliche Vorlieben ausbilden, sodass beispielsweise die Datenerhebung mit Python und die Datenanalyse mit R schneller von der Hand gehen.

  • Abschn. 5.1 führt kurz und knapp in die Programmierung mit R ein. Hier lernen Sie zunächst, wie die Entwicklungsumgebung RStudio aufgebaut ist, wie Befehle formuliert und Skripte entwickelt werden. Dabei werden grundlegende Funktionen, unter anderem aus dem Tidyverse, besprochen, um Datensätze einzulesen, zu filtern und zu analysieren. Auch das Erstellen von Grafiken ist ein wesentlicher Bestandteil der Datenanalyse mit R.

  • Abschn. 5.2 bietet eine praxisorientierte Einführung in die Programmierung mit Python. Zu Beginn lernen Sie, wie Sie Jupyter-Notebooks einrichten und nutzen. Anschließend wird in Basisbefehle, Datenstrukturen und Funktionen eingeführt. Für die Datenanalyse lernen Sie Funktionen aus der weit verbreiteten Programmbibliothek pandas kennen.

  • In Kap. 6 finden Sie Hilfestellungen, sobald Programmierprojekte größer werden, etwa wenn mehrere Personen gleichzeitig an einem Projekt arbeiten oder die Datenmengen sehr umfangreich werden. Dabei erfahren Sie, wann sich die Arbeit mit Versionsverwaltungen lohnt, wie Computer virtualisiert werden können und wie Datenanalysen auf ein Cluster für High-Performance-Computing ausgelagert werden.

Der dritte Teil des Buchs beschäftigt sich schließlich mit konkreten Anwendungsfeldern von Computational Methods, in denen die bis dahin thematisierten Grundtechniken eingesetzt werden. Die Beispiele werden in einer der beiden Programmiersprachen R oder Python angeleitet und gegebenenfalls um Hinweise zur Umsetzung in der jeweils anderen Sprache ergänzt. Jedes der Kapitel fasst die jeweiligen Verfahren kurz zusammen und führt schrittweise durch ein praktisches Beispiel. Zunächst werden Verfahren automatisierter Datenerhebung thematisiert:

  • Eine Einführung in Webscraping, um Inhalte aus Webseiten auszulesen, bietet Abschn. 7.1. Dabei lernen Sie zunächst, wie Sie mit Python einzelne HTML-Dokumente herunterladen, Daten aus dem Quelltext extrahieren und abspeichern. Um mehrere Webseiten abzufragen, kann der Webbrowser mithilfe von Selenium automatisiert werden und Sie finden Hinweise auf Programme und Plattformen, die beim Webscraping unterstützen.

  • Wie Sie mit Application Programming Interfaces (APIs) arbeiten, lernen Sie in Abschn. 7.2. Über APIs lassen sich vorstrukturierte Daten erheben, die von den Plattformbetreibern bereitgestellt werden. Zwei Anwendungsfälle verdeutlichen den Nutzen von APIs: Zum einen werden Social-Media-Daten mithilfe von Facepager über die Twitter-API erhoben und zum anderen wird automatische Bilderkennung über Googles Cloud-Vision-API vorgestellt.

Sobald die Daten vorliegen, kommt es zur Datenanalyse, um inhaltliche Fragestellungen zu beantworten:

  • Vorhersagen und Klassifikationen haben eine lange Tradition in der Statistik, zum Beispiel in der Regressionsanalyse. Sie werden aus Sicht von Computational Methods häufig als Probleme des Machine Learnings begriffen und in Kap. 8 behandelt. Zunächst wird in grundlegende Konzepte des maschinellen Lernens eingeführt. Als überwachtes Lernverfahren wird in Abschn. 8.1 ein künstliches neuronales Netz trainiert, um damit Bilder automatisiert vorgegebenen Kategorien zuzuordnen. In Abschn. 8.2 wird als unüberwachtes Lernverfahren Topic Modelling angewendet, mit dem Texte ohne vorab bekannte Kategorien sortiert werden.

  • Kap. 9 beschäftigt sich mit der automatisierten Textanalyse, die Texte als Daten begreift, indem sie diese in ihre Bestandteile zerlegt und in Variablen überführt. Das Kapitel behandelt Grundtechniken zum Auszählen von Wörtern, die diktionärsbasierte Inhaltsanalyse und gibt einen Ausblick auf die Analyse von Syntax und Semantik.

  • Die Beziehungen zwischen Akteuren, aber auch Konzepten und Ereignissen, können über Netzwerkanalysen betrachtet werden. Aus netzwerkanalytischer Sicht interessiert beispielsweise, wie sich Informationen verbreiten oder wie sich die Ressourcen eines Akteurs durch die Beziehungen zu anderen Akteuren erklären lassen. Das Kap. 10 beinhaltet eine Einführung in die grundlegenden Konzepte der Netzwerkanalyse sowie ein praktisches Beispiel zur Erhebung, Analyse und Visualisierung eines Netzwerkes.

  • Kap. 11 führt in Simulationsverfahren ein, bei welchen hypothetische Welten erschaffen und mit empirisch vorgefundenen Welten verglichen werden. Dadurch lässt sich zum einen nachvollziehen, wie aus dem Verhalten einzelner Akteure auf der Ebene von Gesamtsystemen komplexe Effekte emergieren – etwa inwiefern es zur Fragmentierung von Öffentlichkeit kommt, wenn vor allem personalisierte Inhalte konsumiert werden. Zum anderen kann überprüft werden, inwiefern die in einem Datensatz vorgefundenen Zusammenhänge überzufällig oder auffällig erscheinen, wenn sie mit kontrafaktischen Welten verglichen werden.

Auch wenn die Reihenfolge der drei Teile eine bestimmte Leserichtung nahelegt, sind alle Kapitel so konzipiert, dass sie losgelöst von den anderen gelesen werden können. Wir hoffen, dass sie gleichzeitig als Inspiration und als Nachschlagewerk dienen können. Für einen schnellen Einstieg kopieren Sie die Skriptschnipsel aus dem Buch oder Repositorium und wandeln Sie diese für eigene Zwecke ab. Fehler sind selbstverständlich vorprogrammiert.

Übungsfragen

  1. 1.

    Was versteht man unter Computational Methods?

  2. 2.

    Wählen Sie eine wissenschaftliche Disziplin und finden Sie heraus, wie die Verbindung mit Computational Methods in dieser Disziplin bezeichnet wird! Wie heißt dieser Bereich zum Beispiel in der Musik oder in der Physik?

  3. 3.

    Was sind forschungspraktische Konsequenzen von Automatisierung?

  4. 4.

    Was sind absolute und relative Pfade?

  5. 5.

    Wie öffnen Sie die Kommandozeile?

Weiterführende Literatur

  • Attewell, P. A. & Monaghan, D. B. (2015). Data mining for the social sciences. An introduction. Oakland: University of California Press.

  • Cioffi-Revilla, C. (2017). Introduction to computational social science. Principles and applications (2. Aufl.). London: Springer.

  • Jannidis, F., Kohle, H. & Rehbein, M. (2017). Digital Humanities. Eine Einführung. Stuttgart: J.B. Metzler.

  • Rogers, R. (2013). Digital Methods. Cambridge: The MIT Press.

  • Sloan, L. & Quan-Haase, A. (Hrsg.). (2017). The SAGE handbook of social media research methods. Los Angeles: SAGE reference.