Remove CSFR from GET and redo indentation fpr HTML files.

This commit is contained in:
Stephan Porada
2020-08-02 14:35:41 +02:00
parent acc210ee47
commit ff26bc2a37
16 changed files with 1320 additions and 1330 deletions

View File

@ -5,190 +5,187 @@ query. This creates the ngram viewer per speaker. -->
{% block nav-tabs %}
<div class="nav-content">
<ul class="tabs tabs-transparent">
<li class="tab"><a target="_self" href="{% url "ngram-viewer-jahr" %}">Pro Jahr</a></li>
<li class="tab"><a target="_self" class="active" href="{% url "ngram-viewer-sprecher" %}">Pro MdB</a></li>
</ul>
</div>
<ul class="tabs tabs-transparent">
<li class="tab"><a target="_self" href="{% url "ngram-viewer-jahr" %}">Pro Jahr</a></li>
<li class="tab"><a target="_self" class="active" href="{% url "ngram-viewer-sprecher" %}">Pro MdB</a></li>
</ul>
</div>
{% endblock nav-tabs %}
{% block content %}
<div class="row">
<div class="col s12 m12 l4">
<div class="card">
<div class="card-content">
<span class="card-title center-align">Suchoptionen</span>
<div class="row">
<form method="GET" class="col s12">
{% csrf_token %}
{% if errors %}
<p class="red-text text-darken-2">Es kann nur jeweils ein Ngramm gesucht werden.</p>
{% endif %}
<div class="input-field col s12">
<i class="material-icons prefix">search</i>
<input id="id_query" type="text" name="{{form.query.html_name}}" class="autocomplete materialize-textarea validate" {% if form.query.value != None %}value = "{{form.query.value}}" {% else %}value = "Ausländer" {% endif %}}>
<label for="id_query">{{form.query.label}}</label>
<button class="btn waves-effect waves-light right light-green darken-3" type="submit" name="ngram-search">Suche
<i class="material-icons right">send</i>
</button>
</div>
<br />
<br />
Korpus:{{form.corpus_choice}}
<div class="section">
<div class="switch section ">
<span>Case-sensitive Suche:</span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.case_sensitive.html_name}}" class="filled-in" {% if form.case_sensitive.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
<div class="switch section">
<span>Erweiterter Suchsyntax: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aktiviert, kann die PostgreSQL interne regex-Syntax für die einzelnen Suchanfragen verwendet werden. Allerdings kann diese nur an Wortenden ('Asyl\w*') verwendet werden. Wörter können am Wortende mit '__' ('Krieg__') quasi escaped werden, so dass diese nicht als regulärer Ausdruck interpretiert werden."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.search_plus.html_name}}" class="filled-in" {% if form.search_plus.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
<div class="section">
<div class="input-field col s12">
<i class="material-icons prefix blue-grey-text darken-4">filter_9_plus</i>
<input id="id_query" type="text" name="{{form.range.html_name}}" class="autocomplete materialize-textarea validate" {% if form.range.value != None %}value = "{{form.range.value}}" {% else %}value = "10" {% endif %}}>
<label for="id_range">{{form.range.label}}</label>
</div>
</div>
<div class="divider"></div>
</div>
</form>
</div>
<div class="col s12 m12 l4">
<div class="card">
<div class="card-content">
<span class="card-title center-align">Suchoptionen</span>
<div class="row">
<form method="GET" class="col s12">
{% if errors %}
<p class="red-text text-darken-2">Es kann nur jeweils ein Ngramm gesucht werden.</p>
{% endif %}
<div class="input-field col s12">
<i class="material-icons prefix">search</i>
<input id="id_query" type="text" name="{{form.query.html_name}}" class="autocomplete materialize-textarea validate" {% if form.query.value != None %}value = "{{form.query.value}}" {% else %}value = "Ausländer" {% endif %}}>
<label for="id_query">{{form.query.label}}</label>
<button class="btn waves-effect waves-light right light-green darken-3" type="submit" name="ngram-search">Suche
<i class="material-icons right">send</i>
</button>
</div>
<br />
<br />
Korpus:{{form.corpus_choice}}
<div class="section">
<div class="switch section ">
<span>Case-sensitive Suche:</span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.case_sensitive.html_name}}" class="filled-in" {% if form.case_sensitive.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
</div>
<ul class="collapsible white">
<li class="active">
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">info_outline</i>Was ist das hier?</div>
<div class="collapsible-body">
<p>Mit diesem Tool können alle Protokolle von 1949 bis 2017
nach einem Begriff durchsucht werden. Für diesen
wird pro MdB dargestellt wie häufig dieses in seinen Reden
und Redebeiträgen den gesuchten Begriff verwendet hat.
</p>
<p>Der Begriff kann eine Phrase mit der Länge von
ein bis fünf Wörter sein.
Eine weitere Suchanfrage wäre z.B. "Steuer erhöhen"</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">search</i>Muster der Suchanfrage</div>
<div class="collapsible-body">
<p>Eine Suchanfrage ist ein einzelner Begriff bzw. einzelne Phrase.</p>
<p>Die beispielhafte Suchanfrage "Ausländer"
fragt somit die Häufigkeit des Begriffs ab.
Es kann nur ein BEgriff gleichzeitig gesucht werden.</p>
<p>Eine weitere Suchanfrage wäre z.B. "Steuerflucht"</p>
<p>Es können nicht nur einzelne Wörter, sondern je nach Korpus
Phrasen mit einer Länge von bis zu fünf Wörtern abgefragt werden.
Eine beispielhafte Suchanfrage wäre z.B. "Steuer erhöhen".
</p>
<p>Möglich wird diese Art der Abfrage dadurch, das für alle Protokolle
sogenannte N-Gramme berechnet wurden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">short_text</i>Was sind N-Gramme?</div>
<div class="collapsible-body">
<p>Für die Berechnung von N-Grammen wird ein Text in einzelne
Fragmente zerlegt, die dann in ihrer Häufigkeit gezählt werden können.
N gibt hierbei die Länge der einzelen Fragmente an.
Ist z.B. der Satz "to be or not to be that is the question."
gegeben, kann für diesen die dazugehörigen 1-Gramme berechnet werden.
Diese wären dann: "to, be, or, not, to, be, that, is, the, question".
Nun kann die Häufigkeit der einzelnen Wörter gezählt werden.
Somit kommen die Wörter "to" und "be" zweimal vor und die restlichen
Wörter jeweils einmal.</p>
<p>Diese Art der Berechnung kann dann auch für 2-Gramme durchgführt
werden. Der Satz würde dafür in folgende Fragemente zerlegt werden:
"To be, be or, or not, not to, to be, be that, that is, is the, the question".
Nun kann die Häufigkeit von zwei aufeinander folgenden Wörtern ermittelt werden.
Die Phrase "to be" kommt innerhalb des Satzes somit zweimal
und alle anderen nur einmal vor.</p>
<p>Dieser Prozess kann weitere Male wiederholt werden z.B. für 3-, 4- oder 5-Gramme.</p>
<p>Diese Art der Berechnung wurde für alle Protokolle der Bundestagssitzungen
seit 1949 bis 2017 durchgeführt, um die Häufigkeiten verschiedener
Begriffe bzw. Phrasen pro Jahr darstellen zu können.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">filter_2</i>Verschiedene Korpora</div>
<div class="collapsible-body">
<p>Mit der Option "Korpus" kann zwischen zwei verschiedenen
Korpora gewechselt werden, an die die Suchanfrage gestellt wird.</p>
<p>Bei der Korpusauswahl "Lemmatisiert ohne Stoppwörter" werden
N-Gramme abgefragt, die auf Grundlage der lemmatisierten Protokolle
ohne Stopwörter berechnet wurden. Das bedeutet, dass alle Wörter der
Protokolle auf ihre Grundform zurückgeführt und häufige
Wörter wie "ist" oder "ein" entfernt wurden. Aus dem Satz
"Guten Morgen, liebe Kolleginnen und Kollegen! Ich begrüße Sie alle herzlich."
wird so die Zeichenfolge
"Guten Morgen lieb Kollegin Kollege ich begrüßen ich herzlich"
N-Gramme die für die beiden Sätze berechnet werden unterscheiden sich somit
erheblich.</p>
<p> Der Korpus "Nicht lemmatisiert mit Stoppwörtern" lässt den
Satz unberührt.</p>
<p>Beide Korpora eignen sich für verschiedene Suchanfragen.
Möchte eher die Häufigkeit von zusammengefassten Begriffen ermittelt
werden, kann der Korpus "Lemmatisiert ohne Stoppwörter" verwendet
werden. <br />
Werden jedoch eher ganze Phrasen wie "Kampf gegen den Terror"
gesucht, sollte der Korpus "Nicht lemmatisiert mit Stoppwörtern"
vewrwendet werden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">close</i>Grenzen der Suchanfrage</div>
<div class="collapsible-body">
<p>Für den Korpus "Lemmatisiert ohne Stoppwörter" können 1-
bis 5-Gramme abgefragt werden.</p>
<p>Der Korpus "Nicht lemmatisiert mit Stoppwörtern" ist auf
eine Abfrage von 1- bis 4-Grammen begrenzt.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">access_time</i>Suchgeschwindigkeit</div>
<div class="collapsible-body">
<p>Die Suchanfragen für 1-Gramme ist sehr schnell.
Werden komplexere 2-, 3-, 4- oder 5-Gramme abgefragt, ist mit
einer Bearbeitungszeit von einigen Sekunden zu rechnen.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">poll</i>Interpretation der Daten</div>
<div class="collapsible-body">
<p>Aus den Ergebnissen einer Suchanfrage sollten keine vorschnellen
Kausalitäten abgeleitet werden. Die verschiedenen Häufigkeiten sollten
immer im Kontext ihrer Zeit und politscher Ereignisse gesehen werden.</p>
</div>
</li>
</ul>
</div>
<div class="col s12 m12 l8">
<div class="card">
<div class="card-content">
<span class="card-title">Graph</span>
{{ bar_chart.as_html }}
<div class="divider"></div>
<div class="switch section">
<span>Erweiterter Suchsyntax: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aktiviert, kann die PostgreSQL interne regex-Syntax für die einzelnen Suchanfragen verwendet werden. Allerdings kann diese nur an Wortenden ('Asyl\w*') verwendet werden. Wörter können am Wortende mit '__' ('Krieg__') quasi escaped werden, so dass diese nicht als regulärer Ausdruck interpretiert werden."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.search_plus.html_name}}" class="filled-in" {% if form.search_plus.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
<div class="section">
<div class="input-field col s12">
<i class="material-icons prefix blue-grey-text darken-4">filter_9_plus</i>
<input id="id_query" type="text" name="{{form.range.html_name}}" class="autocomplete materialize-textarea validate" {% if form.range.value != None %}value = "{{form.range.value}}" {% else %}value = "10" {% endif %}}>
<label for="id_range">{{form.range.label}}</label>
</div>
</div>
<div class="divider"></div>
</div>
</form>
</div>
</div>
</div>
<ul class="collapsible white">
<li class="active">
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">info_outline</i>Was ist das hier?</div>
<div class="collapsible-body">
<p>Mit diesem Tool können alle Protokolle von 1949 bis 2017
nach einem Begriff durchsucht werden. Für diesen
wird pro MdB dargestellt wie häufig dieses in seinen Reden
und Redebeiträgen den gesuchten Begriff verwendet hat.
</p>
<p>Der Begriff kann eine Phrase mit der Länge von
ein bis fünf Wörter sein.
Eine weitere Suchanfrage wäre z.B. "Steuer erhöhen"</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">search</i>Muster der Suchanfrage</div>
<div class="collapsible-body">
<p>Eine Suchanfrage ist ein einzelner Begriff bzw. einzelne Phrase.</p>
<p>Die beispielhafte Suchanfrage "Ausländer"
fragt somit die Häufigkeit des Begriffs ab.
Es kann nur ein BEgriff gleichzeitig gesucht werden.</p>
<p>Eine weitere Suchanfrage wäre z.B. "Steuerflucht"</p>
<p>Es können nicht nur einzelne Wörter, sondern je nach Korpus
Phrasen mit einer Länge von bis zu fünf Wörtern abgefragt werden.
Eine beispielhafte Suchanfrage wäre z.B. "Steuer erhöhen".
</p>
<p>Möglich wird diese Art der Abfrage dadurch, das für alle Protokolle
sogenannte N-Gramme berechnet wurden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">short_text</i>Was sind N-Gramme?</div>
<div class="collapsible-body">
<p>Für die Berechnung von N-Grammen wird ein Text in einzelne
Fragmente zerlegt, die dann in ihrer Häufigkeit gezählt werden können.
N gibt hierbei die Länge der einzelen Fragmente an.
Ist z.B. der Satz "to be or not to be that is the question."
gegeben, kann für diesen die dazugehörigen 1-Gramme berechnet werden.
Diese wären dann: "to, be, or, not, to, be, that, is, the, question".
Nun kann die Häufigkeit der einzelnen Wörter gezählt werden.
Somit kommen die Wörter "to" und "be" zweimal vor und die restlichen
Wörter jeweils einmal.</p>
<p>Diese Art der Berechnung kann dann auch für 2-Gramme durchgführt
werden. Der Satz würde dafür in folgende Fragemente zerlegt werden:
"To be, be or, or not, not to, to be, be that, that is, is the, the question".
Nun kann die Häufigkeit von zwei aufeinander folgenden Wörtern ermittelt werden.
Die Phrase "to be" kommt innerhalb des Satzes somit zweimal
und alle anderen nur einmal vor.</p>
<p>Dieser Prozess kann weitere Male wiederholt werden z.B. für 3-, 4- oder 5-Gramme.</p>
<p>Diese Art der Berechnung wurde für alle Protokolle der Bundestagssitzungen
seit 1949 bis 2017 durchgeführt, um die Häufigkeiten verschiedener
Begriffe bzw. Phrasen pro Jahr darstellen zu können.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">filter_2</i>Verschiedene Korpora</div>
<div class="collapsible-body">
<p>Mit der Option "Korpus" kann zwischen zwei verschiedenen
Korpora gewechselt werden, an die die Suchanfrage gestellt wird.</p>
<p>Bei der Korpusauswahl "Lemmatisiert ohne Stoppwörter" werden
N-Gramme abgefragt, die auf Grundlage der lemmatisierten Protokolle
ohne Stopwörter berechnet wurden. Das bedeutet, dass alle Wörter der
Protokolle auf ihre Grundform zurückgeführt und häufige
Wörter wie "ist" oder "ein" entfernt wurden. Aus dem Satz
"Guten Morgen, liebe Kolleginnen und Kollegen! Ich begrüße Sie alle herzlich."
wird so die Zeichenfolge
"Guten Morgen lieb Kollegin Kollege ich begrüßen ich herzlich"
N-Gramme die für die beiden Sätze berechnet werden unterscheiden sich somit
erheblich.</p>
<p> Der Korpus "Nicht lemmatisiert mit Stoppwörtern" lässt den
Satz unberührt.</p>
<p>Beide Korpora eignen sich für verschiedene Suchanfragen.
Möchte eher die Häufigkeit von zusammengefassten Begriffen ermittelt
werden, kann der Korpus "Lemmatisiert ohne Stoppwörter" verwendet
werden. <br />
Werden jedoch eher ganze Phrasen wie "Kampf gegen den Terror"
gesucht, sollte der Korpus "Nicht lemmatisiert mit Stoppwörtern"
vewrwendet werden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">close</i>Grenzen der Suchanfrage</div>
<div class="collapsible-body">
<p>Für den Korpus "Lemmatisiert ohne Stoppwörter" können 1-
bis 5-Gramme abgefragt werden.</p>
<p>Der Korpus "Nicht lemmatisiert mit Stoppwörtern" ist auf
eine Abfrage von 1- bis 4-Grammen begrenzt.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">access_time</i>Suchgeschwindigkeit</div>
<div class="collapsible-body">
<p>Die Suchanfragen für 1-Gramme ist sehr schnell.
Werden komplexere 2-, 3-, 4- oder 5-Gramme abgefragt, ist mit
einer Bearbeitungszeit von einigen Sekunden zu rechnen.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">poll</i>Interpretation der Daten</div>
<div class="collapsible-body">
<p>Aus den Ergebnissen einer Suchanfrage sollten keine vorschnellen
Kausalitäten abgeleitet werden. Die verschiedenen Häufigkeiten sollten
immer im Kontext ihrer Zeit und politscher Ereignisse gesehen werden.</p>
</div>
</li>
</ul>
</div>
<div class="col s12 m12 l8">
<div class="card">
<div class="card-content">
<span class="card-title">Graph</span>
{{ bar_chart.as_html }}
</div>
</div>
</div>
{% endblock content %}

View File

@ -5,194 +5,193 @@ query. This creates the ngram viewer per year. -->
{% block nav-tabs %}
<div class="nav-content">
<ul class="tabs tabs-transparent">
<li class="tab"><a target="_self" class="active" href="{% url "ngram-viewer-jahr" %}">Pro Jahr</a></li>
<li class="tab"><a target="_self" href="{% url "ngram-viewer-sprecher" %}">Pro MdB</a></li>
</ul>
<ul class="tabs tabs-transparent">
<li class="tab"><a target="_self" class="active" href="{% url "ngram-viewer-jahr" %}">Pro Jahr</a></li>
<li class="tab"><a target="_self" href="{% url "ngram-viewer-sprecher" %}">Pro MdB</a></li>
</ul>
</div>
{% endblock nav-tabs %}
{% block content %}
<div class="row">
<div class="col s12 m12 l4">
<div class="card">
<div class="card-content">
<span class="card-title center-align">Suchoptionen</span>
<div class="row">
<form method="GET" class="col s12">
{% csrf_token %}
<div class="input-field col s12">
<i class="material-icons prefix">search</i>
<input id="id_query" type="text" name="{{form.query.html_name}}" class="autocomplete materialize-textarea validate" {% if form.query.value != None %}value = "{{form.query.value}}" {% else %}value = "Kroatien, Krieg, Asyl" {% endif %}}>
<label for="id_query">{{form.query.label}}</label>
<button class="btn waves-effect waves-light right light-green darken-3" type="submit" name="ngram-search">Suche
<i class="material-icons right">send</i>
</button>
</div>
<br />
<br />
Korpus:{{form.corpus_choice}}
<div class="section">
<div class="switch section ">
<span>Case-sensitive Suche:</span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.case_sensitive.html_name}}" class="filled-in" {% if form.case_sensitive.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
<div class="switch section">
<span>Erweiterter Suchsyntax: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aktiviert, kann die PostgreSQL interne regex-Syntax für die einzelnen Suchanfragen verwendet werden. Allerdings kann diese nur an Wortenden ('Asyl\w*') verwendet werden. Wörter können am Wortende mit '__' ('Krieg__') quasi escaped werden, so dass diese nicht als regulärer Ausdruck interpretiert werden."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.search_plus.html_name}}" class="filled-in" {% if form.search_plus.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
<div class="switch section">
<span>Fehlende Daten ignorieren: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aus, werden Jahre, die das gesuchte Ngramm nicht enthalten mit Nullwerten auf gefüllt. Wird diese Option aktiviert, werden Jahre, die das gesuchte Ngramm nicht enthalten ignoriert."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.ignore_missing.html_name}}" class="filled-in" {% if form.ignore_missing.value == True %}checked="checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</div>
<div class="divider"></div>
</div>
</form>
</div>
<div class="col s12 m12 l4">
<div class="card">
<div class="card-content">
<span class="card-title center-align">Suchoptionen</span>
<div class="row">
<form method="GET" class="col s12">
<div class="input-field col s12">
<i class="material-icons prefix">search</i>
<input id="id_query" type="text" name="{{form.query.html_name}}" class="autocomplete materialize-textarea validate" {% if form.query.value != None %}value = "{{form.query.value}}" {% else %}value = "Kroatien, Krieg, Asyl" {% endif %}}>
<label for="id_query">{{form.query.label}}</label>
<button class="btn waves-effect waves-light right light-green darken-3" type="submit" name="ngram-search">Suche
<i class="material-icons right">send</i>
</button>
</div>
</div>
<ul class="collapsible white">
<li class="active">
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">info_outline</i>Was ist das hier?</div>
<div class="collapsible-body">
<p>Mit diesem Tool können alle Protokolle von 1949 bis 2017
nach verschiedenen Begriffen durchsucht werden. Für jeden
Begriff wird pro Jahr dargestellt wie häufig dieser von den
Rednern und MdBs im deutschen Bundestag in deren
Reden und Redebeiträge insgesamt verwendet wurde.</p>
<p>Begriffe bzw. Phrasen können ein bis fünf Wörter lang sein.
Eine weitere Suchanfrage wäre z.B. "Steuer erhöhen, Steuer senken, schwarze Null"</p>
<br />
<br />
Korpus:{{form.corpus_choice}}
<div class="section">
<div class="switch section ">
<span>Case-sensitive Suche:</span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.case_sensitive.html_name}}" class="filled-in" {% if form.case_sensitive.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">search</i>Muster der Suchanfrage</div>
<div class="collapsible-body">
<p>Eine Suchanfrage ist eine durch Kommata getrennte
Zeichenkette. Durch die Kommata werden verschiedene Begriffe
voneinander getrennt und einzeln abgefragt.</p>
<p>Die beispielhafte Suchanfrage "Kroatien, Krieg, Asyl"
fragt somit die Häufigkeit der drei verschiedenen Wörter ab.
Es können beliebig viele Begriffe aneinander gereit werden.</p>
<p>Eine weitere Suchanfrage wäre z.B. "Kroatien, Krieg, Asyl,
Syrien, Europa"</p>
<p>Es können nicht nur einzelne Wörter, sondern je nach Korpus
Phrasen mit einer Länge von bis zu fünf Wörtern abgefragt werden.
Eine beispielhafte Suchanfrage wäre z.B. "Steuer erhöhen, Steuer senken, schwarze Null".
Es können gleichzeitig Phrasen verschiedener Länge abgefragt werden.
Ein Beispiel hierfür ist "Steuer erhöhen, Steuer senken, schwarze Null, Steuerbetrug".
</p>
<p>Möglich wird diese Art der Abfrage dadurch, das für alle Protokolle
sogenannte N-Gramme berechnet wurden.</p>
</div>
<div class="divider"></div>
<div class="switch section">
<span>Erweiterter Suchsyntax: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aktiviert, kann die PostgreSQL interne regex-Syntax für die einzelnen Suchanfragen verwendet werden. Allerdings kann diese nur an Wortenden ('Asyl\w*') verwendet werden. Wörter können am Wortende mit '__' ('Krieg__') quasi escaped werden, so dass diese nicht als regulärer Ausdruck interpretiert werden."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.search_plus.html_name}}" class="filled-in" {% if form.search_plus.value == True %}checked = "checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">short_text</i>Was sind N-Gramme?</div>
<div class="collapsible-body">
<p>Für die Berechnung von N-Grammen wird ein Text in einzelne
Fragmente zerlegt, die dann in ihrer Häufigkeit gezählt werden können.
N gibt hierbei die Länge der einzelen Fragmente an.
Ist z.B. der Satz "to be or not to be that is the question."
gegeben, kann für diesen die dazugehörigen 1-Gramme berechnet werden.
Diese wären dann: "to, be, or, not, to, be, that, is, the, question".
Nun kann die Häufigkeit der einzelnen Wörter gezählt werden.
Somit kommen die Wörter "to" und "be" zweimal vor und die restlichen
Wörter jeweils einmal.</p>
<p>Diese Art der Berechnung kann dann auch für 2-Gramme durchgführt
werden. Der Satz würde dafür in folgende Fragemente zerlegt werden:
"To be, be or, or not, not to, to be, be that, that is, is the, the question".
Nun kann die Häufigkeit von zwei aufeinander folgenden Wörtern ermittelt werden.
Die Phrase "to be" kommt innerhalb des Satzes somit zweimal
und alle anderen nur einmal vor.</p>
<p>Dieser Prozess kann weitere Male wiederholt werden z.B. für 3-, 4- oder 5-Gramme.</p>
<p>Diese Art der Berechnung wurde für alle Protokolle der Bundestagssitzungen
seit 1949 bis 2017 durchgeführt, um die Häufigkeiten verschiedener
Begriffe bzw. Phrasen pro Jahr darstellen zu können.</p>
</div>
<div class="divider"></div>
<div class="switch section">
<span>Fehlende Daten ignorieren: <a class="tooltipped" data-position="bottom" data-tooltip="Ist diese Option aus, werden Jahre, die das gesuchte Ngramm nicht enthalten mit Nullwerten auf gefüllt. Wird diese Option aktiviert, werden Jahre, die das gesuchte Ngramm nicht enthalten ignoriert."><i
class="material-icons tiny blue-grey-text darken-4">info_outline</i></a></span>
<div style="float: right;">
Aus
<label>
<input type="checkbox" name="{{form.ignore_missing.html_name}}" class="filled-in" {% if form.ignore_missing.value == True %}checked="checked" {% endif %} />
<span class="lever"></span>
</label>
Ein
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">filter_2</i>Verschiedene Korpora</div>
<div class="collapsible-body">
<p>Mit der Option "Korpus" kann zwischen zwei verschiedenen
Korpora gewechselt werden, an die die Suchanfrage gestellt wird.</p>
<p>Bei der Korpusauswahl "Lemmatisiert ohne Stoppwörter" werden
N-Gramme abgefragt, die auf Grundlage der lemmatisierten Protokolle
ohne Stopwörter berechnet wurden. Das bedeutet, dass alle Wörter der
Protokolle auf ihre Grundform zurückgeführt und häufige
Wörter wie "ist" oder "ein" entfernt wurden. Aus dem Satz
"Guten Morgen, liebe Kolleginnen und Kollegen! Ich begrüße Sie alle herzlich."
wird so die Zeichenfolge
"Guten Morgen lieb Kollegin Kollege ich begrüßen ich herzlich"
N-Gramme die für die beiden Sätze berechnet werden unterscheiden sich somit
erheblich.</p>
<p> Der Korpus "Nicht lemmatisiert mit Stoppwörtern" lässt den
Satz unberührt.</p>
<p>Beide Korpora eignen sich für verschiedene Suchanfragen.
Möchte eher die Häufigkeit von zusammengefassten Begriffen ermittelt
werden, kann der Korpus "Lemmatisiert ohne Stoppwörter" verwendet
werden. <br />
Werden jedoch eher ganze Phrasen wie "Kampf gegen den Terror"
gesucht, sollte der Korpus "Nicht lemmatisiert mit Stoppwörtern"
vewrwendet werden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">close</i>Grenzen der Suchanfrage</div>
<div class="collapsible-body">
<p>Für den Korpus "Lemmatisiert ohne Stoppwörter" können 1-
bis 5-Gramme abgefragt werden.</p>
<p>Der Korpus "Nicht lemmatisiert mit Stoppwörtern" ist auf
eine Abfrage von 1- bis 4-Grammen begrenzt.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">access_time</i>Suchgeschwindigkeit</div>
<div class="collapsible-body">
<p>Die Suchanfragen für mehrere 1-Gramme ist sehr schnell.
Werden komplexere 2-, 3-, 4- oder 5-Gramme abgefragt, ist mit
einer Bearbeitungszeit von einigen Sekunden zu rechnen.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">poll</i>Interpretation der Daten</div>
<div class="collapsible-body">
<p>Aus den Ergebnissen einer Suchanfrage sollten keine vorschnellen
Kausalitäten abgeleitet werden. Die verschiedenen Häufigkeiten sollten
immer im Kontext ihrer Zeit und politscher Ereignisse gesehen werden.</p>
</div>
</li>
</ul>
</div>
<div class="col s12 m12 l8">
<div class="card">
<div class="card-content">
<span class="card-title">Häufigkeit der gesuchten N-Gramme pro Jahr von 1949 bis 2017</span>
{{ line_chart.as_html}}
</div>
<div class="divider"></div>
</div>
</form>
</div>
</div>
</div>
<ul class="collapsible white">
<li class="active">
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">info_outline</i>Was ist das hier?</div>
<div class="collapsible-body">
<p>Mit diesem Tool können alle Protokolle von 1949 bis 2017
nach verschiedenen Begriffen durchsucht werden. Für jeden
Begriff wird pro Jahr dargestellt wie häufig dieser von den
Rednern und MdBs im deutschen Bundestag in deren
Reden und Redebeiträge insgesamt verwendet wurde.</p>
<p>Begriffe bzw. Phrasen können ein bis fünf Wörter lang sein.
Eine weitere Suchanfrage wäre z.B. "Steuer erhöhen, Steuer senken, schwarze Null"</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">search</i>Muster der Suchanfrage</div>
<div class="collapsible-body">
<p>Eine Suchanfrage ist eine durch Kommata getrennte
Zeichenkette. Durch die Kommata werden verschiedene Begriffe
voneinander getrennt und einzeln abgefragt.</p>
<p>Die beispielhafte Suchanfrage "Kroatien, Krieg, Asyl"
fragt somit die Häufigkeit der drei verschiedenen Wörter ab.
Es können beliebig viele Begriffe aneinander gereit werden.</p>
<p>Eine weitere Suchanfrage wäre z.B. "Kroatien, Krieg, Asyl,
Syrien, Europa"</p>
<p>Es können nicht nur einzelne Wörter, sondern je nach Korpus
Phrasen mit einer Länge von bis zu fünf Wörtern abgefragt werden.
Eine beispielhafte Suchanfrage wäre z.B. "Steuer erhöhen, Steuer senken, schwarze Null".
Es können gleichzeitig Phrasen verschiedener Länge abgefragt werden.
Ein Beispiel hierfür ist "Steuer erhöhen, Steuer senken, schwarze Null, Steuerbetrug".
</p>
<p>Möglich wird diese Art der Abfrage dadurch, das für alle Protokolle
sogenannte N-Gramme berechnet wurden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">short_text</i>Was sind N-Gramme?</div>
<div class="collapsible-body">
<p>Für die Berechnung von N-Grammen wird ein Text in einzelne
Fragmente zerlegt, die dann in ihrer Häufigkeit gezählt werden können.
N gibt hierbei die Länge der einzelen Fragmente an.
Ist z.B. der Satz "to be or not to be that is the question."
gegeben, kann für diesen die dazugehörigen 1-Gramme berechnet werden.
Diese wären dann: "to, be, or, not, to, be, that, is, the, question".
Nun kann die Häufigkeit der einzelnen Wörter gezählt werden.
Somit kommen die Wörter "to" und "be" zweimal vor und die restlichen
Wörter jeweils einmal.</p>
<p>Diese Art der Berechnung kann dann auch für 2-Gramme durchgführt
werden. Der Satz würde dafür in folgende Fragemente zerlegt werden:
"To be, be or, or not, not to, to be, be that, that is, is the, the question".
Nun kann die Häufigkeit von zwei aufeinander folgenden Wörtern ermittelt werden.
Die Phrase "to be" kommt innerhalb des Satzes somit zweimal
und alle anderen nur einmal vor.</p>
<p>Dieser Prozess kann weitere Male wiederholt werden z.B. für 3-, 4- oder 5-Gramme.</p>
<p>Diese Art der Berechnung wurde für alle Protokolle der Bundestagssitzungen
seit 1949 bis 2017 durchgeführt, um die Häufigkeiten verschiedener
Begriffe bzw. Phrasen pro Jahr darstellen zu können.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">filter_2</i>Verschiedene Korpora</div>
<div class="collapsible-body">
<p>Mit der Option "Korpus" kann zwischen zwei verschiedenen
Korpora gewechselt werden, an die die Suchanfrage gestellt wird.</p>
<p>Bei der Korpusauswahl "Lemmatisiert ohne Stoppwörter" werden
N-Gramme abgefragt, die auf Grundlage der lemmatisierten Protokolle
ohne Stopwörter berechnet wurden. Das bedeutet, dass alle Wörter der
Protokolle auf ihre Grundform zurückgeführt und häufige
Wörter wie "ist" oder "ein" entfernt wurden. Aus dem Satz
"Guten Morgen, liebe Kolleginnen und Kollegen! Ich begrüße Sie alle herzlich."
wird so die Zeichenfolge
"Guten Morgen lieb Kollegin Kollege ich begrüßen ich herzlich"
N-Gramme die für die beiden Sätze berechnet werden unterscheiden sich somit
erheblich.</p>
<p> Der Korpus "Nicht lemmatisiert mit Stoppwörtern" lässt den
Satz unberührt.</p>
<p>Beide Korpora eignen sich für verschiedene Suchanfragen.
Möchte eher die Häufigkeit von zusammengefassten Begriffen ermittelt
werden, kann der Korpus "Lemmatisiert ohne Stoppwörter" verwendet
werden. <br />
Werden jedoch eher ganze Phrasen wie "Kampf gegen den Terror"
gesucht, sollte der Korpus "Nicht lemmatisiert mit Stoppwörtern"
vewrwendet werden.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">close</i>Grenzen der Suchanfrage</div>
<div class="collapsible-body">
<p>Für den Korpus "Lemmatisiert ohne Stoppwörter" können 1-
bis 5-Gramme abgefragt werden.</p>
<p>Der Korpus "Nicht lemmatisiert mit Stoppwörtern" ist auf
eine Abfrage von 1- bis 4-Grammen begrenzt.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">access_time</i>Suchgeschwindigkeit</div>
<div class="collapsible-body">
<p>Die Suchanfragen für mehrere 1-Gramme ist sehr schnell.
Werden komplexere 2-, 3-, 4- oder 5-Gramme abgefragt, ist mit
einer Bearbeitungszeit von einigen Sekunden zu rechnen.</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons blue-grey-text darken-4">poll</i>Interpretation der Daten</div>
<div class="collapsible-body">
<p>Aus den Ergebnissen einer Suchanfrage sollten keine vorschnellen
Kausalitäten abgeleitet werden. Die verschiedenen Häufigkeiten sollten
immer im Kontext ihrer Zeit und politscher Ereignisse gesehen werden.</p>
</div>
</li>
</ul>
</div>
<div class="col s12 m12 l8">
<div class="card">
<div class="card-content">
<span class="card-title">Häufigkeit der gesuchten N-Gramme pro Jahr von 1949 bis 2017</span>
{{ line_chart.as_html}}
</div>
</div>
</div>
{% endblock content %}