grafische Eingabe → themenspezifische Fragestellungen |
Themenspezifische Fragestellungen und Lösungen
Einleitung
Auf dieser Seite werden einfache bis komplexe sprachwissenschaftliche Problemstellungen aufgelistet, für die konkrete Suchanfragen oder Suchanfragmuster angegeben und erläutert werden. Durch Rückverweise auf die zugehörigen Seiten der Syntax (der grafischen Suchanfragesprache) kann die Funktionsweise der benutzten Operatoren parallel dazu erlernt werden.
- Für ein besseres Verständnis werden komplexe Suchanfragen nach und nach
aufgebaut und erläutert, wobei die Teilanfragen mit
Q1
,Q2
, etc. bezeichnet werden. Die komplete Suchanfrage, wie sie auch von COSMAS II verstanden wird, ergibt sich aus dem Einsetzen vonQ1
inQ2
,Q2
inQ3
etc.
Viele der folgenden Suchanfragen können wegen (der grafischen) Operatoren
wie ELEM
oder LINKS
etc. nur im
grafischen Modus formuliert werden.
In der linken Leiste der grafischen Oberfläche werden standardmäßig
nur die gängigsten grafischen Operatoren angezeigt.
Die restlichen Operatoren blenden Sie wie folgt ein:
Menü Palette / alles anzeigen.
- Eine Sammlung einfacherer Problemstellungen und deren Lösung, für die Sie nur die Zeileneingabe benötigen, ist ebenfalls verfügbar.
- Eine generelle Bemerkung zu regulären Ausdrücken in COSMAS II.
Übersicht
- Wörter und Sonderzeichen
- Suchanfragen betreffend die Satzstruktur:
- Suchanfragen betreffend den Satzbau:
- Suchanfragen betreffend die Textstruktur:
- Erweitern/Verändern des Suchbereichs eines Ergebnisses:
- Suchanfragen mit morphosyntaktischen Annotationen (Wortklassen):
- Suchanfragen für die Kookkurrenzanalyse:
Suche an einer bestimmten Satzposition
Beispiel 1
Hierfür kann der Operator
IN
verwendet werden. Mit seinem Argument
<I> läßt
sich angeben,
an welcher Stelle von Y der Suchbegriff X gesucht bzw. nicht gesucht
werden soll. Wie in der folgende Tabelle veranschaulicht wird, schließen
sich die aus dem I-Wert L, R, F
und N erhaltenen Ergebnisse gegenseitig aus.
Suchanfrage | Erläuterung | Häufigkeit1 |
---|---|---|
IN(wegen,'L',(ELEM(S)) |
wegen am Satzanfang | 202.206 |
IN(wegen,'R',(ELEM(S)) |
wegen am Satzende | 11.095 |
IN(wegen,'F',(ELEM(S)) |
wegen von Satzanfang bis Satzende | 50 |
IN(wegen,'N',(ELEM(S)) |
wegen weder am Satzanfang noch -ende | 1.455.943 |
Summe von L, R, F und N | 1.669.294 | |
IN(wegen,' ',(ELEM(S)) |
keine Spezifizierung, d.h. alle Fälle zusammen | 1.669.294 |
Die Tabelle zeigt die Ergebnisse der Suche nach wegen (groß- oder kleingeschrieben,
keine Unterscheidung der Wortklassen), in den Sätzen
(ELEM(S)
)
des gesamten Archivs für die Optionen L, R, F und N.
Häufigkeit von wegen: 1.669.349. Anzahl Sätze: 222.564.359.
Diese 4 Optionen schließen sich gegenseitig aus. Ein und der gleiche Treffer kann
z.B. nicht durch die Optionen L und F erhalten werden.
Zusammengefasst werden diese Optionen bei der Verwendung von
IN
ohne Option
(letzte Suchanfrage in der obigen Tabelle),
die die gleichen Treffer liefert wie die vier Optionen zusammen.
Die Vorgabe F ist in diesem Fall insofern exotisch, als dass sie den Suchbegriff nur in Sätzen der Länge 1 finden kann, bei denen Satzanfang und -ende identisch sind.
Bemerkungen
Analog lässt sich z.B. in
Absätzen (ELEM(P)
),
Überschriften (ELEM(HEAD)
)
und beliebigen anderen Textmarkierungen recherchieren.
Da wegen eigentlich 1.669.349 mal im Archiv belegt ist, wurden durch die obigen Suchanfragen 1.669.349 - 1.669.294 = 55 Fälle nicht abgedeckt. Es handelt sich um Fälle, bei denen wegen außerhalb einer <s> ... </s> Markierung (in einem <byline> außerhalb des Textbody) gefunden wurde. Diese Fälle lassen sich mit folgender Suchanfrage unter Verwendung der Ausschließungsoption % erfragen:
Q1 = IN(wegen,'%',ELEM(S)) |
Q1 liefert tatsächlich die restlichen 55 Treffer.
Beispiel 2
In diesem Beispiel wird nach Sätzen gesucht, die mit unter und Hausarrest beginnen und enden. Zu diesem Zweck wird die Option F verwendet.
Q1 = ABSTAND(unter,+s0,Hausarrest)
|
Die Optionen FE und FI sind zwei Unteroptionen von F, die eine weitere Verfeinerung der Suchanfrage gestatten. Dabei verteilen sich alle Treffer von F entweder auf FE oder auf FI, wie aus der nächsten Tabelle ersichtlich ist:
Suchanfrage | Erläuterung | Häufigkeit1 |
---|---|---|
IN(Q1,'F',(ELEM(S)) |
wegen am Satzanfang und Hausarrest am Satzende | 13 |
IN(Q1,'FE',(ELEM(S)) |
wie F, aber keine anderen Wörter im Satz | 11 |
IN(Q1,'FI',(ELEM(S)) |
wie F, aber mindestens ein weiteres Wort im Satz | 2 |
Textbeispiel für einen Treffer mit FE
»Unter Hausarrest.«
Textbeispiel für einen Treffer mit FI
»Unter derselben Anklage sitzt der frühere Juntachef Jorge Videla seit fünf Monaten im Hausarrest.«
1 : im Archiv W - Achiv der geschriebenen Korpora, Stand August 2009.
Suche in Sätzen einer bestimmten Länge
Beispiel 1: Erfragen von Sätzen einer bestimmte Länge
Sätze mit z.B. einer maximalen Länge von 5 Wörtern erhält man mit Hilfe
der Operatoren ELEM
,
LINKS
und
RECHTS
wie folgt:
Q1a = ABSTAND(LINKS(ELEM(S)),'5w,s0',RECHTS(ELEM(S))) |
Hierzu werden die beiden Satzenden LINKS(ELEM(S))
und
RECHTS(ELEM(S))
in dem gewünschten Abstand 5w und
s0 voneinander gewählt. Liegen Anfangs- und Endwort max. 5 Wörter
auseinander, so auch die Satzlänge.
Q1b = ABSTAND(LINKS(ELEM(S)),'5:5w,s0',RECHTS(ELEM(S))) |
Diese Suchanfrage liefert Sätze mit einer exakten Länge von 5 Wörtern zurück.
Q1c = ABSTAND(LINKS(ELEM(S)),'6:100w,s0',RECHTS(ELEM(S))) |
Diese Anfrage liefert Sätze mit einer min. Länge von 6 Wörtern zurück.
Der Bereich 6:100w
(min. 6 bis max. 100) ist ein
Kunstgriff: da die Angabe eines Minimalwertes mit der Angabe eines
Maximalwertes gepaart werden muss, steht mit 100 ein beliebiger,
ausreichend hoher Wert, um alle Sätze länger als 6 Wörter zu erfassen.
Bemerkung zum Suchbereich solcher Ergebnisse
Werden die Suchanfragen Q1a-Q1c
in einer weiteren Suchanfrage
eingesetzt, muss folgendes beachtet werden:
Das Ergebnis von Q1a-Q1c
besteht nur aus den gesuchten
Satzendwörtern. Beispiel für Q1a
: "Aufrecht
gaben sie ihr Leben.".
Will man nun im ganzen Satzbereich suchen können, muss der Suchbereich
(= Ergebnisbereich) mit dem Operator
INKLUSIVE
wie folgt auf den ganzen Bereich
zwischen Satzanfang und -ende, Satzendwörter inklusive, erweitert werden:
Q2 = INKLUSIVE(Q1a) |
Für das gleiche Beispiel ist der neue Suchbereich in Q2
:
"Aufrecht gaben sie ihr Leben.".
Wird allerdings der Operator
IN
auf Q1
angewendet, so ersetzt die Bereichsoption all von
IN
die Verwendung von
INKLUSIVE
.
Beispiel 2: Suchen von Suchbegriffen in Sätzen bestimmter Länge
Nach den Ausführungen von Beispiel 1 läßt sich ein Suchbegriff in einem
Satz einer bestimmten Länge mit dem Operator
IN
wie folgt erfragen:
Q3 = IN(wegen,'all',Q1a) |
Die Bereichsoption all sorgt dafür, dass der Suchbegriff im ganzen
von Q1a
gefundenen Satz recherchiert wird. Dieser Weg führt
zum selben Ergebnis wie der Weg über
INKLUSIVE
,
siehe dazu Q3a
, und ist kürzer.
Ohne Angabe von all in Q3
wird wegen nur im Trefferbereich von Q1a
gesucht (d.h. am Satzanfang und -ende).
Das selbe Ergebnis wie in Q3
, aber mit Operator
INKLUSIVE
,
erhält man wie folgt:
Q3a = IN(wegen,'',Q2) |
Über die Werte des Arguments
<I>
von Operator IN
lässt sich
außerdem die Position des Suchbegriffes innerhalb
des Satzes vorgeben, z.B. mit dem Wert L wie in
Q3b = IN(wegen,'L,all',Q2) |
läßt sich angeben, dass wegen am Anfang des Satzes gesucht wird.
Suchanfrage nach dem ersten Komma eines Satzes
Problemstellung
Gewünscht wird die Liste aller nach dem Satzanfang als erste auftretenden Kommata. Dort, wo ein Satz mehrere Kommata beinhaltet, soll also nur das erste zurückgeliefert werden.
Eine solche Suchanfrage würde man gerne mit Hilfe von regulären Ausdrücken formulieren. Da COSMAS II keine regulären Ausdrücke anbietet, muss die hier vorgeschlagene Formulierung gewählt werden, die sich auf Satzenden stützt.
Beispiel
"So ging es nicht um eine konstruktive Kritik, wie mit dem Erbe des parteiischen Journalismus' umzugehen sei, sondern allein um eine Rückschau aus der Sicht der Sieger."
In diesem Beispiel soll das Komma nach Kritik zurückgeliefert werden.
Vorgehen
Man sucht nach allen Satzenden, kombiniert sie mit der Gruppe der im selben Satz gefundenen Kommata und wählt aus jeder Gruppe das am weitesten links stehende aus.
Formulierung
Q1 = RECHTS(ELEM(S)) |
Von allen Sätzen
(ELEM(S)
) wählt man das
letzte (= rechte) Wort
aus, d.h. das rechte Satzende.
Q2 = ABSTAND(",",+s0 max,Q1) |
Man sucht über den Abstandsoperator
alle Kommata, die in einem gleichen Satz vorkommen
(+s0
)
und fasst sie zu einer Gruppe zusammen (max
).
Der Trick hierbei besteht darin, alle Kommata im gleichen Satz
wie ein Satzende zu suchen,
damit man sie überhaupt zu einer Gruppe zusammenfassen kann.
Q3 = LINKS(Q2) |
Aus der Gruppe der Kommata eines Satzes wählt man das am weistesten links stehende aus. Das funktioniert natürlich auch für Sätze mit nur einem Komma.
Die komplette Formulierung lautet:
LINKS(ABSTAND(",",+s0 max,RECHTS(ELEM(S))) |
Suchanfrage nach einem Komma in einem bestimmten Kontext
Problemstellung
Gesucht werden die Textstellen, bei denen das erste Komma eines Satzes folgende Bedingungen erfüllt: kein Verb unmittelbar davor und kein Relativpronomen unmittelbar danach.
Vorgehen
Man sucht wie im Beispiel des ersten Kommas
im Satz nach der Liste aller Kommata, die als erste in einem Satz
vorkommen und schließt nacheinander diejenigen aus, in deren Umgebung z.B.
unerwünschte Wortklassen auftreten. Dazu benötigt man den
ausschließenden Abstandsoperator %
.
Formulierung
Q1 = RECHTS(ELEM(S)) |
Q1
liefert die Satzenden,
d.h. das letzte Wort eines jeden Satzes.
Q2 = LINKS(ABSTAND(",",+s0 max,Q1)) |
Q2
liefert die in einem Satz
zuerst auftretenden Kommata.
Q3 = ABSTAND(Q2,%w0,MORPH(VRB)) |
Von den in Q2
gefundenen Kommata werden nun diejenigen
ausgeschlossen (%), vor denen unmittelbar (w0
) ein
Verb steht. Da das Wort unmittelbar vor dem Komma einen Wortabstand von 0 zum
Komma hat, wird der 0-Abstand genommen.
Ausnahme: im gegenwärtigen Archiv TAGGED muss an dieser Stelle der Abstand -1 stehen, weil infolge einer veralteten Kodierung das Komma als selbstständiges Textwort getrennt vom Vorwort kodiert wurde (Beispiel: "... wetten , dass ...").
ABSTAND(Q3,%+w1:1,MORPH(PRN rel)) |
Von den in Q3
gefundenen Kommata werden nun diejenigen
ausgeschlossen (%
), auf die unmittelbar
(+w1:1
) ein Relativpronomen folgt.
Der Minimalwortabstand 1 (die 1 vor dem :) ist notwendig, um den 0-Wortabstand
auszuschließen, denn +w1
bedeutet +w0:1
und schließt den 0-Abstand ein.
Bemerkungen
Will man in Q2 die Kommata ausschließen, bei denen in einem linken Kontext von 3 Wörtern
ein Verb vorkommt, muss der Abstand so lauten:
%-w2
, d.h. %-w0:2
,
d.h. die Wörter an den Positionen 0, 1 und 2 im linken Kontext,
wobei dann tatsächlich
der maximale Abstand 2 das dritte Wort links vom Komma bezeichnet.
Muster einer Suchanfrage für die indirekte Rede
In den IDS-Korpora können Textstellen mit indirekter Rede nicht direkt abgefragt werden, da diese nicht annotiert ist. Vorgeschlagen wird hier ein Suchanfragemuster, bei dem ein Typus von indirekter Rede approximativ recherchiert werden kann. Dabei kann nicht ausgeschlossen werden, dass falsche Belege gefunden und korrekte Belege nicht gefunden werden.
Problemstellung
Es werden Belege von indirekter Rede gesucht, die folgendes Muster aufweisen:
"sagte" + Komma + "dass" + einige Wörter frei +
("habe" oder "hätte" oder "sei" oder "ist" oder "wäre")
wobei wir zwischen "dass" und dem Verb Satzzeichen wie Komma, Doppelpunkt, etc.
ausschließen wollen.
Für ein besseres Verständnis wird die gesamte Suchanfrage in Teilsuchanfragen (Q1
bis Q5
),
die nacheinander ausgeführt werden können, aufgebaut.
Beispiel eines gewünschten Beleges
Eugster sagte, dass die Gemeinde keinen Zeitdruck habe.
Aufbau der Suchanfrage
Q1 = ABSTAND('sagte',w0,',') |
Q2 = ABSTAND(Q1,+w1,'dass') |
Mit Q2
erhalten wir die Einleitung der indirekten Rede.
Q3 = RECHTS(Q2) |
Mit Q3
behalten wir das Wort "dass" (das am weitesten
rechts in Q2
auftretende Wort) für die folgenden
Recherchen. Dies ist wichtig für Q5
.
Q4 = ABSTAND(Q3,+s0 min,'habe hätte sei ist wäre') |
Mit Q4
schränken wir nun die Belege auf
Wortfolgen innerhalb eines Satzes, in denen links "dass" steht,
rechts eines der Wörter "habe", "hätte", etc...
Im Abstandsoperator wird außerdem das Schlüsselwort min
spezifiziert. Das ist wichtig, damit ein Fall wie F1 als mehrere
unabhängige Belege behandelt wird:
F1 = " ... sagte, dass er viele davon schon habe und, da sei er sich sicher, keines jemals gelesen habe."
Für F1 erzeugt Q4
durch Anwendung des Schlüsselwortes min
drei unabhängige Belege:
B1 = " ... sagte, dass er viele davon schon
habe ...."
B2 = " ... sagte, dass er viele davon schon habe und,
da sei ...."
B3 = " ... sagte, dass er viele davon schon habe und,
da sei er sich sicher, keines jemals gelesen habe."
Jeder dieser Belege wird einzeln in Q5
ausgewertet, wobei nur
Beleg B1 die Bedingung erfüllt.
Ohne Anwendung von min würde Q4
statt drei Belegen nur einen einzigen Beleg weiterreichen,
welcher von Q5
als ganzes herausgefiltert werden würde. Im Endeffekt hätten
wir einen korrekten Beleg ausgeschlossen.
Q5 = ABSTAND(Q4 ,%w0,',')
|
Mit Q5
werden nun alle bisherigen Belege ausgeschlossen, bei denen ein Komma
zwischen dass und dem Verb vorkommt (einschließlich dass und Verb).
Das Komma kann an dieser Stelle ersetzt werden durch eine Liste von Satzzeichen,
die man ausschließen möchte. Der Satzendepunkt braucht nicht in der Liste aufgenommen zu werden,
da in Q4
gewährleistet wird, dass alle Wörter eines Beleges innerhalb
eines Satzes gefunden werden.
Die gesamte Suchanfrage Q5
lautet also:
Q5 = ABSTAND(ABSTAND(RECHTS(ABSTAND(ABSTAND('sagte',w0,','),+w1:1,'dass')),+s0 min,'habe hätte sei'),%w0,',') |
Einschränkung
Diese Suchanfrage hat eine Ungenauigkeit: Ein Beleg
wird in Q5
auch dann ausgeschlossen, wenn ein Komma genau hinter dem Verb ("hätte,", "habe,", etc.)
auftritt. Um dies zu verhindern, müssen wir auf eine Erweiterung der Suchmaschine warten.
Muster einer Suchanfrage für die indirekte Rede mit "dass + soll"
Problemstellung
Gewünscht sind Belege von indirekter Rede nach folgendem Muster:
Verb1 + , + dass ... + Verb2 + haben + soll
Dabei könnte Verb1
auch durch eine Liste von
passenden Verben wie behaupten, sagen, etc. ersetzt werden.
Die Suchanfrage muss so formuliert werden, dass alle Wörter im selben Satz
gesucht werden. Der Abstand zwischen der Konjunktion und Verb2
kann beliebig groß sein.
Beispiel eines gewünschten Belegs
Die Zeitschrift hatte fälschlicherweise behauptet, dass sich die Prinzessin ihren Adelstitel unredlich erworben haben soll.
Formulierung
Q1 = ABSTAND(MORPH(VRB),'+w0:1',',') |
Q1
deckt der Hauptsatz ab. Auf das Verb soll
unmittelbar danach oder in einem Abstand von einem Wort
(+w0:1
) ein Komma folgen.
Q2 = ABSTAND('dass daß','+s0',ABSTAND(MORPH(VRB),'+w1:1',ABSTAND('haben','+w1','soll sollen'))) |
Q2
deckt den Nebensatz mit der indirekten Rede ab:
die Konjunktion dass wird in der neuen und alten Rechtschreibung
angegeben. Im selben Satz (+s0
) folgt die Verbgruppe mit
einem freien Verb gefolgt von haben und soll oder sollen,
den beiden möglichen Deklinationen von sollen an dieser Stelle.
Der Abstand +w1:1
, d.h. mindestens und höchstens ein Wort
Abstand, zwischen dem Verb und haben ist wichtig, weil haben
selber auch ein Verb ist.
Q3 = ABSTAND(Q1,'+w1:1',Q2) |
Q3
verknüpft Haupt- und Nebensatz so, dass die
Konjunktion dass unmittelbar auf das Komma folgt
(+w1:1
).
Muster einer Suchanfrage für "elliptische Sätze"
Problemstellung 1
Gewünscht sind Belege von elliptischen Sätzen ohne präpositionale Ergänzung. Als Beispiel suchen wir nach "ich freue mich.".
Ansatz: elliptischer Satz = ganzer Satz. D.h.:
ich (= Satzanfang) freue mich (= Satzende)
Beispiel eines gewünschten Belegs
Er stempelt und winkt mich durch. Ich freue mich. Aber Kahn tut auch mir leid.
Formulierung
Q1 = (ich /w0 <sa>) /+w1 freue /+w1 (mich /w0 <se>) |
Q1
setzt die beiden Markierungen <sa> und <se> ein,
die für das 1. bzw. letzte Wort eines Satzes stehen. Dadurch werden alle ich
ausgewählt, die am Satzanfang stehen und alle mich, die am Satzende stehen.
Eine ähnliche Lösung ist die folgende:
Q2 = ich:sa /+w1 freue /+w1 mich:se |
Q2
setzt direkt die Bedingung Satzanfang (:sa) und
Satzende (:se) ans Ende der gesuchten Wörter ich und mich ein.
Unterschiede zwischen beiden Suchanfragemuster
Beide Suchanfragemuster unterscheiden sich wie folgt:
Suchanfrage | Anz. Treffer | Ausführungszeit | Satzgrenzen |
---|---|---|---|
Q1 | 118 | langsam | die Markierung <s> ... </s> |
Q2 | 220 | schnell | die Markierung <s> ... </s> der Doppelpunkt |
Suchanfrage Q2 enthält die Belege von Q1 und zusätzlich Belege, bei denen der Tokenizer von COSMAS II bei einem Doppelpunkt, einem Ausrufezeichen, etc. eine zusätzliche Satzgrenze (ungeachtet des Inhalts) eingefügt hat.
Beispiele von Belegen, die nur von Q2 gefunden werden
Erste Reaktion: "Ich freue mich".
"Ich freue mich": ein Stück Nichtvergessensein.
«Ich freue mich!», ruft Schöneberger schon, als sie noch hinterm Vorhang steht...
Problemstellung 2
Die obige Problembestellung soll so erweitert werden, dass am Satzende ein freies Wort zugelassen wird.
Formulierung
Q3 = ich:sa /+w1 freue /+w1 (mich /w1,s0 <se>) |
Q3
ist eine Mischlösung aus Q1 und Q2.
Um sicher zu sein, dass zwischen mich und dem letzten Wort des Satzes nicht
noch eine Satzgrenze verläuft, wird /+w1,s0 benutzt.
Beispiel eines Belegs für Q3
"Ich freue mich mordsmäßig.
Suchanfragen in Überschriften
Verfügbare Überschriften in den IDS-Korpora
In den CES-kodierten IDS-Korpora sind folgenden Arten von Überschriften kodiert, die in Suchanfragen benutzt werden können. Wir geben hier zur Veranschaulichung eine Übersicht mit Zahlen für das Archiv W - Archiv der geschriebenen Korpora mit einem Umfang von 10 Mio. Texten, Stand Juli 2009, wieder:
Art der Überschrift | Kodierung | Anzahl |
---|---|---|
Dachzeile | <HEAD TYPE=TOP> | 2.196.162 |
Hauptüberschrift | <HEAD TYPE=MAIN> | 10,655.085 |
Unterüberschrift | <HEAD TYPE=SUB> | 3.602.567 |
Zwischenüberschrift | <HEAD TYPE=CROSS> | 4.841.568 |
Restkategorie | <HEAD TYPE=UNSPECIFIED> | 367.687 |
alle Überschriften | <HEAD> | 21.663.069 |
Die Großschreibung bei der Kodierung ist zu beachten.
Textbeispiel mit Textauszeichnungen für Überschriften
<div>
<head type="top">
<s>Innenstadt: Ehren- und Offiziersabend des Mannheimer
Traditionscorps mit Büttenreden und Gardetanz</s>
</head>
<head type="main">
<s>Führungswechsel kündigt sich an</s>
</head>
<p>Seit 42 Jahren ist ...</p>
</div>
Beispiele
Beispiel 1: Spezifikation von Überschriften in Suchanfragen
ELEM(HEAD,ATT(TYPE,=,TOP)) |
Erfragen der Dachzeilen in den Zeitungstexten der IDS-Korpora gemäß CES-Kodierung. Siehe Textbeispiel oben.
Über die Werte MAIN, SUB und CROSS lassen sich analog die Haupt-, Unter- und Zwischenüberschriften erfragen.
ELEM(HEAD,ATT(TYPE,=,'TOP MAIN')) |
In dieser Anfrage werden Dach- oder Hauptüberschriften erfragt.
ELEM(HEAD,ATT(TYPE,<>,'SUB CROSS UNSPECIFIED')) |
In dieser Anfrage werden alle Überschriften außer den Unter-, Zwischen- und den unspezifizierten Überschriften erfragt. Gemäß unserer Übersichtstabelle müssten dabei wieder die Dach- und Hauptüberschriften herauskommen.
Beispiel 2: Suchen von Suchbegriffen innerhalb von Überschriften
IN(wegen,'',ELEM(HEAD,ATT(TYPE,=,TOP)) |
Damit wird wegen an einer beliebigen Stelle innerhalb einer Dachüberschrift gesucht.
Beispiel 3: Suchen von Suchbegriffen an einer bestimmten Position von Überschriften
IN(wegen,'L',ELEM(HEAD,ATT(TYPE,=,TOP)) |
Damit wird wegen am Anfang einer Dachüberschrift
(Wert L im Argument <I>
von Operator IN
) gesucht.
Analog lassen sich Suchbegriffe am Ende (Wert R) oder streng innerhalb (weder am Anfang noch am Ende, Wert N) von Überschriften erfragen.
IN(Terror,'F',ELEM(HEAD,ATT(TYPE,=,TOP)) |
Mit dem Wert F wird ein Spezialfall erfragt, da durch diese Option Anfang und Ende der Überschrift mit dem Suchbegriff Terror zusammenfallen müssen. Die Ergebnisse sind 1-Wort-Dachüberschriften, die nur aus dem gesuchten Wort bestehen.
- Die Optionswerte L, R, F und N schließen sich gegenseitig aus. Ein Suchbegriff, der mit F gefunden wird, wird mit L nicht gefunden und umgekehrt.
Suchanfragen, die Überschriften ausschließen
Beispiele
Beispiel 1: Ausschließen von Überschriften aus den Ergebnissen
IN(wegen,'%',ELEM(HEAD)) |
Mit der Ausschließungsoption im Argument
<I> des Operators
IN
lassen sich wie in diesem Fall alle Überschriften aus den Ergebnissen
des Suchbegriffes wegen ausschließen.
Suchanfragen in mehreren Textbereichen
Beispiel 1: Suchanfragen in mehreren Textbereichen
ODER(ELEM(HEAD,ATT(TYPE,=,TOP)),ELEM(BYLINE)) |
Erfragen von Dachzeilen und Byline-Zeilen.
Was steht an den Satzenden eines Ergebnisses?
Wir gehen beispielsweise von einer Abstandsuche innerhalb eines Satzes aus und wollen
erfragen, was am Ende solcher Sätze steht. Wir suchen z.B. wie
in Q1
nach den Begriffen
Polizei und Demonstration:
Q1 = ABSTAND(LEM(Polizei),'s0',LEM(Demonstration)) |
Um das Ergebnis von Q1
auf Satzebene auswerten zu können,
muss man den Ergebnisbereich von Q1
auf den ganzen Satz ausdehnen.
Beispiel eines Ergebnisbereichs von Q1
:
»... Polizei ... Demonstration ...«
Nun folgt die Bereichserweiterung mit dem Operator
UEBERLAPPT
:
Q2 = UEBERLAPPT(Q1,'',ELEM(S)) |
Q1
und kombiniert
sie mit den Sätzen des Archivs.
Dort wo sich ein Treffer von Q1
und ein Satz überlappen,
wird die Summe ihrer Bereiche übernommen.
Da der Ergebnisbereich von Q1
kleiner ist als der
eines Satzes, geht er in den Satzbereich auf.
Beispiel eines Ergebnisbereichs von Q2
:
»Draußen kann die Polizei die unangemeldete Demonstration auflösen.«
Da der Ergebnisbereich von Q1
auf den ganzen Satz erweitert wurde, ist es nun möglich, mit z.B. Operator
RECHTS
die Satzenden von Q1
zu betrachten
und sogar im KWIC alphabetisch sortieren zu lassen.
Q3 = RECHTS(Q2) |
Das Ergebnis von Q3
sind die Satzenden der Sätze, in denen Polizei und Demonstration
vorkommt. Für obiges Beispiel wäre dies:
»... auflösen.«
Desgleichen kann mit Operator
LINKS
erreicht werden, um den Satzanfang einer Suchanfrage zu betrachten.
Wie formuliere ich eine Überlappung von Textbereichen?
Wir wollen zu diesem Thema präsentieren, wie man mit den Operatoren OV und ABSTAND(...,'w0',...) Überlappungen von Textbereichen formulieren kann und welche Unterschiede zwischen diesen Operatoren bestehen.
1. Überlappungen mit OV und ALL
Ein Beispiel: wir möchten eine Sequenz von 2 Verben und eine Sequenz von 2 Nomen untersuchen, wenn sie sich überlappen. Jede der beiden Sequenzen läßt einen Abstand von mehreren Wörtern zwischen den Verben bzw. den Nomen zu. Ein erster Ansatz könnte wie folgt aussehen:
Q1 = OV(ABSTABD(MORPH(V),'+w1:3,s0',MORPH(V)), '', ABSTAND(MORPH(N),'+w1:3,s0', MORPH(N))) |
Wir stossen auf ein erstes Problem: Da ein Verb kein Nomen ist und umgekehrt, haben die beiden zu kombinierenden Sequenzen (in der Folge auch Bereiche genannt) kein gemeinsames Wort. Da aber OV so definiert ist, dass er eine Überlappung nur über gemeinsame Textstellen überprüft, liefert Q1 keine Treffer, so auch den folgenden erhofften Textausschnitt nicht:
»Der vom Helmstedter/N Lauftreff/N veranstaltete/V Silvesterlauf/N erfreut/V sich weiter großer Beliebtheit.«1
Um OV in diesem Fall einsetzen zu können, muss die Suchanfrage wie in Q2 durch Hinzunahme des Operators ALL formuliert werden:
Q2 = OV(ALL(ABSTABD(MORPH(V),'+w1:3,s0',MORPH(V))), '', ALL(ABSTAND(MORPH(N),'+w1:3,s0', MORPH(N)))) |
Durch den Einsatz von ALL erhält OV die Textbereiche »Helmstedter Laufsteg veranstaltet Silvesterlauf« und »veranstaltete Silversterlauf erfreut« und erkennt, dass beide Sequenzen sich überlappen. Nun erhält man den gewünschten Treffer:
»Der vom Helmstedter/N Lauftreff/N veranstaltete/V Silvesterlauf/N erfreut/V sich weiter großer Beliebtheit.«1
Der Nachteil mit dem Operator ALL besteht darin, dass nicht nur die ursprünglich gesuchten Verben und Nomen hervorgehoben werden, sondern alle Wörter innerhalb der beiden Sequenzen. Im nächsten Textauszug sind die unerwünscht hervorgehobenen Wörter "vorher" und "damit" mit der Farbe ihrer zugehörigen Sequenz ebenfalls markiert:
»Schon stunden/N vorher hatten/V Arbeiter/V damit begonnen/V, in der Donaulände, ... .«1
Im nächsten Abschnitt zeigen wird, wie der Operator ABSTAND(..,'w0',...) dieses Problem löst.
2. Überlappungen mit ABSTAND(...,'w0',...)
Eine Alternative zu OV und #AlL bietet der Null-Wortabstand ABSTAND(...,'w0',...), der einfacher zu handhaben ist und Überlappungen von Textbereichen erkennt, die keine gemeinsamen Wörter haben.
Q3 = ABSTAND(ABSTAND(MORPH(V),'+w1:3,s0',MORPH(V)),'w0',ABSTAND(MORPH(N),'+w1:3,s0',MORPH(N))) |
2.a Hervorheben der gesuchten Wörter
Hinzu kommt, dass COSMAS II nun in der Lage, nur die gesuchten bzw. gefundenen Wörter (die Verben und Nomen in unserem Beispiel) anzuzeigen:
»Schon stunden/N vorher hatten/V Arbeiter/V damit begonnen/V, in der Donaulände, ... .«1
2.b Minimalgruppen
Suchanfrage Q3 liefert korrekterweise auch solche Treffer, die auf den ersten Blick falsch zu sein scheinen:
»Nun ja, und ich sollte/V das Tigerfell/N geben/V, sollte/V Noahs/N Tritte/N kassieren/V und gleich zu Beginn des neuen Jahres am Boden liegen... .«
Ein solcher Treffer entsteht dann, wenn mehrere Sequenzen von Verben und Nomen sich gemäß der Suchanfrage Q3 kombinieren lassen. COSMAS II fasst sie dann gemäß der Default-Einstellung maximale Gruppenbildung korrekterweise zu 1 Treffer zusammen. In unserem Fall kommt ein solcher Treffer durch das Zusammenfassen der folgenden Sequenzen zusammen:
Sequenz »sollte das Tigerfell geben« überlappt »Tigerfell geben, sollte Noahs« überlappt »sollte Noahs Tritte kassieren« überlappt »Noahs Tritte«.
Will man dies verhindern, muss man in Q3 die minimale Gruppenbildung mittels »,min« angeben, und zwar für alle 3 Abstandsoperatoren:
Q4 = ABSTAND(ABSTAND(MORPH(V),'+w1:3,s0,min',MORPH(V)),'w0,min',ABSTAND(MORPH(N),'+w1:3,s0,min',MORPH(N))) |
Suchanfrage Q4 erzeugt nun mehr Treffer bzw. KWIC-Zeilen, weil die gefundenen Sequenzen nicht mehr maximal zusammengefasst werden. Unser obiges Beispiel zerfällt in 4 Treffer:
»Nun ja, und ich sollte/V das Tigerfell/N geben/V, sollte Noahs/N Tritte kassieren und gleich zu Beginn ... .«
»Nun ja, und ich sollte das Tigerfell/N geben/V, sollte/V Noahs/N Tritte kassieren und gleich zu Beginn ... .«
»Nun ja, und ich sollte das Tigerfell/N geben, sollte/V Noahs/N Tritte kassieren/V und gleich zu Beginn ... .«
»Nun ja, und ich sollte das Tigerfell geben, sollte/V Noahs/N Tritte/N kassieren/V und gleich zu Beginn ... .«
1: Die Unterscheidung der beiden Sequenzen mit blau und rot, die hier zur besseren Veranschaulichung eingesetzt wird, kann von COSMAS II selber nicht vorgenommen werden.
Die adjektivische Konstruktion »nicht ... un-ADJ«
Das vorliegende Beispiel zeigt zugleich Anwendungsfälle der folgenden Ergebnispräsentationen:
- Ansicht nach Wort-Types
- Ansicht nach Mehrwortspanne
Die grundlegende Suchanfrage
Wir interessieren uns für Adjektive mit Präfix un-, die mit dem Adverb nicht gebildet werden, also z.B. nicht von ungefährt, nicht eindeutig, etc.
Die Suchanfrage wird in einem morpho-syntaktisch annotierten Archiv wie TAGGED-C durchgeführt. Zwischen nicht und dem Adjektiv wollen wir maximal 3 Wörter zulassen. Die Suchanfrage läßt sich wie folgt formulieren, wobei "nicht" zwischen Hochkommata geschrieben werden muss, wenn es als Suchbegriff und nicht als Operator verstanden werden soll:
"nicht" /+w1:4,s0 (MORPH(A) /w0 &un-) |
Die Grundform aller Wörter mit Präfix un wird mit &un- formuliert, außerdem muss die Lemmatisierungsoption sonstige Wortbildungsformen eingeschaltet werden.
Der Ausdruck (MORPH(A) /w0 &un-)
schließlich findet alle Adjektive mit
Präfix un.
Das Ergebnis zählt 103.000 adjektivische Konstruktionen (KWIC-Zeillen), die im folgenden KWIC auszugsweise dargestellt werden:
Abb. 1: KWIC-Ausschnitt für Suchanfrage "nicht" /+w1:4,s0 (MORPH(A) /w0 &un-) |
Die Liste der gesuchten un-Adjektive
Möchte man nun die Adjektive sortieren und nach Wort-Types zusammenfassen, so
geht man wie folgt vor: Die obige Suchanfrage wird so erweitert, dass die Treffer im KWIC
nur noch aus den Adjektiv bestehen. Da das Adjektiv in den gefundenen Konstruktionen
immer das letzte Trefferwort ist, erreichen wir dies, in dem wir den Operator
#END
(bzw. #RECHTS
) auf die obige Suchanfrage ansetzen
mit der Auswirkung, dass die Referenz auf das letzte Wort verschoben wird:
#END( "nicht" /+w1:4,s0 (MORPH(A) /w0 &un-) ) |
Nun liefert das neue KWIC nur noch die gefundenen Adjektive auf:
Abb 2.: KWIC-Ausschnitt für Suchanfrage "#END(nicht" /+w1:4,s0 (MORPH(A) /w0 &un-)) |
Die Ansicht nach Wort-Types
Nun können mittels der Ansicht nach Wort-Types die Adjektive zusammengefasst und nach ihrer relativen Häufigkeit sortiert werden. In der folgenden Abbildung sind die häufigsten zu sehen:
Abb 3.: Ansicht nach Wort-Types für "#END(nicht" /+w1:4,s0 (MORPH(A) /w0 &un-)) |
Die Wörter innerhalb von »nicht ... un-ADJ«
Als nächstes könnte man ähnlich verfahren, um sich die häufigsten Wörter zwischen nicht und den Adjektiven auf un- anzeigen zu lassen. Die obige Suchanfrage wird zu diesem Zweck wie folgt angepasst:
#NHIT( "nicht" /+w2:4,s0 (MORPH(A) /w0 &un-) ) |
In diesem Fall wird der Operator #NHIT
eingesetzt, weil er die
Referenz auf die Wörter zwischen den Treffern setzt, die in der Wort-Type-Ansicht
zusammengefasst werden sollen. Außerdem wird der minimale Abstand zwischen
nicht und dem Adjektiv auf 2 gesetzt, um die Fälle auszuschliessen, bei denen
das Ajektiv unmittelbar auf nicht folgt.
Von den obigen 103.000 Treffer werden durch die neue Suchanfrage 31.474 KWIC-Zeilen ausgewählt. Diese wiederrum lassen sich in der Ansicht nach Wort-Types auf 10.413 Einzelwörter oder Wortkombinationen zusammenfassen. Die häufigsten davon werden in der nächsten Abbildung gezeigt:
Abb 4.: Ansicht nach Wort-Types für die häufigsten Wörter zwischen 'nicht'
und dem Adjektiv, |
Aus der Tabelle kann man somit die in den IDS-Korpora häufigsten Einzelwörter und Wortkombinationen, die in der adjektivischen Konstruktionen nicht ... un-ADJ auftreten, ablesen. Zum Beispiel:
nicht ganz un-ADJ | 11,8% | |
nicht mehr un-ADJ | 5,6% | |
... | ... | |
nicht mehr so un-ADJ | 0,689% |
Die Konstruktion »nicht … un-ADJ« für ausgewählte Adjektive
Interessiert man sich für die adjektivischen Konstruktion eines bestimmten Adjektivs, z.B. für nicht … ...unbedingt, so kann man mit folgender Suchanfrage arbeiten:
#NHIT( "nicht" /+w4,s0 (MORPH(A) /w0 unbedingt) ) |
Die Ansicht nach Wort-Types, angewendet auf das auf diese Weise erzielte Ergebnis, liefert die Einzelwörter und Wortgruppen, die in dieser Konstruktion auftreten.
Die Größe der Konstruktion »nicht … un-ADJ« für ausgewählte Adjektive
Bleiben wir bei unserem Adjektiv unbedingt. Wir möchten wissen, wie groß die Konstruktion nicht … unbedingt in den IDS-Korpora ist. Dazu formulieren wir folgende Suchanfrage:
"nicht" /+w4,s0 (MORPH(A) /w0 unbedingt) ) |
Mittels der Ergebnisauswertung nach Mehrwortspannen erfahren wir folgendes:
Abb 5.: Ansicht nach Mehrwortspannen für »nicht … unbedingt« |
Die berechnete Größe umfasst die beiden Treffer nicht und unbedingt und allfällige Wörter dazwischen. Mit über 95% der Fälle ist somit nicht unbedingt am häufigsten anzutreffen.
Formulieren einer Wortklasse
Wortklassen werden mit dem Operator
MORPH
ausgedrückt.
Zur Unterstützung der Eingabe aller möglichen Kombinationen von Wortklassen und klassenspezifischen
Merkmalen öffnet mit einem Doppelklick auf den MORPH-Operator der
MORPH-Assistent.
Verknüpfen eines Wortes mit einer Wortklasse
Um nach einer Wortform mit zugehöriger Wortklasse suchen zu können, kann man wahlweise die gesuchte Wortform mit dem Abstands- oder dem IN-Operator mit der angegebenen Wortklassen verknüpfen:
Beispiele
Beispiel 1: Verknüpfen mit dem 0-Wortabstand
Q1a = ABSTAND(LEM(Würde),'w0',MORPH(NOU)) |
Suchanfrage Q1a
liefert alle Flexionsformen von Würde zurück, die als Nomen
annotiert sind.
Beispiel 2: Verknüpfen mit dem IN-Operator
Q1b = IN(LEM(Würde),'FE',MORPH(NOU)) |
Q1b
liefert mit Hilfe des Operators IN dasselbe Resultat zurück. Dabei kann die IN-Option
'FE' oder leer sein.
Beispiel 3: Ausschließen einer Wortklasse
Q2a = IN(LEM(sein),'%',MORPH(NOU))) |
Umgekehrt, wie in diesem Beispiel mit Hilfe des IN-Operators dargestellt, läßt sich mit der ausschließenden Option % der beiden obigen Operatoren eine Wortklasse für eine gewünschte Wortform ausschließen.
Q2b = IN(LEM(sein),'%',ODER(MORPH(NOU),MORPH(VRB))) |
Q2b
führt das gleiche wie Q2a
für zwei Wortklassen vor.
Suchen nach einer Sequenz von Wortklassen
Mit Hilfe des Wort-, Satz und Absatzoperators können beliebige Sequenzen von Wortklassen und Wortformen miteinander gebildet werden. Das Formulieren von Sequenzen mit Hilfe von regulären Ausdrücken ist hingegen nicht möglich.
Beispiele
Beispiel 1: Sequenz von aufeinanderfolgenden Wortklassen
Q1 = ABSTAND(MORPH(NOU),'+w1:1',ABSTAND(MORPH(NOU),'+w1:1',MORPH(NOU))) |
Q1
sucht nach einer Sequenz von drei
aufeinanderfolgenden Nomen. Es ist hierbei besonders darauf zu achten,
dass der 1-Wort-Abtand mit der Angabe +w1:1
und nicht mit +w1
ausgedrückt wird, weil in letzterem
Fall auch alle Treffer bestehend aus ein oder zwei aufeinanderfolgenden
Nomen die Suchanfrage erfüllen.
Beispiel 2: Sequenz von aufeinanderfolgenden Wortformen und -klassen
Q2 = ABSTAND(MORPH(VRB),'+w1:1',ABSTAND('haben','+w1:1','soll sollen')) |
Q2
sucht nach verbalen Konstruktionen vom Typ: Verb gefolgt von haben gefolgt
von soll oder sollen.
Beispiel 3: Lose Sequenz von Wortformen und -klassen innerhalb eines Satzes
Für ein gutes Beispiel einer Sequenz von Verben in einem mit dass eingeleiteten Nebensatz, siehe folgende Suchanfragemuster.
Beispiel 4: Sequenz mit Ausschließung von Wortklassen
Q3 = ABSTAND(ABSTAND(MORPH(DET),'+w1:1,s0',MORPH(-DET -ADV -A)),'+w1:1,s0',MORPH(N)) |
Gesucht wird eine Sequenz von einem Determinanten und einem Nomen, zwischen denen ein Wort steht, das weder DET noch A noch ADV sein darf.