|
- \documentclass{beamer}
-
- \usepackage[utf8]{inputenc}
-
- \usepackage{listings}
- \lstdefinestyle{mystyle}{
- commentstyle=\color{gray},
- keywordstyle=\color{black},
- numberstyle=\tiny\color{gray},
- stringstyle=\color{black},
- basicstyle=\ttfamily\footnotesize,
- breakatwhitespace=false,
- breaklines=true,
- captionpos=b,
- keepspaces=true,
- numbers=left,
- numbersep=5pt,
- showspaces=false,
- showstringspaces=false,
- showtabs=false,
- tabsize=2
- }
-
- \lstset{style=mystyle}
- \begin{document}
-
- \begin{frame}
- \frametitle{Implementierung}
- \tableofcontents
- \end{frame}
-
- \section{Herunterladen der Protokolle}
- \begin{frame}
- \frametitle{Herunterladen der Protokolle}
-
- Funktion: \lstinline{fetch_all(download_dir)}
-
- \begin{itemize}[<+->]
- \item Protokolle als XML-Dateien von \url{bundestag.de} herunterladen und
- in \lstinline{download_dir} speichern.
- \item Problem: Maschinenunfreundliche Webseite
- \item Lösung: Source Code von \url{bundestag.de} nach Schnittstelle durchsuchen
- \end{itemize}
-
- \end{frame}
- \section{Konvertierung der XML-Dateien in tibbles}
-
- \begin{frame}
- \frametitle{Konvertierung der XML-Dateien in tibbles}
- Funktion: \lstinline{read_all(filepath)}
- \begin{itemize}[<+->]
- \item Liest jede XML-Datei in angegebenem Dateipfad einzeln
- \item Extrahiert Sitzungsdatum, Rednerliste und Sitzungsverlauf
- \item Konvertiert Rednerliste in eine R Liste.
- \item Iteriert durch den Sitzungsverlauf, extrahiert Reden,
- Redebeiträge, Kommentare und Beifall
- \item Kombiniert alle Redner, Reden, Redebeiträge, Kommentare und Beifall
- zu 5 tibbles und gibt benannte Liste zurück.
- \end{itemize}
- \end{frame}
-
- \begin{frame}[fragile]
- \frametitle{Tabellen}
- Ergebnis der Konvertierung ist eine benannte Liste \lstinline{res} mit tibbles:
- \pause
- \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
- > res$speaker
- # A tibble: 1,025 x 7
- id prename lastname fraction title role_short role_long
- <chr> <chr> <chr> <chr> <chr> <chr> <chr>
- 1 110021 Alterspraesident D Otto Solms NA NA Alterspraesi Alterspraesi
- 2 110032 Carsten Schneider SPD NA NA NA
- # with 1,023 more rows
- \end{lstlisting}
- \pause
- \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
- > res$speeches
- # A tibble: 25,068 x 3
- id speaker date
- <chr> <chr> <date>
- 1 ID19100100 11002190 2017-10-24
- 2 ID19100200 11002190 2017-10-24
- # with 25,066 more rows
- \end{lstlisting}
- \pause
- \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
- > res$talks
- # A tibble: 63,663 x 3
- speech_id speaker content
- <chr> <chr> <chr>
- 1 ID19100100 11002190 "Guten Morgen, liebe Kolleginnen und Kollegen! Nehmen Sie
- 2 ID19100300 11003218 "Sehr geehrter Herr Praesident! Sehr geehrte Kolleginnen u
- # with 63,661 more rows
- \end{lstlisting}
-
- \end{frame}
-
- \begin{frame}[fragile]
- \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
- > res$comments
- # A tibble: 83,649 x 5
- speech_id on_speaker fraction commenter content
- <chr> <chr> <chr> <chr> <chr>
- 1 ID19100300 11003218 BUENDNIS 90/D Katrin Goering Was?
- 2 ID19100300 11003218 CDU/CSU Volker Kauder Warum habt ihr das bei Ge
- # with 83,647 more rows
- \end{lstlisting}
- \pause
- \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
- > res$applause
- # A tibble: 89,586 x 8
- speech_id on_speaker CDU_CSU SPD FDP DIE_LINKE BUENDNIS_90_DIE_GRU AfD
- <chr> <chr> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl>
- 1 ID19100300 11003218 FALSE TRUE FALSE TRUE TRUE FALSE
- 2 ID19100300 11003218 FALSE TRUE TRUE TRUE FALSE FALSE
- # with 89,584 more rows\end{lstlisting}
- \end{frame}
-
- \section{Reparieren von Fehlern}
- \begin{frame}
- \frametitle{Reparieren von Fehlern}
-
- Problem: Uneinheitliche Schreibweisen / Fehler in den Rednerlisten.
-
- \pause
- Lösung: Funktion: \lstinline{repair_speaker(speakers)}
- \pause
- \begin{itemize}[<+->]
- \item Erhält \lstinline{tibble} von Rednern
- \item Entfernt Redner mit ungültigen, doppelt vergebenen IDs
- \item Vereinheitlicht Schreibweisen der Fraktionen, Namen und Titel der Redner
- \end{itemize}
-
- \end{frame}
-
- \begin{frame}
- \frametitle{Reparieren von Fehlern}
- Problem: Namen in Kommentaren Rednern aus Rednertabelle zuordnen
-
- \pause
- Lösung: Funktion \lstinline{repair_comments(comments, speakers)}
- \begin{itemize}
- \item Erstellt für jeden Redner einen Regulären Ausdruck aus dem Namen
- \item Sucht für jeden Kommentar nach dem entsprechenden Eintrag in der
- Rednertabelle
- \end{itemize}
- \end{frame}
-
- \begin{frame}
- \frametitle{Reparieren von Fehlern}
- Beide Reparaturschritte werden in der Funktion \lstinline{repair} zusammengefasst.
- \end{frame}
-
- \section{Analyse}
-
- \begin{frame}
- \frametitle{Analyse}
- Stelle Hilfsfunktionen zur Analyse der Daten zur Verfügung:
- \begin{itemize}[<+->]
- \item \lstinline{bar_plot_fractions}: Erstellt ein Balkendiagramm aus einer Tabelle
- mit Fraktionsdaten
- \item \lstinline{find_word}: Fügt in der Redebeiträgetabelle zu jedem Redebeitrag
- die Häufigkeit eines Regulären Ausdrucks hinzu.
- \item \lstinline{word_usage_by_date}: Zählt an welchen Daten (Tagen) ein regulärer Ausdruck
- wie oft verwendet wird.
- \item \lstinline{join_speaker}: Fügt einer Tabelle mit Spalte \lstinline{speaker} die
- enstprechenden Informationen aus der Rednertabelle hinzu.
- \end{itemize}
- \end{frame}
-
- \end{document}
|