Syntax der Zeileneingabe → Suchoperatoren → Listenoptionen → Textpositionen |
Angabe der Position von Treffern im Text
Für die Suche nach Wörtern, Annotationen und komplexeren Suchanfragen kann als zusätzliche Bedingung ihre Position im Text bestimmt werden. Spezifizierbar sind die in der nachfolgenden Tabelle aufgelisteten Bezeichner sowie deren Negation und Kombination.
Bei Annotationen und Multiwort-Treffern können außerdem ihre Anfangs- und Endposition getrennt angesprochen werden. Bei Wortformen fallen Anfangs- und Endposition zusammen.
Die Angaben zu den Positionen der Treffer werden erst während der Suche überprüft, also nachdem die Wortformlisten erzeugt und angezeigt werden; die in den Listen angezeigten Wortformen sind nicht in Bezug auf ihre Position in den Texten gefiltert.
Spezifizierbare Textpositionen
Bezeichner | Textposition | bezieht sich auf... | Beispiel |
sa und -sa | Satzanfang | das erste Wort eines Satzes | &Heim:sa |
se und -se | Satzende | das letzte Wort eines Satzes | &Heim:se |
pa und -pa | Absatzanfang | das erste Wort eines Absatzes, impliziert sa | &Heim:pa |
pe und -pe | Absatzende | das letzte Wort eines Absatzes, impliziert se | &Heim:pe |
ta und -ta | Textanfang | das erste Wort eines Textes, impliziert sa und pa | &Heim:ta |
te und -te | Textende | das letzte Wort eines Textes, impliziert se und pe | &Heim:te |
Textpositionen können miteinander kombiniert und wahlweise negiert werden. Bei Annotationen und komplexen Suchanfragen, die einen Mehrwortbereich ergeben, können außerdem die Textpositionen von Anfang und Ende des Bereichs abgefragt werden.
Bedingungen über Textpositionen bei Wortformen
(-)pos1,(-)pos2,(-)pos3 etc.
Beispiele
&Abgrund:se,-sa,-pe |
Stellvertretend für alle Wortformsuchen werden hier die Komposita von Abgrund
am: Satzende und nicht
am Satzanfang und nicht
am Absatzende
gesucht.
#BED(#REG(^Abgrund[a-z]*keit), :se,-sa,-pe |
Damit auf reguläre Ausdrücke Textpositionsbedingungen gestellt werden können, muss ausnahmsweise für eine Wortformsuche der #BED-Operator verwendet werden.
Nichtrealisierte Formulierungen
#REG(^Abgrund[a-z]*keit:se,-sa,-pe) |
#REG(^Abgrund[a-z]*keit):se,-sa,-pe |
Diese beiden Fälle sind nicht realisiert, d.h. man kann Textpositionsbedingungen nicht direkt an den regulären Ausdruck oder an den #BED-Operator anhängen.
Bedingungen über Textpositionen bei Multiwort-Ausdrücken
Multiwort-Ausdrücke haben im Gegensatz zu Einzelwortabfragen eine Ausdehnung von mehreren Wörtern und besitzen deshalb auch ein Anfang und ein Ende, weshalb man in manchen Situationen getrennte Bedingungen an die beiden Enden stellen möchte. Dies ist auch mit Hilfe des ':'-Trennzeichens möglich.
Formulieren einer oder mehrerer Bedingung(en) über die Textposition am Anfang eines Multiwort-Textbereichs (ohne '/'):
(-)pos1,(-)pos2,(-)pos3 etc.
Formulieren einer oder mehrerer Bedingung(en) über die Textposition am Ende eines Multiwort-Textbereichs (nach dem '/'):
/(-)pos1,(-)pos2,(-)pos3 etc.
Formulieren einer oder mehrerer Bedingung(en) über die Textposition am Anfang und am Ende eines Multiwort-Textbereichs:
(-)pos1,(-)pos2,(-)pos3 etc./(-)pos1,(-)pos2,(-)pos3 etc.
In der Regel müssen Textpositionen für Multiwort-Ausdrücke mittels des #BED-Operators formuliert werden. Eine Ausnahme bildet der #ELEM-Operator, bei dem die Textpositionen direkt an den Elementnamen angehängt werden können.
Beispiele
Die Sequenz ART+N wird am Satzanfang beginnend gesucht:
#BED(MORPH(ART) /w1:2,s0 MORPH(N)), :sa) |
Die Sequenz ART+N wird am Satzende endend gesucht:
#BED(MORPH(ART) /w1:2,s0 MORPH(N)), /:se) |
Die Sequenz ART+N wird innerhalb eines Satz gesucht, d.h. sie soll weder am Satzanfang beginnen noch am Satzende enden:
#BED(MORPH(ART) /w1:2,s0 MORPH(N)), :-sa/-se) |
Beim Annotationsoperator #ELEM können im Gegensatz dazu die Textpositionen direkt an den Elementnamen angehängt werden.
#ELEM(W:-sa,-se) |
Im nächsten Beispiel wird nach Überschriften gesucht, die nicht auf einer Absatzgrenze stehen:
#ELEM(HEAD:-pa/-pe type=sub) |
In den restlichen Abschnitten auf dieser Seite werden für Interessierte einige technische Aspekte erläutert.
Wie ermittelt COSMAS II die Textpositionen
Die bekannten SGML bzw. XML-Textauszeichnungen für Sätze (<s> ... </s>), Absätze (<p> ... </p>) und den Text(körper) (<text> ... </text>) dienen als Hauptquelle für die Extraktion dieser Informationen aus den Korpora. Da COSMAS II eine Satzsegmentierung auch dann anhand der Satzzeichen .:;!? etc. vornimmt, wenn keine <s> ... </s> vorhanden sind, beliefern diese Satzzeichen das System ebenfalls mit den Satzgrenzen SA und SE.
- Dies hat zur Folge, dass in COSMAS II die Anzahl der Sätze höher ist als mit dem Operator ELEM(S), der nach der Satzmarkierung <s> ... </s> sucht, ermittelt wird.
Vorteile der direkten Eingabe von Textpositionen in Suchanfragen
Das Filtern von (Zwischen-)Ergebnissen mittels Textpositionen kann bzw. konnte bisher auch mit dem allgemeinen Operator ELEM ausgeführt werden. Die Vorteile der direkten Nutzung der hier beschriebenen Textpositionen gegenüber ELEM sind die folgenden:
Geschwindigkeit:
Die Ausführungszeit einer Suchanfrage wird durch das Filtern mittels Textpositionen unwesentlich verlangsamt, da die Textpositionen von Treffern direkt abgefragt werden können. In manchen Fällen wird die Ausführungszeit sogar leicht beschleunigt, da die unerwünschten Suchbegriffe bzw. Annotation sehr früh aus dem Suchprozess weggefiltert werden.
Bei der Verwendung von ELEM wird hingegen die Ausführungszeit stark verlängert, da zusätzliche Operatoren eingesetzt werden.Kompaktheit der formulierten Suchanfrage:
Bei der direkten Formulierung mit Textpositionen wird die Suchanfrage kaum länger und bleibt gut lesbar, siehe Bsp. 6 unten. Dies ist dann erst recht der Fall, wenn sogar auf den Operator BED verzichtet werden kann.
Die Verwendung von ELEM hingegen verlängert die formulierte Suchanfrage und macht sie weniger gut lesbar, siehe Bsp. 7.größere Anzahl Treffer:
Wie anfangs dieser Seite erwähnt, findet eine Suchanfrage mittels direkter Textpositionen mehr Wörter am Satzanfang und -ende, weil COSMAS II innerhalb der <s>...</s> für alle Satzzeichen überprüft, ob eine Satzgrenze gesetzt werden kann.
ELEM hingegen orientiert sich einzig an den Satzmarkierungen, um Satzgrenzen zu finden.
Beispiel zum Vergleich
Folgende Suchanfrage, die eine Wortsequenz am Satzende sucht, soll einmal mit der direkten Angabe von Textpositionen und einmal mit der Annotation <se> (für Satzende) zum Vergleich formuliert und gesucht werden:
Formulierung 1: Angabe des Satzendes mit der Annotation <se>; Formulierung intuitiv klar; Ausführungszeit der Suche deutlich schlechter als bei den anderen, da alle Satzenden geladen und mit der Wortsequenz kombiniert werden; Vorkommnisse von Krieg, die nicht am Satzende stehen, werden unnötig geladen und kombiniert. Beispiel:
Gott /s0 (&Krieg /w0 <se>) |
Formulierung 2: Bedingung der Textposition über den Textbereich Gott … Krieg: Ebenfalls deutlich langsamere Ausführungszeit als bei 3, da Vorkommnisse von Krieg geladen und kombiniert werden, die nicht am Satzende stehen. Beispiel:
#BED(Gott /s0 &Krieg, :/se) |
Formulierung 3: Angabe des Satzendes direkt mit dem Wort Krieg verknüpft: mit Abstand kürzestes Ausführungszeit; nur Vorkommnisse von Krieg, die am Satzende stehen, werden geladen und kombiniert; nach der Kombination der beiden Wörter stehen die Ergebnisse bereits zur Verfügung. Beispiel:
Gott /s0 &Krieg:se |