An R package to analyze the parliamentary records of the 19th legislative period of the Bundestag, the German parliament.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

172 řádky
5.8KB

  1. \documentclass{beamer}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage{listings}
  4. \lstdefinestyle{mystyle}{
  5. commentstyle=\color{gray},
  6. keywordstyle=\color{black},
  7. numberstyle=\tiny\color{gray},
  8. stringstyle=\color{black},
  9. basicstyle=\ttfamily\footnotesize,
  10. breakatwhitespace=false,
  11. breaklines=true,
  12. captionpos=b,
  13. keepspaces=true,
  14. numbers=left,
  15. numbersep=5pt,
  16. showspaces=false,
  17. showstringspaces=false,
  18. showtabs=false,
  19. tabsize=2
  20. }
  21. \lstset{style=mystyle}
  22. \begin{document}
  23. \begin{frame}
  24. \frametitle{Implementierung}
  25. \tableofcontents
  26. \end{frame}
  27. \section{Herunterladen der Protokolle}
  28. \begin{frame}
  29. \frametitle{Herunterladen der Protokolle}
  30. Funktion: \lstinline{fetch_all(download_dir)}
  31. \begin{itemize}[<+->]
  32. \item Protokolle als XML-Dateien von \url{bundestag.de} herunterladen und
  33. in \lstinline{download_dir} speichern.
  34. \item Problem: Maschinenunfreundliche Webseite
  35. \item Lösung: Source Code von \url{bundestag.de} nach Schnittstelle durchsuchen
  36. \end{itemize}
  37. \end{frame}
  38. \section{Konvertierung der XML-Dateien in tibbles}
  39. \begin{frame}
  40. \frametitle{Konvertierung der XML-Dateien in tibbles}
  41. Funktion: \lstinline{read_all(filepath)}
  42. \begin{itemize}[<+->]
  43. \item Liest jede XML-Datei in angegebenem Dateipfad einzeln
  44. \item Extrahiert Sitzungsdatum, Rednerliste und Sitzungsverlauf
  45. \item Konvertiert Rednerliste in eine R Liste.
  46. \item Iteriert durch den Sitzungsverlauf, extrahiert Reden,
  47. Redebeiträge, Kommentare und Beifall
  48. \item Kombiniert alle Redner, Reden, Redebeiträge, Kommentare und Beifall
  49. zu 5 tibbles und gibt benannte Liste zurück.
  50. \end{itemize}
  51. \end{frame}
  52. \begin{frame}[fragile]
  53. \frametitle{Tabellen}
  54. Ergebnis der Konvertierung ist eine benannte Liste \lstinline{res} mit tibbles:
  55. \pause
  56. \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
  57. > res$speaker
  58. # A tibble: 1,025 x 7
  59. id prename lastname fraction title role_short role_long
  60. <chr> <chr> <chr> <chr> <chr> <chr> <chr>
  61. 1 110021 Alterspraesident D Otto Solms NA NA Alterspraesi Alterspraesi
  62. 2 110032 Carsten Schneider SPD NA NA NA
  63. # with 1,023 more rows
  64. \end{lstlisting}
  65. \pause
  66. \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
  67. > res$speeches
  68. # A tibble: 25,068 x 3
  69. id speaker date
  70. <chr> <chr> <date>
  71. 1 ID19100100 11002190 2017-10-24
  72. 2 ID19100200 11002190 2017-10-24
  73. # with 25,066 more rows
  74. \end{lstlisting}
  75. \pause
  76. \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
  77. > res$talks
  78. # A tibble: 63,663 x 3
  79. speech_id speaker content
  80. <chr> <chr> <chr>
  81. 1 ID19100100 11002190 "Guten Morgen, liebe Kolleginnen und Kollegen! Nehmen Sie
  82. 2 ID19100300 11003218 "Sehr geehrter Herr Praesident! Sehr geehrte Kolleginnen u
  83. # with 63,661 more rows
  84. \end{lstlisting}
  85. \end{frame}
  86. \begin{frame}[fragile]
  87. \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
  88. > res$comments
  89. # A tibble: 83,649 x 5
  90. speech_id on_speaker fraction commenter content
  91. <chr> <chr> <chr> <chr> <chr>
  92. 1 ID19100300 11003218 BUENDNIS 90/D Katrin Goering Was?
  93. 2 ID19100300 11003218 CDU/CSU Volker Kauder Warum habt ihr das bei Ge
  94. # with 83,647 more rows
  95. \end{lstlisting}
  96. \pause
  97. \begin{lstlisting}[language=R,basicstyle=\tiny\ttfamily]
  98. > res$applause
  99. # A tibble: 89,586 x 8
  100. speech_id on_speaker CDU_CSU SPD FDP DIE_LINKE BUENDNIS_90_DIE_GRU AfD
  101. <chr> <chr> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl>
  102. 1 ID19100300 11003218 FALSE TRUE FALSE TRUE TRUE FALSE
  103. 2 ID19100300 11003218 FALSE TRUE TRUE TRUE FALSE FALSE
  104. # with 89,584 more rows\end{lstlisting}
  105. \end{frame}
  106. \section{Reparieren von Fehlern}
  107. \begin{frame}
  108. \frametitle{Reparieren von Fehlern}
  109. Problem: Uneinheitliche Schreibweisen / Fehler in den Rednerlisten.
  110. \pause
  111. Lösung: Funktion: \lstinline{repair_speaker(speakers)}
  112. \pause
  113. \begin{itemize}[<+->]
  114. \item Erhält \lstinline{tibble} von Rednern
  115. \item Entfernt Redner mit ungültigen, doppelt vergebenen IDs
  116. \item Vereinheitlicht Schreibweisen der Fraktionen, Namen und Titel der Redner
  117. \end{itemize}
  118. \end{frame}
  119. \begin{frame}
  120. \frametitle{Reparieren von Fehlern}
  121. Problem: Namen in Kommentaren Rednern aus Rednertabelle zuordnen
  122. \pause
  123. Lösung: Funktion \lstinline{repair_comments(comments, speakers)}
  124. \begin{itemize}
  125. \item Erstellt für jeden Redner einen Regulären Ausdruck aus dem Namen
  126. \item Sucht für jeden Kommentar nach dem entsprechenden Eintrag in der
  127. Rednertabelle
  128. \end{itemize}
  129. \end{frame}
  130. \begin{frame}
  131. \frametitle{Reparieren von Fehlern}
  132. Beide Reparaturschritte werden in der Funktion \lstinline{repair} zusammengefasst.
  133. \end{frame}
  134. \section{Analyse}
  135. \begin{frame}
  136. \frametitle{Analyse}
  137. Stelle Hilfsfunktionen zur Analyse der Daten zur Verfügung:
  138. \begin{itemize}[<+->]
  139. \item \lstinline{bar_plot_fractions}: Erstellt ein Balkendiagramm aus einer Tabelle
  140. mit Fraktionsdaten
  141. \item \lstinline{find_word}: Fügt in der Redebeiträgetabelle zu jedem Redebeitrag
  142. die Häufigkeit eines Regulären Ausdrucks hinzu.
  143. \item \lstinline{word_usage_by_date}: Zählt an welchen Daten (Tagen) ein regulärer Ausdruck
  144. wie oft verwendet wird.
  145. \item \lstinline{join_speaker}: Fügt einer Tabelle mit Spalte \lstinline{speaker} die
  146. enstprechenden Informationen aus der Rednertabelle hinzu.
  147. \end{itemize}
  148. \end{frame}
  149. \end{document}