FGHO Sommerschule 2023 Aufgaben

This commit is contained in:
Inga Kirschnick 2023-07-25 17:16:20 +02:00
parent 2dd6015ba6
commit adfd229e66

View File

@ -1,22 +1,66 @@
<h2>Workshop Aufgaben</h2>
<p>Hallo liebe Inga</p>
<h3>Aufgabe 1</h3>
<h3>Aufgabenblock 1</h3>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
1. Ich möchte alle Ergebnisse für den Begriff "jüdisch" finden. Groß- und
Kleinschreibung soll dabei nicht berücksichtigt werden. Bei der richtigen
Abfrage gibt es 5 Ergebnisse.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="jüdisch" %c];</code></pre>
</div>
</div>
<p>
2. Ich möchte jetzt in einer einzigen Suchabfrage alle Ergebnisse für die
Begriffe "jüdisch", aber auch "Juden" und "jüdischer" usw. finden. Bei der
richtigen Abfrage müsste es dafür 118 Ergebnisse geben.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="j(u|ü)d.*" %c];</code></pre>
</div>
</div>
<p>
3. Ich möchte in einer einzigen Suchabfrage alle Ergebnisse für den Begriff
"judisch" (in sämtlichen Ableitungen s.o.) im Zusammenhang mit dem Begriff
(ebenfalls sämtliche Ableitungen) "Freund" herausfiltern. Dazwischen sollen
0 bis 10 Wörter auftauchen. Es gibt 1 Ergebnis bei der richtigen Abfrage.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="j(u|ü)d.*" %c] []{0,10} [word="freund.*" %c];</code></pre>
</div>
</div>
<p>
4. Ich möchte zuletzt in einer einzigen Suchanfrage alle Ergebnisse für
entweder "jüdisch" oder "deutsch" (in sämtlichen Ableitungen) und "Leben"
herausfiltern. Dazwischen sollen wieder 0 bis 10 Wörter auftauchen.
Es gibt wieder ein Ergebnis.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="j(u|ü)d.*" %c | word="deutsch.*" %c] []{0,10} [word=".*freund.*" %c];</code></pre>
</div>
</div>
<ul class="collapsible">
<li>
<div class="collapsible-header">Tipp 1</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Wörter können über den Query Builder > "Add new Token to your Query" hinzugefügt werden. Unten kann der Haken bei "Ignore Case" gesetzt werden um Groß- und Kleinschreibung zu ignorieren.
</p>
</div>
</li>
@ -24,42 +68,87 @@
<div class="collapsible-header">Tipp 2</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Über die Option Group lassen sich auch Buchstaben in der Suche definieren. So könnte als erste Option "u" und als zweite Option "ü" definiert werden. Die Suche würde dann nach beiden Varianten suchen.
Um beliebig viele Buchstaben zu finden, kann ein Wildcard-Charakter (".") verwendet werden, gefolgt von dem Incidence Modifier "zero or more" ("*"). Damit sind beliebig viele Buchstaben jeglicher Art möglich.
<pre><code>[word="l(o|u)r.*"];</code></pre> würde z.B. nach "lora", "lura", "lurum" usw. suchen.
</p>
</div>
</li>
<li>
<div class="collapsible-header">Lösung</div>
<div class="collapsible-header">Tipp 3</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Um eine bestimmte Anzahl Wörter anzeigen zu lassen, die einen beliebigen
Inhalt haben dürfen, kann mit einem Empty Token (also einem nicht definiertem Token)
gerarbeitet werden. Den kann man über das Dropdown "Which kind of token are you looking for?"
hinzugefügt werden. Dem leeren Token kann dann ein Incidence Modifier zugewiesen werden, der
die Anzahl der Wörter auf 0 bis 10 begrenzt (between n and m).
<pre><code>[]{0,10};</code></pre>
</p>
</div>
</li>
<li>
<div class="collapsible-header">Tipp 4</div>
<div class="collapsible-body">
<p>
Wenn entweder das eine oder das andere Wort auftauchen soll, kann der "OR"-Operator in der unteren Options-Leiste verwendet werden.
Dann kann ein zweiter Wert eingetragen werden. Einer von beiden muss dann auftauchen.
<pre><code>[word="lorem" %c | word="ipsum" %c];</code></pre>
</p>
</div>
</li>
</ul>
<h3>Aufgabe 2</h3>
<h3>Aufgabenblock 2</h3>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
1. Ich möchte in einer Suchanfrage alle Ergebnisse für Wortfolgen, in denen
das Wort "jüdisch" (mit sämtlichen Ableitungen) vorkommt. Vor dem Wort
soll ein Adjektiv auftauchen auf das 0-5 Wörter folgen sollen. Die
richtige Abfrage ergibt 36 Ergebnisse.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[simple_pos="ADJ"] []{0,5} [word="j(u|ü)d.*" %c];</code></pre>
</div>
</div>
<p>
2. Ich möchte in einer Suchanfrage alle Ergebnisse für Wortfolgen, in denen
das Wort "jüdisch" (mit sämtlichen Ableitungen) ein Adjektiv ist und direkt
von einem Nomen gefolgt wird. Die richtige Abfrage ergibt 27 Ergebnisse.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="j(u|ü)d.*" %c & simple_pos="ADJ"] [simple_pos="NOUN"];</code></pre>
</div>
</div>
<p>
3. Ich möchte eine Suchanfrage aller Ergebnisse für Wortfolgen, in denen das
Wort "jüdisch" (mit sämtlichen Ableitungen) von dem Lemma "sein" gefolgt
wird. Dazwischen dürfen 5 beliebige Wörter vorkommen. Die richtige Abfrage
ergibt 16 Ergebnisse.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>[word="J(u|ü)d.*" %c] []{0,5} [lemma="sein" %c];</code></pre>
</div>
</div>
<ul class="collapsible">
<li>
<div class="collapsible-header">Tipp 1</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Über die Token-Suchauswahl kann "simple_pos" ausgewählt werden. Darüber
findet man sämtliche Werte, zum Beispiel "ADJ" für Adjektive oder "NOUN" für Nomen.
</p>
</div>
</li>
@ -67,42 +156,92 @@
<div class="collapsible-header">Tipp 2</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Dem Wort kann eine zweite Token-Eingrenzung hinzugefügt werden. Dafür nutzen wir den
"AND"-Operator. Dort können wir über die Token-Suchauswahl "simple_pos" auswählen und
dann einen Wert hinzufügen. Somit muss das gesuchte Wort
ebenfalls den simple_pos-Wert haben, also zum Beispiel ein Adjektiv sein.
<pre><code>[word="lorem" & simple_pos="NOUN"];</code></pre>
</p>
</div>
</li>
<li>
<div class="collapsible-header">Lösung</div>
<div class="collapsible-header">Tipp 3</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Ich kann ebenfalls nach der Grundform (Lemma) eines Wortes suchen. Dafür
muss ich in der Token-Suchauswahl "lemma" auswählen und dann den Wert - genau wie beim "word" -
eintragen.
<pre><code>[lemma="lorem" %c];</code></pre>
</p>
</div>
</li>
</ul>
<h3>Aufgabe 3</h3>
<h3>Aufgabenblock 3</h3>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
1. Ich möchte in einer Suchanfrage alle Ergebnisse für "jüdisch"
(in sämtlichen Ableitungen) im Zusammenhang mit dem Lemma "sprechen"
(in sämtlichen Ableitungen, also auch "besprechen", "versprechen" usw.)
erhalten. Dabei möchte ich nur Ergebnisse innerhalb eines Satzes berücksichtigen.
Vor, zwischen und nach den Begriffen dürfen beliebig viele Wörter auftauchen.
Die richtige Abfrage ergibt 2 Treffer.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>&lt;s&gt; []* [word="j(u|ü)d.*" %c] []* [lemma=".*sprechen.*" %c] []* &lt;/s&gt;</code></pre>
</div>
</div>
<p>
2. Ich möchte in einer Suchanfrage alle Ergebnisse für Sätze, in denen eine
Person im Zusammenhang mit dem Lemma "helfen" (in sämtlichen Schreibweisen,
also auch "verhelfen" etc.) vorkommt. Vor, zwischen und nach den gesuchten
Werten dürfen beliebig viele Wörter vorkommen. Der als Person deklarierte
Wert darf ebenfalls beliebig lang sein. Die richtige Abfrage ergibt 6 Treffer.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>&lt;s&gt;[]* &lt;ent_type="PER"&gt; []* &lt;/ent_type&gt; []* [lemma=".*helfen.*" %c] []* &lt;/s&gt;;</code></pre>
</div>
</div>
<p>
3. Ich möchte in einer Suchabfrage alle Ergebnisse für Sätzen in denen der
Begriff "jüdisch" (in sämtlichen Ableitungen) im Zusammenhang mit einer
Organisation auftaucht. Vor, zwischen und nach den gesuchten Werten dürfen
beliebig viele Wörter vorkommen. Der als Person deklarierte Wert darf
ebenfalls beliebig lang sein. Die richtige Abfrage ergibt 4 Treffer.
</p>
<div class="row">
<div class="col s2">
<span class="btn waves-effect waves-light solution-button">Lösung</span>
</div>
<div class="col s10 solution-field hide">
<pre style="margin-top: 7px;"><code>&lt;s&gt;[]* [word="j(u|ü)d.*" %c][]* &lt;ent_type="ORG"&gt; []* &lt;/ent_type&gt; []*&lt;/s&gt;;</code></pre>
</div>
</div>
<ul class="collapsible">
<li>
<div class="collapsible-header">Tipp 1</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Ich kann über den Button "Add structural attributes to your query" umschließende
Satz-Tags setzen. Dafür muss ich auf den Button "Sentence" klicken und nachdem ich meine Anfrage
erstellt habe wieder auf "End Sentence" an der gleichen Stelle.
</p>
<p>
Wenn ich mit Sätzen arbeite, darf ich nicht die Platzhalter-Token ("<code>[]*</code>") vergessen, da sonst
ausschließlich Sätze mit genau den gesuchten Wörtern gefunden werden.
</p>
<p>
Wir haben bisher nur mit beliebigen Endungen eines Wortes in Form von
<code>[word="lore.*"]</code> gearbeitet. Das gleiche funktioniert auch am
Anfang eines Wortes, indem ich beliebig viele Wildcard-Character an den Anfang
der Wortes setze: <code>[word=".*rem"]</code>.
</p>
</div>
</li>
@ -110,22 +249,23 @@
<div class="collapsible-header">Tipp 2</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
</p>
</div>
</li>
<li>
<div class="collapsible-header">Lösung</div>
<div class="collapsible-body">
<p>
<pre><code>[word="lorem"];</code></pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
Über den Button "Add structural attributes to your query" kann ich auch Entitäten bestimmen.
Für unser Beispiel arbeiten wir ausschließlich mit den german ent_types. Deren Definitionen kann ich
mir in den Tagset-Listen anschauen. Hier kann ich dann die gewünschte Entität auswählen. Wenn
der gesuchte Wert beliebig sein darf, muss ich zwischen den öffnenden und schließenden ent-tag ein
Platzhalter-Token setzen, das beliebig lang sein darf ("<code>[]*</code>").
<pre><code>&lt;ent_type="LOC"&gt; []* &lt;/ent_type&gt;</code></pre>
</p>
</div>
</li>
</ul>
<script>
let solutionButtons = document.querySelectorAll('.solution-button');
solutionButtons.forEach((button) => {
button.addEventListener('click', (event) => {
let solutionField = event.target.parentElement.parentElement.querySelector('.solution-field');
solutionField.classList.toggle('hide');
});
});
</script>