| @@ -0,0 +1,171 @@ | |||
| \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 commentator 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} | |||