An R package to analyze the parliamentary records of the 19th legislative period of the Bundestag, the German parliament.
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
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}