Korpussuche – Suchmaschine und Suchabfragesprache

Die DWDS-Korpussuche bietet ein umfängliches Spektrum an Möglichkeiten für Anfragen an unsere Textsammlungen (Korpora). Entsprechend reichhaltig (und manchmal auch komplex) ist die Abfragesprache, die mittels der Software DDC realisiert wurde.

Hinweis

Alle Suchbeispiele in dieser Dokumentation sind anklickbar und führen Sie direkt zu Korpusergebnissen.
Für Fragen zur Korpussuche schreiben Sie uns gerne eine Nachricht.

Schnellübersicht DDC

In dieser Schnellübersicht werden die wichtigsten Konzepte der Abfragesprache für Suchen in den DWDS-Korpora gelistet.

Sucheingabe Bemerkung Beispieltreffer
Haus lemmabasierte Suche Haus, Hauses, Häuser, Häusern, …
@Haus exakte Wortform Haus
Haus* Präfixsuche Haus, Hausmeister, …
*haus Suffixsuche Elternhaus, zuhaus, …
*haus* Präfix- und Suffixsuche hausfraulich, Verlagshaus, Schauspiel, …
/ha[mu]s?t/ regulärer Ausdruck schaut, Hochamt, Goldhamster, …
[ha, gefolgt von m oder u, danach optional s, dann t]
/haus/gi regulärer Ausdruck auf ganzem Tokenfeld mit Ignorieren der Groß-/Kleinschreibung weg, weG, wEg, wEG, Weg, WeG, WEg, WEG
weg|case Termexpansion (hier: alle Groß-/Klein-Schreibvarianten im Korpus) WEG, Weg, weg
{Haus,Hof} Tokens als Menge Haus, Häuser, Höfen, …
Haus && Hof Und-Suche Sätze, in denen Formen von Haus und Hof vorkommen
Haus || Hof Oder-Suche Sätze, in denen Formen von Haus oder Hof vorkommen
Haus && !Hof Negation Sätze, in denen eine Form von Haus und keine Form von Hof vorkommt
"ein Haus" Wortgruppe/Phrase ein Haus, eines Hauses, …
"ein #2 Haus" Phrase mit Abstand (maximal 2) ein glückliches Haus, eines der schönen Häuser, …
"ein #>2 Haus" Phrase mit Abstand (mehr als 2) Sätze, in denen zwischen einer Form von ein und einer Form von Haus mehr als 2 Tokens stehen
"ein #=2 Haus" Phrase mit Abstand (genau 2) Sätze, in denen zwischen einer Form von ein und einer Form von Haus genau 2 Tokens stehen
NEAR(gut,Beispiel,3) Abstandssuche ohne best. Reihenfolge bestes Beispiel,
[durch einige] Beispiele gut [belegt]
NEAR(Honig,Milch,fließen,5) Abstandssuche ohne best. Reihenfolge Land, wo Milch und Honig fließt;
Honig und Milch nur in Rinnsalen fließen
NEAR("wenn ich","werde ich",2) Abstandssuche ohne best. Reihenfolge mit Wortgruppen Wie würde ich aussehen, wenn ich [...]
$p=PPOSS Abfrage nach Wortart unseren, meiner, deinigen, …
Haus WITH $.=0 Satzanfang Sätze, die mit einer Form von Haus beginnen
Haus WITH $.=-2 Satzende (Hinweis: $.=-2 sucht nach dem vorletzten Token im Satz, meist ist ein Satzzeichen das letzte Token) Sätze, die mit einer Form von Haus enden

Grundsätzliches zur Suchmaschine

Der Index der DWDS-Suchinfrastruktur besteht aus mehreren Ebenen. Das Verständnis dessen ist wichtig für die korrekte Formulierung der Abfragen und die Interpretation der Suchergebnisse.

Korpora

Korpora sind Textsammlungen wie beispielsweise das DWDS-Kernkorpus oder das Deutsche Textarchiv. Eine Übersicht über die im DWDS recherchierbaren Korpora finden Sie hier.

Hinweis

Bitte beachten Sie, dass eine korpusübergreifende Suche nicht möglich ist. Sie können allerdings im Korpus Referenz- und Zeitungskorpora (aggregiert, frei) recherchieren, welches mehrere Korpora aggregiert.

Dokumente

Jedes Korpus vereint eine Anzahl von Dokumenten unterschiedlichen Typs (z. B. Bücher, Zeitungsartikel, Blogeinträge) mit ihren Metadaten. Nach diesen Metadaten kann die Suchanfrage entsprechend gefiltert werden.

Sätze

Der Textteil der Dokumente wurde für die Indexierung in einzelne Sätze zerlegt. Wird in der Suchabfrage nichts anderes spezifiert, werden einzelne Sätze als Treffer zurückgegeben.

Hinweis

Die Zerlegung eines Textes in einzelne Sätze ist ein automatischer Prozess.

Tokens

Jeder Satz wurde für die Indexierung in einzelne Worte sowie Satzzeichen zerlegt (= tokenisiert). Diese Tokens haben verschiedene Eigenschaften (z. B. Wortart und Grundform) und Werte, die entsprechend abgefragt werden können.

Hinweis

Die Tokenisierung ist ein automatischer Prozess.

Beispiele DWDS-Suchinfrastruktur

# Autor Titel Datum Textklasse [weitere Felder]
0 Goethe, Johann Wolfgang von West-östlicher Divan 1819 Belletristik::Lyrik Lizenz:
Distributed under the Creative Commons Attribution-NonCommercial 3.0 Unported License.
1 Kafka, Franz Der Proceß 1925 Belletristik::Roman Digitalisierungsvorlage:
Kafka, Franz: Der Proceß, Frankfurt a. M.: Fischer 1993
2 Die Zeit Fahrdienst-Vermittler Uber holt sich Unterstützung für Datenschutz 2014-11-21 Zeitung; Internet; Verkehr; Taxi; Telekommunikation; Datenschutz; USA Zitiertitel:
Die Zeit, 21.11.2014 (online)
3 Game of Thrones: The Wolf and the Lion 2011 Untertitel URL:
http://www.opensubtitles.org/...
4 John Aysa Drool 2015-10-14 internetbasiert Datum des Seitenabrufs:
2017-02-15

Im Anfang war das Wort.

# Token Lemma Part-of-Speech
0 Im im APPRART
1 Anfang Anfang NN
2 war sein VAFIN
3 das d ART
4 Wort Wort NN
5 . . $.

Vnd goͤnn’ jhn dir noch jtzt.

Gryphius, Andreas: Teutsche Reim-Gedichte. Frankfurt (Main), 1650, S. 21. In: Deutsches Textarchiv <http://www.deutschestextarchiv.de/gryphius_leoarmenius_1650/33>, abgerufen am 15.10.2018.
# Originaltext Token in latin1 normalisierte Schreibung Lemma Part-of-Speech
0 Vnd Vnd Und und KON
1 goͤnn’ gönn' gönne gönnen VVFIN
2 jhn jhn ihn er PPER
3 dir dir dir du PPER
4 noch noch noch noch ADV
5 jtzt jtzt jetzt jetzt ADV
6 . . . . $.

Abfragesyntax

Sie können Ihre Anfrage mittels einer einfachen Ein-Wort-Abfrage formulieren. Darüberhinaus unterstützt die Suchmaschine im DWDS Boolesche Operatoren, Phrasensuche, Filter auf Tokenebene, Filter nach Metadaten, Sortieroperationen und vieles mehr.

Die formale Beschreibung und Dokumentation der Abfragesyntax für DDC finden Sie hier.

Generell folgen Abfragen diesem Muster:

KLAUSEL [KLAUSEL, ...] [FLAGS] [FILTER]

Klauseln sind einzelne oder mit Booleschen Operatoren verbundene Filter auf Tokenebene.

Boolesche Operatoren

Boolescher Operator Bemerkung Beispiel
KLAUSEL && KLAUSEL logische Konjunktion ('UND') Haus && Hof
KLAUSEL || KLAUSEL logische Disjunktion ('ODER') Haus || Hof
!KLAUSEL logische Negation ('NICHT') Haus && !Hof
(KLAUSEL) explizite Gruppierung Haus && (Hof || Garten)

Hinweis

Die logische Negation ist nicht auf alle Klauseln anwendbar, meist nur in Verbindung mit nicht-negierten Klauseln oder Filtern. Außerdem gelten für die Abfrage über dwds.de weitere Einschränkungen.

Filter auf Tokenebene

Ein einzelner Suchterm bezieht sich immer auf ein Token. Folgende Bedingungen können gesetzt werden:

Bedingung Bemerkung Beispiel
TERM einfaches Wort (wird expandiert) Haus
'TERM' Suchterm in einfachen Anführungszeichen (vgl. Sonderzeichen, wird expandiert) 'Haus'
@TERM exakter Treffer @Häuser
/REGEX/ regulärer Ausdruck (PCRE-Syntax) /^Hausw/
* Universalmatch (= beliebiger Wert)
TERM|Expander[|Expander,...] Termexpansion Haus | gn-syn
TERM* Präfixsuche Haus*
*TERM Suffixsuche *haus
*TERM* Infixsuche *haus*
{TERM,TERM,...} Mengensuche (wird expandiert) {Haus,Hof,Garten}
@{TERM,TERM,...} Mengensuche nach exakten Treffern @{Haus,Hof,Garten}

Hinweis

Die Mengensuche funktioniert auch mit den Präfix-, Suffix- und Infixoperatoren:

{TERM,TERM,...}*
*{TERM,TERM,...}
*{TERM,TERM,...}*

Alle diese Bedingungen können auch genutzt werden, um gezielt einzelne Tokenindices mittels $INDEX=BEDINGUNG abzufragen.

Für die logische Verknüpfung der Bedingungen auf Tokenebene stehen folgende Operatoren bereit:

Operator Bemerkung
BEDINGUNG WITH BEDINGUNG Konjunktion mehrerer Bedingungen auf Tokenebene
BEDINGUNG WITHOUT BEDINGUNG Konjunktion positiver und negativer Bedingungen auf Tokenebene
BEDINGUNG WITHOR BEDINGUNG Konjunktion unabhängiger Bedingungen auf Tokenebene

Abfragbare Indices

Index Aliasse Bemerkung Einschränkung
$Utf8 $u originales Token in UTF-8 (= Oberflächenform) nur DTA-Korpus
$CanonicalToken $v mit DTA::CAB normalisierte, moderne Wortform nur DTA-Korpus
$Token DTA: $w
alle anderen Korpora: $w, $CanonicalToken, $Utf8, $u, $v
DTA-Korpus: originales Token, mit unicruft transliteriert
alle anderen Korpora: originales Token (= Oberflächenform)
$Lemma $l Lemma (Grundform)
$Pos $p Part-of-Speech (Wortart)
$Line $lb Zeilennummer der Textseite auf der das Token steht nur DTA-Korpus
$Page $page Seitennummer (Scannummer des Faksimiles) auf der das Token steht nur DTA-Korpus
$Rend $r typographische1 Attribute (@rendition-Werte ohne führendes #) des Tokens als |-separierte Liste nur DTA-Korpus
$Context $con textstrukturelle2 Attribute des Tokens als |-separierte, lexikografisch sortierte Liste nur DTA-Korpus
$XPath $xpath kanonischer XPath3 zum tiefsten Elementknoten, der das erste Zeichen des Tokens enthält; die „Präfixe“ /TEI/text/ bzw. /TEI/ sind bereits abgeschnitten nur DTA-Korpus
$WordSep $ws Boolesches Attribut: 1 wenn dem Token unmittelbar Leerraum vorangeht, 0 sonst
$. Position des Tokens im Satz, Zählung beginnend mit $.=0, Zählung vom Satzende rückwärts mit $.=-1, $.=-2 etc.

Beispiele

Anfrage Bemerkung
$w=@Häuser literale Form Häuser
$l=Haus Lemma (Grundform) Haus
Haus WITH $p=NN Haus als (normales) Nomen
Müller WITHOUT $p=NE Müller nicht als Eigenname
Müller WITH $p=N* Müller als Nomen bzw. Eigenname
Haus WITH $.=0 Haus am Satzanfang
Haus WITH ($.=0 WITHOR $.=-2) Haus am Satzanfang oder Satzende

Hinweis

¹ Für die Suche nach typografischen Attributen mittels $Rend empfiehlt sich die Benutzung von regulären Ausdrücken in Verbindung mit Word-Boundaries wie \b, um zwischen Phänomenen wie <hi rendition="#in"> und <hi rendition="#i"> unterscheiden zu können.

Hinweis

² Für die Suche nach textstrukturellen Attributen mittels $Context sind folgende DTABf-Elemente indiziert: text front body back head left foot end argument hi cit fw lg stage speaker formula table. Außerdem sind folgende note-Elemente suchbar: <note place="foot|left|right"> via note_foot, note_left und note_right, andere note-Elemente via note_other.

Hinweis

³ Die XPath-Suche ist (momentan) sehr limitiert und als statisches Textfeld implementiert, welches den reinen Pfad im Dokumentbaum repräsentiert, z. B. als body/div/p/note.

Filter nach Wortarten (Part-of-Speech)

Alle Wörter in den DWDS-Korpora sind anhand des STTS-Tagsets (Stuttgart-Tübingen-Tagset) annotiert worden. Sogenannte Part-of-Speech-Tags (PoS) sind syntaktische Kategorien, die etwas genauer ausdifferenziert sind als die üblicherweise unterschiedenen Wortarten. Die Abfrage erfolgt über den entsprechenden Index $p=PoS.

Zusätzlich zu den 54 Tags in der unten stehenden Liste können die DWDS-Korpora auch PoS-Tags der Form FM.LANG enthalten, wobei LANG die ISO 639-1-Bezeichnung einer erkannten Fremdsprache ist. Solche Tags werden dann vergeben, wenn die computerlinguistische Vorverarbeitung den entsprechenden Satz einer erkannten Fremdsprache zugeordnet hat, z. B. FM.en im Falle von Englisch. Desweiteren kann das Tag FM.xy bei „Sätzen“ vergeben werden, die größtenteils aus Abkürzungen, Satzzeichen und/oder mathematischen Formeln bestehen.

Wortart PoS Beschreibung Beispiele
Adjektiv ADJA attributives Adjektiv [das] große [Haus]
ADJD adverbiales oder prädikatives Adjektiv [er fährt] schnell, [er ist] schnell
 
Adverb ADV Adverb schon, bald, doch
 
Präposition APPR Präposition; Zirkumposition links in [der Stadt], ohne [mich]
APPRART Präposition mit Artikel im [Haus], zur [Sache]
APPO Postposition [ihm] zufolge, [der Sache] wegen
APZR Zirkumposition rechts [von jetzt] an
 
Determiner ART bestimmter oder unbestimmter Artikel der, die, das, ein, eine
CARD Kardinalzahl zwei [Männer], [im Jahre] 1994
 
Diverses FM fremdsprachliches Material [Er hat das mit „] A big fish [“ übersetzt]
ITJ Interjektion hm, ach, tja
XY Nichtwort, Sonderzeichen enthaltend 3:7, H2O, D2XW3
 
Konjunktion KOUI unterordnende Konjunktion mit „zu“ und Infinitiv um [zu leben], anstatt [zu fragen]
KOUS unterordnende Konjunktion mit Satz weil, daß, damit, wenn, ob
KON nebenordnende Konjunktion und, oder, aber
KOKOM Vergleichskonjunktion als, wie
 
Nomen und Namen NN normales Nomen Tisch, Herr, [das] Reisen
NE Eigennamen Hans, Hamburg, HSV
TRUNC Kompositions-Erstglied An- [und Abreise]
 
Demonstrativpron. PDS substituierendes Demonstrativpronomen dieser, jener
PDAT attribuierendes Demonstrativpronomen jener [Mensch]
 
Indefinitpron. PIS substituierendes Indefinitpronomen keiner, viele, man, niemand
PIAT attribuierendes Indefinitpronomen ohne Determiner kein [Mensch], irgendein [Glas]
PIDAT attribuierendes Indefinitpronomen mit Determiner [ein] wenig [Wasser], [die] beiden [Brüder]
 
Personalpron. PPER irreflexives Personalpronomen ich, er, ihm, mich, dir
 
Possessivpron. PPOSS substituierendes Possessivpronomen meins, deiner
PPOSAT attribuierendes Possessivpronomen mein [Buch], deine [Mutter]
 
Relativpron. PRELS substituierendes Relativpronomen [der Hund,] der
PRELAT attribuierendes Relativpronomen [der Mann,] dessen [Hund]
 
Reflexivpron. PRF reflexives Personalpronomen sich, einander, dich, mir
 
Interrogativpronom. PWS substituierendes Interrogativpronomen wer, was
PWAT attribuierendes Interrogativpronomen welche [Farbe], wessen [Hut]
PWAV adverbiales Interrogativ- oder Relativpronomen warum, wo, wann, woher, wobei
 
Konnektivpron. PAV Pronominaladverb dafür, dabei, deswegen, trotzdem
 
Partikel PTKZU „zu“ vor Infinitiv zu [gehen]
PTKNEG Negationspartikel nicht
PTKVZ abgetrennter Verbzusatz [er kommt] an, [er fährt] rad
PTKANT Antwortpartikel ja, nein, danke, bitte
PTKA Partikel bei Adjektiv oder Adverb am [schönsten], zu [schnell]
 
Lex. Verb VVFIN finites Verb, voll [du] gehst, [wir] kommen [an]
VVIMP Imperativ, voll komm [!]
VVINF Infinitiv, voll gehen, ankommen
VVIZU Infinitiv mit „zu“, voll anzukommen, loszulassen
VVPP Partizip Perfekt, voll gegangen, angekommen
 
Auxiliarverb VAFIN finites Verb, Auxiliar [du] bist, [wir] werden
VAIMP Imperativ, Auxiliar sei [ruhig!]
VAINF Infinitiv, Auxiliar werden, sein
VAPP Partizip Perfekt, Auxiliar gewesen
 
Modalverb VMFIN finites Verb, modal dürfen
VMINF Infinitiv, modal wollen
VMPP Partizip Perfekt, modal gekonnt, [er hat gehen] können
 
Satzzeichen $, Komma ,
$. satzbeendende Interpunktion . ? ! ; :
$( sonstige Satzzeichen, satzintern " ' » « - [ ] ( )

Termexpansion

Bevor im Index der Suchmaschine nach den eingegebenen Termen gesucht wird, werden diese expandiert und anschließend wird nach diesen Expansionen im Index gesucht. Sie können diese Expansion mit der Syntax TERM|Expandierer steuern, mehrere Expandierer können durch weiteres Anhängen von |Expandierer angegeben werden (Expansionskette).

Sie können die Termexpansion mit folgendem Tool ausprobieren. Mehrere Eingabeworte bzw. Expander sind durch Leerzeichen zu trennen.

Folgende Expandierer stehen in den DWDS-Korpora zur Verfügung:

Expandierer Aliasse Bemerkung Beispielabfrage Beispielausgabe
case alle Groß-/Klein-Schreibvarianten Haus HAUS, Haus, haus
eqlemma eql alle Oberflächenformen mit dem Lemma der angegebenen Form Hause Haus, Hauses, Häuser, ...
id null Identität Haus Haus
lemma lemmatize „bestes“ Lemma und ggfls. Identität Häuser Haus, Häuser
lemmata lemmas alle Lemmata weißt weißen, wissen
tolower lc Kleinschreibung Haus haus
toupper uc Großschreibung (alle Buchstaben) Haus HAUS
gn-syn GermaNet: Synonyme siehe Kapitel Thesaurus-Annotationen
gn-syn1 GermaNet: Synonyme, direkte Unter- und Oberbegriffe
gn-syn2 GermaNet: Synonyme, direkte und deren Unter- und Oberbegriffe
gn-sub germanet, gn-asi GermaNet: Synonyme und Unterbegriffe
gn-sub1 gn-asi1 GermaNet: Synonyme und direkte Unterbegriffe
gn-sub2 gn-asi2 GermaNet: Synonyme, alle direkten und deren Unterbegriffe
gn-sup gn-isa GermaNet: Synonyme und Oberbegriffe
gn-sup1 gn-isa1 GermaNet: Synonyme und direkte Oberbegriffe
gn-sup2 gn-isa2 GermaNet: Synonyme, alle direkten und deren Oberbegriffe
ot-syn OpenThesaurus: Synonyme siehe Kapitel Thesaurus-Annotationen
ot-syn1 OpenThesaurus: Synonyme, direkte Unter- und Oberbegriffe
ot-syn2 OpenThesaurus: Synonyme, direkte und deren Unter- und Oberbegriffe
ot-sub openthesaurus, ot-asi OpenThesaurus: Synonyme und Unterbegriffe
ot-sub1 ot-asi1 OpenThesaurus: Synonyme und direkte Unterbegriffe
ot-sub2 ot-asi2 OpenThesaurus: Synonyme, alle direkten und deren Unterbegriffe
ot-sup ot-isa OpenThesaurus: Synonyme und Oberbegriffe
ot-sup1 ot-isa1 OpenThesaurus: Synonyme und direkte Oberbegriffe
ot-sup2 ot-isa2 OpenThesaurus: Synonyme, alle direkten und deren Oberbegriffe

Default-Expandierer in den DWDS-Korpora

Explizite Angabe der Default-Expansion können Sie durch TERM|- erreichen. Die Defaults sind für die einzelnen Indexfelder wie folgt definiert:

Index Default-Expansion
$Token eqlemma
$Lemma lemma
$Pos case

Thesaurus-Annotationen

Die DWDS-Korpora sind durchgängig sowohl mit den beiden Thesaurus-Systemen GermaNet als auch OpenThesaurus annotiert. Sie können die entsprechenden Expandierer nutzen, um Synonyme und Unter- oder Oberbegriffe zu suchen.

Eine Abfrage nach Bank|ot-syn entspricht beispielsweise einer Suche nach {Bank, Bankhaus, Finanzinstitut, Finanzinstitution, Geldhaus, Geldinstitut, Geschäftsbank, Kreditanstalt, Kreditinstitut, Sitzbank, Sparkasse}.

Die folgende (zur Vereinfachung gekürzte) Abbildung veranschaulicht die verschiedenen Thesaurus-Expandierer am Beispiel des Wortes Bank. Klicken Sie auf einen Button, um die entsprechenden Felder rot hervorzuheben, deren Stichworte gesucht werden, wenn der entsprechende Expandierer genutzt wird.

Phrasen- und Abstandssuche

Mehrere, direkt aufeinander folgende Wörter (bzw. Tokens) können mithilfe des Konstrukts "BEDINGUNG BEDINGUNG [BEDINGUNG,...]" gefunden werden.

Hinweis

Bitte beachten Sie, dass Satzzeichen separate Tokens sind, also als eigene Bedingung formuliert werden müssen.

Hinweis

Die Eingabe mehrerer Bedingungen ohne " oder andere Boolesche Operatoren im DWDS ist per Default eine Phrasensuche (und keine Boolesche UND-Verknüpfung).

Abstandssuche mit bestimmter Reihenfolge

Ist die Reihenfolge der Tokenbedingungen im Satz bestimmt, kann der Abstand zwischen einzelnen Bedingungen mit den folgenden Operatoren bestimmt werden:

Operator Bemerkung Beispiel
"BEDINGUNG #<N BEDINGUNG" höchstens N Tokens zwischen den Bedingungen, als Kurzform ist auch #N möglich "Haus #<3 Hof"
"BEDINGUNG #>N BEDINGUNG" mindestens N Tokens zwischen den Bedingungen "Haus #>3 Hof"
"BEDINGUNG #=N BEDINGUNG" genau N Tokens zwischen den Bedingungen "Haus #=3 Hof"

Abstandssuche ohne bestimmte Reihenfolge

Ist die Reihenfolge der Tokenbedingungen im Satz unbestimmt, kann der Abstand zwischen einzelnen Bedingungen mit dem NEAR()-Operator bestimmt werden:

Operator Bemerkung Beispiel
NEAR(BEDINGUNG,BEDINGUNG,N) höchstens N Tokens zwischen beiden Bedingungen NEAR(Haus,Hof,3)
NEAR(BEDINGUNG,BEDINGUNG,BEDINGUNG,N) jeweils höchstens N Tokens zwischen den 3 Bedingungen NEAR(Haus,Hof,Garten,3)

Hinweis

Sie können den NEAR()-Operator auch mit Phrasen nutzen, z. B. NEAR(kommen,"nach Hause",2).

Flags

Sie können mittels der Flags #SEP und #JOIN die Anzahl der Suchtreffer bestimmen:

Flag Bemerkung
#SEP jeder passende Treffer wird ausgegeben (Default auf dwds.de)
#JOIN ein Treffer pro Satz wird ausgegeben

Filtern und Sortieren

Filtern nach Metadaten

Das Filtern nach Metadaten geschieht mit dem Operator #HAS[FELD,BEDINGUNG]. Mehrere dieser Filter können hintereinander geschrieben werden und werden dann als logische UND-Verknüpfung angewandt.

Folgende Metadatenfelder stehen zur Verfügung:

Metadatenfeld Bemerkung Beispiel Einschränkung
author Autor, meist nach dem Schema Nachname, Vorname
im DTA-Korpus nach dem Schema Nachname, Vorname #GND
Haus #HAS[author,/Goethe/]
basename eindeutiger Identifizierer eines Dokuments im Korpus Haus #HAS[basename,'goethe_iphigenie_1787']
bibl bibliografischer Kurztitel Haus #HAS[bibl,/^Goethe/]
collection Name des Korpus, hilfreich bei Metakorpora wie Referenz- und Zeitungskorpora (aggregiert, frei) Haus #HAS[collection,'dta']
date siehe dazu Filtern und Sortieren nach Datum
flags Teilkorpora, zu denen das Dokument gehört, durch :: getrennt Haus #HAS[flags,/wikisource/] nur DTA-Korpus
library Bibliothek, der die Textvorlage entstammt Haus #HAS[library,'SUB Göttingen'] nur DTA-Korpus
party Zugehörigkeit zu politischer Partei Haus #HAS[party,SPD] nur im Korpus „Politische Reden“
role politische Funktion Haus #HAS[party,Bundespräsident] nur im Korpus „Politische Reden“
shelfmark Signatur des originalen Druckes Haus #HAS[shelfmark,/8 FAB VII, 5162/] nur DTA-Korpus
textClass Textklassen, durch : bzw. :: getrennt Haus #HAS[textClass,/Roman/]
title Titel Haus #HAS[title,/Goethe/]
url URL (falls Online-Quelle) Haus #HAS[url,/greenpeace\.de/]

Bedingungen auf Metadatenfelder können wie folgt gesetzt werden:

Bedingung Bemerkung
TERM einfaches Wort
'TERM' Suchterm in einfachen Anführungszeichen (vgl. Sonderzeichen)
/REGEX/ regulärer Ausdruck (PCRE-Syntax)
TERM* Präfixsuche
*TERM Suffixsuche
*TERM* Infixsuche
{TERM,TERM,...} Mengensuche

Sortieren nach Metadaten

Folgende Sortieroperatoren stehen für die Metadatensuche zur Verfügung:

Operator Aliasse Sortierung nach …
#LESS_BY[FELD] #ASC, #ASC_BY FELD aufsteigend
#GREATER_BY[FELD] #DESC, #DESC_BY FELD absteigend

Filtern und Sortieren nach Datum

Datumsangaben von Dokumenten sind, je nach Korpus, im Format YYYY-MM-DD, YYYY-MM oder YYYY kodiert. Die Suche nach YYYY entspricht dabei YYYY-01-01.

Operator Aliasse Bemerkung
#LESS_BY_DATE #ASC_DATE, #ASC_BY_DATE Sortierung nach Datum aufsteigend
#GREATER_BY_DATE #DESC_DATE, #DESC_BY_DATE Sortierung nach Datum absteigend
#DATE[DATUM] #IS_DATE, #HAS_DATE Filter nach DATUM
#LESS_BY_DATE[,DATUM] s. o. Filter mit DATUM als Obergrenze, Sortierung nach Datum aufsteigend
#LESS_BY_DATE[DATUM,] s. o. Filter mit DATUM als Untergrenze, Sortierung nach Datum aufsteigend
#LESS_BY_DATE[DATUM,DATUM] s. o. Filter mit Unter- und Obergrenze, Sortierung nach Datum aufsteigend
#GREATER_BY_DATE[,DATUM] s. o. Filter mit DATUM als Obergrenze, Sortierung nach Datum absteigend
#GREATER_BY_DATE[DATUM,] s. o. Filter mit DATUM als Untergrenze, Sortierung nach Datum absteigend
#GREATER_BY_DATE[DATUM,DATUM] s. o. Filter mit Unter- und Obergrenze, Sortierung nach Datum absteigend

Beispiele

Abfrage Bemerkung
Haus #LESS_BY_DATE Treffer für Haus, absteigend nach Datum sortiert
Haus #DATE[1930] Treffer für Haus von 1930
Haus #LESS_BY_DATE[1930,1950] Treffer für Haus zwischen 1930 und 1950, aufsteigend nach Datum sortiert

Sortieren nach Satzkontext

Diese Art von Sortierung ist besonders in der KWIC-Ansicht sinnvoll.

Operator Aliasse Sortierung (lexikografisch) nach … Beispiel
#LESS_BY_MIDDLE #MID, #MIDDLE, #ASC_MIDDLE Treffermitte aufsteigend sein #MID
#GREATER_BY_MIDDLE #DESC_MIDDLE, #DESC_BY_MIDDLE Treffermitte absteigend sein #GREATER_BY_MIDDLE
#LESS_BY_LEFT #LEFT, #ASC_LEFT, #ASC_BY_LEFT Kontext links vom Treffer aufsteigend Haus #LEFT
#GREATER_BY_LEFT #DESC_LEFT, #DESC_BY_LEFT Kontext links vom Treffer absteigend Haus #DESC_LEFT
#LESS_BY_RIGHT #RIGHT, #ASC_RIGHT Kontext rechts vom Treffer aufsteigend Haus #ASC_RIGHT
#GREATER_BY_RIGHT #DESC_RIGHT, #DESC_BY_RIGHT Kontext rechts vom Treffer absteigend Haus #DESC_BY_RIGHT

Sortieren und Filtern nach Satzlänge

Operator Aliasse Bemerkung Beispiel
#LESS_BY_SIZE #ASC_SIZE, #ASC_BY_SIZE Sortierung nach Satzlänge aufsteigend Haus #LESS_BY_SIZE
#GREATER_BY_SIZE #DESC_SIZE, #DESC_BY_SIZE Sortierung Satzlänge absteigend Haus #GREATER_BY_SIZE
#SIZE[N] #IS_SIZE, #HAS_SIZE Filtern nach Sätzen der Länge N Haus #SIZE[4]

Zufälliges Sortieren

Mit dem #RANDOM-Operator (Alias: #RAND) werden die Suchergebnisse zufällig sortiert. Sie können mithilfe von #RANDOM[N] einen (Integer-)Seed N (Default: 0) setzen, um die Reproduzierbarkeit von Ergebnissen zu gewährleisten.

Textklassen

Jedes Korpus bringt seine eigene Textklassifikation mit. Auf unserer Statistikseite erhalten Sie eine Übersicht über die verwendeten Textklassen. Bitte beachten Sie, dass dort und auch in den Eingabeformularen für die Korpussuche stets nur eine sog. Hauptklassifikation angegeben wird. In den Metadaten der einzelnen Dokumente ist im Feld textClass die gesamte Angabe zur Textklasse verzeichnet. Die Hauptklassifikation steht dabei stets vor einem (bzw. manchmal auch zwei) Doppelpunkt(en). Sie können nach der Hauptklassifikation mittels regulärem Ausdruck filtern: ... #HAS[textClass,/^Textklasse:/].

Hinweise zur Abfragesprache

Sonderzeichen und Schlüsselwörter

Einige Zeichen und Wörter haben innerhalb der Abfragesprache eine besondere Bedeutung. Wenn explizit nach diesen gesucht werden soll, müssen diese mithilfe von einfachen Anführungszeichen maskiert werden. Sonderzeichen kann ihre Bedeutung auch mit einem vorangestellten Backslash genommen werden.

Hinweis

Bitte beachten Sie, dass Sonderzeichen, die als eigenständige Satzzeichen fungieren, als separates Token gesucht werden müssen.

Zeichen mit besonderer Bedeutung

& | # ^ ~ = $ . ! ? , : ; @ % / \ ( ) { } [ ] < > * ' "

Folgende Schlüsselwörter haben innerhalb der Abfragesprache eine besondere Bedeutung, egal ob in Groß- oder Kleinschreibung. Möchten Sie nach solch einem Wort literal suchen, muss dieses in einfache Anführungszeichen gesetzt werden.

Schlüsselwörter mit besonderer Bedeutung

Schlüsselwort Bedeutung
WITH WITHOUT WITHOR WOR ORWITH logische Verknüpfung von Bedingungen auf Tokenebene
COUNT COUNT()-Abfrage
DOC DOCID FILE FILEID Gruppierungskriterium in COUNT()-Abfragen
NEAR Abstandssuche ohne bestimmte Reihenfolge
DATE Filter nach Datum

Unicode-Unterstützung

Die Abfragesprache und die Korpora unterstützen vollständig Unicode, entsprechend werden alle Treffer in UTF-8-Kodierung ausgeliefert. Sie können also direkt mit UTF-8-Zeichen suchen. Alternativ wird auch die von JSON entlehnte Schreibweise \uXXXX in einfachen und mit Single Quotes maskierten Filtern unterstützt. In regulären Ausdrücken können Sie die PCRE-Syntax \x{XXXX} nutzen.

Reguläre Ausdrücke

/REGEX/[MODIFIER]
!/REGEX/[MODIFIER]
s/REGEX/REPLACEMENT/[MODIFIER]

Reguläre Ausdrücke sind eine mächtige Möglichkeit, innerhalb von Texten (Zeichenketten) zu suchen. Eine anfängerfreundliche Einführung in die Thematik finden Sie im Blog von Daniel Fett. Eine umfängliche Referenz finden Sie in perlretut. Sie können reguläre Ausdrücke in Tokenfiltern und bei den meisten Metadatenfiltern mittels der Syntax von PCRE (Perl Compatible Regular Expressions) formulieren.

Negierte Suchen sind mittels vorangestelltem ! durchzuführen.

Für Ersetzungsoperationen in Verbindung mit Metadatenfiltern steht der s/REGEX/REPLACEMENT/-Operator bereit.

Hinweis

Bitte beachten Sie, dass reguläre Ausdrücke in der Suchmaschine per Default nicht verankert sind, es werden also (wenn nicht explizit angegeben) Teilausdrücke gesucht. Sie können den regulären Ausdruck mit /^(?:...)$/ oder /.../g auf das gesamte zu durchsuchende Indexfeld verankern.

Hinweis

Das Begrenzungszeichen eines regulären Ausdrucks ist immer der Slash /, für die literale Suche nach diesem Zeichen muss es mit einem Backslash maskiert werden: /\//.

Hinweis

Bitte beachten Sie, dass die Suche mit der Fehlermeldung too many expansions for regex /.../ (MaxRegExpExpansionSize=262144) quittiert wird, wenn der von Ihnen eingegebene reguläre Ausdruck auf mehr als 262144 Einträge im Index passt.

Achtung

Die Suche mit regulären Ausdrücken kann zu teuren Berechnungen und Timeouts führen. Besonders Operatoren wie * und + nutzen Backtracking und sollte daher vermieden werden. Verzichten Sie daher, wenn möglich, auf Konstrukte wie .* und .+. Meist führen auch Anfragen in Mengennotation {TERM,TERM,...} oder Präfix-/Suffixnotation TERM*, *TERM zu den gewünschten Ergebnissen.

Optionale Modifier für reguläre Ausdrücke (miteinander kombinierbar)

Sucheingabe Bemerkung
/REGEX/d konvertiert den regulären Ausdruck und die zu durchsuchenden Indexwerte vor dem Matching von UTF-8 nach ASCII
/REGEX/g in Suchanfragen: konvertiert den regulären Ausdruck von /REGEX/ nach /^(?:REGEX)$/, matcht also das komplette Indexfeld
/REGEX/g in Ersetzungen: wendet das Suchmuster mit der Ersetzung auf alle Treffer an (sonst nur auf den ersten)
/REGEX/i Groß-/Kleinschreibung ignorieren
/REGEX/x erlaubt Kommentare im Suchmuster

Abfragen mit negierten Bedingungen

Abfragen, die rein negierte Bedingungen auf Token-Ebene beinhalten, werden vom Suchsystem auf der DWDS-Webseite mit einer Fehlermeldung zurückgewiesen, da dieser Typ von Abfragen u. U. recht teuer zu berechnen ist. Sie können allerdings das dstar-System nutzen, um dort unsere Korpora abzufragen. Im Folgenden ein paar Beispiele, in denen Sie Negationen auf Tokenebene einsetzen können:

Sätze, in denen Haus, aber nicht weiß vorkommt:
Haus && !weiß
Sätze, in denen die Phrase weißen Haus, aber nicht die Phrase im weißen Haus vorkommt:
"@weißen Haus" && !"im @weißen Haus"
falsch (Syntaxfehler): "!im @weißen Haus"

Listen- und Frequenzabfragen

Einfache Listen- und Frequenzabfragen

Möchten Sie nur Listen abfragen, ohne die Satzkontexte oder Metadaten dabei auszuwerten, nutzen Sie bitte die bereitstellten lexikalischen Datenbanken via lexdb.

Beispiele für diese Art von Abfragen sind:

  • Wörter einer bestimmten Wortart,
  • Wörter mit einer bestimmten Endung, einem bestimmten Wortbestandteil,
  • die häufigsten N Wörter mit einem bestimmten Kriterium.

COUNT()-Abfragen

Mittels COUNT()-Abfragen können Sie Zahlen über die Ergebnisse von Korpussuchen erhalten. Dabei besteht auch die Möglichkeit, nach diversen Kriterien zu gruppieren. Eine COUNT()-Abfrage gestaltet sich nach folgendem Muster:

COUNT ( KLAUSEL [KLAUSEL, ...] [FLAGS] [METADATENFILTER] ) [COUNT_BY] [COUNT_SORT]

Der (runde) Klammerausdruck ist dabei die DDC-Abfrage über Korpora, so wie oben in diesem Dokument beschrieben. Für eine eventuelle Gruppierung der Treffer können die einzelnen Tokenbedingungen explizit mittels nachgestelltem =N (1 ≤ N ≤ 255) markiert werden.

Sie können in COUNT_BY mittels der Syntax #BY[key[,...]] optionale Angaben zur Gruppierung machen.

Hinweis

Sie können auch mehrere Gruppierungsfunktionen auf einmal verwenden: COUNT ( KLAUSEL ... ) #BY[key,key,...].

Gruppierung nach Metadaten

Es können alle Metadatenfelder zur Gruppierung benutzt werden. Besonders sinnvoll ist dies in folgenden Fällen:

  • date – Datum des Dokuments. Es empfiehlt sich (da in einigen Korpora die Datumsangaben auf den Tag genau vermerkt sind), auf ganze Jahresangaben zu filtern: date/1. Eine Gruppierung nach Dekade¹ erreichen Sie entsprechend durch date/10.
  • textClassTextklasse des Dokuments. Es empfiehlt sich (da oft Haupt- und Untertextklasse durch : oder :: getrennt vermerkt sind), nur nach Haupttextklasse zu gruppieren. Dies erreichen Sie, indem Sie eine Substitutionsoperation auf das entsprechende Feld ausführen: textClass~s/:.*// (dies schneidet alles nach dem ersten : ab).
Sucheingabe Bemerkung
COUNT( Haus ) #BY[date/10] Treffer für Formen von Haus, nach Dekade gruppiert
COUNT( Haus ) #BY[textClass~s/:.*//] Treffer für Formen von Haus, nach Haupttextklasse gruppiert
COUNT( Haus ) #BY[date/10,textClass~s/:.*//] Treffer für Formen von Haus, nach Dekade und Haupttextklasse gruppiert

Gruppierung nach Indexfeldern

Es können alle Tokenindices wie z. B. $p (Part-of-Speech-Tag), $l (Lemma) oder $w (Oberflächenform) zur Gruppierung benutzt werden.

Achtung

Bitte beachten Sie, dass Abfragen mit #BY in Verbindung mit der Angabe von Indexfeldern teuer in der Berechnung sind. Sie müssen im DWDS eingeloggt sein, um diese Funktion nutzen zu können.

Sucheingabe Bemerkung Hinweis
COUNT( sommer* ) #BY[$p] Treffer für Wörter mit dem Präfix sommer, nach Wortart gruppiert Login erforderlich
COUNT( sommer* ) #BY[$l] Treffer für Wörter mit dem Präfix sommer, nach Lemma gruppiert Login erforderlich
COUNT( sommer* ) #BY[$p,$l] Treffer für Wörter mit dem Präfix sommer, nach Wortart und Lemma gruppiert Login erforderlich

Gruppierung nach Kontext

Sie können nach den linken oder rechten Nachbarn eines markierten Tokens mittels Angabe eines Indexfelds und nachgestelltem -N bzw. +N gruppieren.

Sucheingabe Bemerkung Hinweis
COUNT( Wörterbuch ) #BY[$l-1] Treffer für Formen von Wörterbuch, nach Lemma des linken Nachbarn gruppiert Login erforderlich
COUNT( schön ) #BY[$w+1] Treffer für Formen von schön, nach Oberflächenform des rechten Nachbarn gruppiert Login erforderlich

Sortierung der Ergebnisse von COUNT()-Abfragen

Für die Sortierung der Ergebnisse in COUNT_SORT stehen folgende Operatoren zur Verfügung:

Operator Sortierung nach
#ASC_COUNT Frequenz aufsteigend
#DESC_COUNT Frequenz absteigend
#ASC_KEY Gruppierungskriterium aufsteigend (Default)
#DESC_KEY Gruppierungskriterium absteigend

Weitere Beispiele zu COUNT()-Abfragen finden Sie in der Beispielsammlung.

Häufig gestellte Fragen (FAQ)

Wie kann ich nach Kasus filtern?

Kasus sind in unseren Korpora nicht annotiert. Eine Hilfe ist, die Korpusergebnisse nach dem linken Nachbarn zu sortieren, dann kann man zumindest manuell schnell die uninteressanten Treffer aussortieren.

Beispiel: Pluralformen von Tunnel

Mit dem @-Operator suchen Sie nach exakter Wortform, d. h. @Tunnels findet auch nur genau diese Oberflächenform.

  1. Suche nach @Tunnels.
  2. Dort nutzen Sie dann den Button „Treffer exportieren“.
  3. Innerhalb dieser Liste können dann „falsche“ Treffer (z. B. Genitivformen) aussortiert werden.

Für Tunnels kann dann genauso verfahren werden, oder Sie suchen zugleich nach beiden Formen mittels @{Tunnels,Tunneln}.

Kann ich Korpusabfragen für „Reduplikation“ stellen?

Abfragen mit Reduplikation a la Auge um Auge oder Tag für Tag sind leider nicht möglich, da die DDC-Abfragesprache keine Termvariablen bzw. Back-References unterstützt.

Beispielsammlung Korpusabfragen

Sucheingabe Bemerkung Hinweis
hinter* with !$l=hinter Abfrage nach hinterlassen, hinterfragen etc., schließt hinter aus
aufessen || "essen #9 auf WITH $p=PTKVZ" Abfrage nach aufessen, isst … auf, aß … auf etc.
Stein with $p=NE Abfrage nach Stein als Eigenname
Stein with $p=NN Abfrage nach Stein als Substantiv
modern WITH $p=VV* modern als Verb
"*roter WITHOUT rot Faden" rot-Verbindungen + Faden, aber nicht rot selbst
"$p=ITJ ','" Phrasensuche nach Interjektionen gefolgt von einem Komma
"Liebe ',' Verrat ',' Tod" literales Komma in Wortgruppe
'?' WITH $.=1 literales Fragezeichen als 2. Token im Satz
'?' WITH $.=-1 Fragesatz
"':' {'\"','„','»'}" wörtliche Rede bzw. Zitat nach Doppelpunkt
Ku\'damm Apostroph als Auslassungszeichen
\u0152uvre Suche nach Unicode-Zeichen
'Date' Suche nach Date (muss in ' eingeschlossen werden, da Schlüsselwort)
Garten WITH $Rend=/\bi\b/ typografisches Attribut: Kursivdruck (#i) nur DTA-Korpus
Garten WITH $Rend=/i/ typografisches Attribut: Kursivdruck, Initiale, rechtsbündig (#i, #in, #right) nur DTA-Korpus
Garten WITH $Context=/argument/ textstrukturelles Attribut: Treffer innerhalb von <argument> nur DTA-Korpus
Garten WITH $Context=/note_(?:right|left)/ textstrukturelles Attribut: Treffer innerhalb von Marginalien nur DTA-Korpus
Berlin WITH $XPath=*'note/placeName' XPath: Berlin als Ortsname innerhalb von <note> nur DTA-Korpus
Garten #HAS[flags,/\bcore\b/] Treffer im DTA-Kernkorpus (\b ist RE-Syntax für Wortgrenze)
Garten #HAS[flags,/\bdtae\b/] Treffer im DTAE-Teilkorpus
Garten #HAS[basename,'arnimb_goethe02_1835'] Treffer gefiltert nach Dokumenten-Identifier
Garten #HAS[author,/Arnim/] Treffer gefiltert nach Autor
Garten #HAS[author,/118504185/] Treffer gefiltert nach GND-Nummer im Autor-Feld
Garten #HAS[author,/Goethe/] #HAS[title,/Faust/] mehrere Filter auf Metadatenfelder
Garten #DATE[1800] Treffer aus Werken von 1800
Garten #LESS_BY_DATE[1800,1850] Treffer aus Werken zwischen 1800 und 1850
Garten #LESS_BY_DATE[1800,] Treffer aus Werken ab 1800
Garten #LESS_BY_DATE[,1850] Treffer aus Werken bis 1850
Garten #HAS[textClass,/Wissenschaft/] Filter nach Textklasse (Teilstring)
Garten #HAS[textClass,'Gebrauchsliteratur::Kochbuch'] Filter nach Textklasse (Vollangabe)

Beispiele für COUNT()-Abfragen

Sucheingabe Bemerkung Hinweis
COUNT( Haus ) #BY[date/10] Vorkommen von Haus nach Dekade* gruppiert
COUNT( Haus ) #BY[date/10] #ASC_COUNT Vorkommen von Haus nach Dekade* gruppiert und Frequenz sortiert
COUNT( Haus ) #BY[textClass~s/:.*//] Vorkommen von Haus nach Textklasse gruppiert
COUNT( Haus ) #BY[textClass~s/:.*//,date/10] Vorkommen von Haus nach Textklasse und Dekade* gruppiert
COUNT( Haus #ASC_DATE[1900,1950] #HAS[textClass,/^Wissenschaft/] ) #BY[date/1] Vorkommen von Haus zwischen 1900 und 1950 in der Textklasse „Wissenschaft“ nach Jahr gruppiert
COUNT( sein ) #BY[$w] Vorkommen von sein nach Oberflächenform gruppiert Login erforderlich
COUNT( @Haus ) #BY[$w -1] #DESC_COUNT linke Nachbarn von @Haus, absteigend nach Frequenz sortiert Login erforderlich
COUNT( Computer|gn-sub ) #BY[date/5] #DESC_KEY Synonyme und Unterbegriffe für Computer, gruppiert in 5-Jahres-Schritten und danach absteigend sortiert
COUNT("$p=NN =1 und $p=NN =2" #SEP) #BY[$l =1, $l =2] #DESC_COUNT Wortgruppen der Form „NOMEN und NOMEN“ Login erforderlich
COUNT("$p=ADJ* =1 Haus") #BY[$l=1] #DESC_COUNT Wortgruppe „ADJEKTIV Haus“, gruppiert nach der Grundform des Adjektivs, absteigend nach Frequenz sortiert Login erforderlich
COUNT("$p=ADJ* =1 Haus =2") #BY[$w =1, $w =2] #DESC_COUNT Wortgruppe „ADJEKTIV Haus“, gruppiert nach der Wortgruppe selbst, absteigend nach Frequenz sortiert Login erforderlich
* Dekade bezeichnet einen Zeitraum von 10 Jahren, z. B. 1900: 1900–1909.

API

Dokumentation zu den Schnittstellen der Korpussuche finden Sie auf folgender Seite: API (Schnittstellen zum DWDS).

dstar

Alle unsere Korpora sind auch über das dstar-System zugänglich. Dort finden Sie außerdem weitere Schnittstellen und Exportmöglichkeiten.

lexdb

Für jedes Korpus bieten wir eine Frequenzdatenbank (lexdb) an, die über das dstar-System zugänglich ist. Bitte nutzen Sie zunächst immer die entsprechende lexdb, wenn Sie an Frequenzinformationen interessiert sind.

Weiterführende Informationen