Programmbereich Korpuslinguistik
Institut für Deutsche Sprache
Postfach 10 16 21,
D-68016 Mannheim
email: korpuslinguistik@ids-mannheim.de
Erstveröffentlichung: 22. April 2004
Bitte zitieren Sie dieses Dokument in der folgenden Form:
Rainer Perkuhn und Cyril Belica: Eine kurze Einführung in die Kookkurrenzanalyse und syntagmatische Muster. Institut für Deutsche Sprache, Mannheim. 2004. http://www-neu.ids-mannheim.de/kl/misc/tutorial.html
Falls Sie eine Referenz auf die hier beschriebene Kookkurrenzanalyse selber wünschen, wählen Sie bitte folgende Angabe:
Cyril Belica: Statistische Kollokationsanalyse und -clustering. Korpuslinguistische Analysemethode. Institut für Deutsche Sprache, Mannheim. 1995. http://corpora2.ids-mannheim.de/
Weiterführende Veröffentlichungen zu diesem Thema finden Sie über die jeweiligen persönlichen Webseiten der Mitarbeiter des Programmbereichs Korpuslinguistik. Bei Interesse können Sie aber auch gerne mit uns per Email unter der o.g. Adresse Kontakt aufnehmen.
Stellen Sie sich vor, bei der Zubereitung eines Käsekuchens haben Sie 100 Rosinen in den Teig gegeben. Nachdem Sie drei Stücke, d.h. ungefähr ein Viertel, gegessen haben, sind Sie ganz enttäuscht, weil Sie erst 10 von den 100 Rosinen (nur ein Zehntel!) wieder entdeckt haben. Lässt Sie das nicht stutzig werden? Hätten es nicht ungefähr 25 Rosinen sein müssen? Na gut, mit einer leichten Abweichung (3 oder 5?) hätten Sie leben können. Aber nur 10? Andrerseits wären Sie sehr wahrscheinlich froh, aber genau so verwundert, wenn Sie deutlich mehr als 30 Rosinen in Ihrem Viertel gefunden hätten. Vielleicht hätten Sie vermutet, dass irgendeine magische Anziehungskraft dafür gesorgt hat, dass sich die Rosinen verstärkt in einem Bereich sammeln.
In dem Käsekuchen-Szenario mag die Anziehungskraft zunächst nicht nur magisch, sondern auch mystisch anmuten. Weniger mystisch wäre die Kraft aber sicherlich, wenn der Kuchen nicht vertikal sondern horizontal aufgeschnitten wird. Vorausgesetzt, der Teig wäre sehr flüssig gewesen, dann wäre die Schwerkraft eine sehr plausible Erklärung, warum im oberen Viertel deutlich weniger, im unteren Viertel deutlich geballt Rosinen zu finden sind.
Wörter verteilen sich leider nicht so in der Sprache wie Rosinen im Käsekuchen. Und “Aufschneiden” kann man die Sprache auf viele verschiedene Arten. Eine Erklärung für die mystische Anziehungskraft bei sprachlichen Phänomenen zu finden gestaltet sich sicher viel schwieriger als beim Käsekuchen
Unter Kookkurrenzanalyse (bisweilen auch Kollokationsanalyse genannt) versteht man verschiedene, auf mathematisch-statistischen Verfahren basierende Methoden zur Analyse von Korpora. Die hier beschriebene Methode wurde in den Jahren 1994 und 1995 von Cyril Belica konzipiert und steht seitdem den Linguisten auf der ganzen Welt über das COSMAS-System zur Verfügung, um die weltweit größte elektronische Sammlung deutschsprachiger Texte für die linguistische Forschung, das Deutsche Referenzkorpus, noch besser erschließen zu können.
Für die Kookkurrenzanalyse ist ein Stück aus dem Kuchen auszuschneiden, d.h. ein Ausschnitt aus den Korpora zu definieren. Die Analyse bewertet dann, wie wahrscheinlich oder unwahrscheinlich es ist, dass die Wörter in dem Ausschnitt zufälligerweise so oft in dem Ausschnitt vorkommen, wie sie vorkommen. Die Wörter, die auffällig öfter vertreten sind als erwartet, werden angezeigt. Es ist dann die Aufgabe einer weitergehenden Interpretation zu ergründen, welche Anziehungskraft zu diesem Befund geführt hat. Die Auswahl des Korpusausschnitts kann im Prinzip nach ganz verschiedenen Kriterien erfolgen: Texte einer bestimmten Zeit, aus einer bestimmten Region, von einem bestimmten Autor oder zu einem bestimmten Thema. Normalerweise geschieht dies aber über Korpusauswahl, Suche nach einem bestimmten Wort bzw. einer Wortform und Kontextdefinition. Für die folgenden Beschreibungen gehen wir von dieser Variante aus. Für die Interpretation liegt es dann nahe, von einer Kohäsion in Bezug auf das Auswahlkriterium, bei einer Suche von einer Affinität zu dem Suchbegriff auszugehen …
Die Kookkurrenzanalyse ist kein einzelnes, starres Verfahren, vielmehr eröffnet sie eine ganze Bandbreite von Möglichkeiten. So wie es verschiedene Phänomene in der Sprache gibt, die untersuchenswert sind, so gibt es unterschiedliche Arten, Kookkurrenzanfragen zu formulieren. Nach der Korpusauswahl und der Suchanfrage ist der zu analysierende Kontext zu definieren und es sind die Werte verschiedener Parameter festzulegen. Für den Kontext und die Parameter werden Standardwerte vorgeschlagen, die sich bereits für viele Fragestellungen bewährt haben.
Wir empfehlen, Analysen zunächst mit diesen Standardwerten durchzuführen. Mit ein wenig Erfahrung lohnt es sich dann sicher, ein wenig zu “experimentieren” und die Werte einzelner Parameter zu variieren. Diese kleine Tutorial ist eher technisch gehalten und soll dazu dienen, das Verständnis dafür zu fördern, welche Auswirkung es auf die Analyse hat, wenn der Wert eines Parameters verändert wird.
Kurz zusammengefasst:
Ausgangspunkt für die Kookkurrenzanalyse sind die vereinigten Kontexte aller Trefferobjekte einer Suchanfrage. Nach Korpusauswahl bzw. virtueller Zusammenstellung ist zunächst eine Suchanfrage zu formulieren. Bei deren Formulierung ist darauf zu achten, dass die Wortform[en], die Gegenstand der Untersuchung sein soll[en], den eindeutigen Kern des Trefferobjektes ausmachen (Position 0 in der Tabelle unten). Dies gilt trivialerweise für die Suche nach einer bestimmten Wortform oder nach den Wortformen, denen dieselbe Grundform (oder derselbe reguläre Ausdruck) zugrundeliegt. Bei komplexeren Suchanfragen (Verknüpfung über Abstandsoperatoren, logische Operatoren o.ä.) ist dies nicht garantiert: der Kern kann von Treffer zu Treffer verschieden sein. Daraus ergibt sich, dass die Kontexte der Trefferobjekte sehr uneinheitlich sein und dass deren Analyse zu Ergebnissen führen können, deren Aussagekraft nicht abschätzbar ist.
Generell gilt, dass die Anzahl der Treffer nicht zu klein sein darf, damit die statistischen Analysen verlässliche Aussagen liefern können.
Für die Erläuterungen im weiteren Verlauf sei angenommen, dass nach der Wortform “Stücken” gesucht wurde (im Folgenden abstrakt als w000 bezeichnet). Folgende Tabelle illustriert zeilenweise das Suchergebnis anhand dreier (strukturell prototypischer) Vertreter.
Position: | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wortform | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | Stücken | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxx. | xxxx | xxxx | xxxx | Stücken | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | |
xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | Stücken | xxxx | xxxx | xxxx | xxx. | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
Für eine Kookkurrenzanfrage können verschiedene Parameter eingestellt werden. Einige der Parameter legen den zu analysierenden Kontext fest, andere Parameter steuern die Vorgehensweise bei der Analyse. Schließlich gibt es Parameter, die sich auf die Darstellung der Ergebnisse auswirken.
[Die Eingabemaske für die Parameter kann in der aktuellen COSMAS Version (zzt. COSMAS II) in der Darstellung leicht von der hier gezeigten abweichen, die Parameter und die Eingabemöglichkeiten stehen aber unter jeder Version gleichermaßen zur Verfügung.]
Verändern Sie die Werte in folgendem Formular und klicken Sie irgendwohin (nur nicht auf “zurücksetzen”), um die Auswirkung auf den zu analysierenden Kontext in der Tabelle unten anschaulich nachvollziehen zu können. Die durchgestrichenen Elemente stellen ignorierte Funktionswörter dar, s. Punkt Funktionswörter.
Position: | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wortform | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | yyyy | xxxx | xxxx | yyyy | Stücken | yyyy | xxxx | yyyy | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxx. | xxxx | yyyy | xxxx | Stücken | xxxx | yyyy | xxxx | xxxx | yyyy | xxxx | xxxx | xxxx | xxxx | xxxx | |
xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | yyyy | xxxx | xxxx | Stücken | yyyy | xxxx | xxxx | yyy. | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
Wortform \ Häufigkeit | in Treffermenge | im Gesamtkorpus | log-likelihood-ratio (x_ _ _,y_ _ _,T,K) |
---|---|---|---|
w001 | x001 | y001 | z001 |
w002 | x002 | y002 | z002 |
w003 | x003 | y003 | z003 |
… | … | … | … |
w999 | x999 | y999 | z999 |
Wortformmenge \ Häufigkeit | in Treffermenge | im Gesamtkorpus | log-likelihood-ratio (xl_ _ _,yl_ _ _,T,K) |
---|---|---|---|
wl001.1 ∪ wl001.2 ∪ … | xl001 = xl001.1 + xl001.2 + … | yl001 = yl001.1 + y001.2 + … | zl001 |
wl002.1 ∪ wl002.2 ∪ … | xl002 = xl002.1 + xl002.2 + … | yl002 = yl002.1 + y002.2 + … | zl002 |
wl003.1 | xl003 = xl003.1 | yl003 = yl003.1 | zl003 |
… | … | … | … |
wl999.1 | xl999 = xl999.1 | yl999 = yl999.1 | zl999 |
Wortform nach LLR-Rang | log-likelihood-ratio | als primärer Partner berücksichtigt bei Zuverlässigkeit = |
||
---|---|---|---|---|
wRang(1, [z001-z999]) | z001' | hoch | normal | analytisch |
wRang(2, [z001-z999]) | z002' | |||
wRang(3, [z001-z999]) | z003' | |||
… | … | |||
… | … | ignoriert | ||
… | … | |||
… | … | ignoriert | ||
… | … | |||
… | … | ignoriert | ||
wRang(999, [z001-z999]) | z999' |
Bezugswort | Wortform nach LLR-Rang | log-likelihood-ratio | Partner n. Stufe | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
wwww | wRang(1, [z001-z999]) | z001' |
| ||||||||||||||||||||
wRang(2, [z001-z999]) | z002' |
| |||||||||||||||||||||
wRang(3, [z001-z999]) | z003' | … | |||||||||||||||||||||
… | … | … |
Beispiel:
Bezugswort | Wortform nach LLR-Rang | log-likelihood-ratio | Partner n. Stufe | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stücken | frei | 9458 |
| |||||||||||||||
… | … | … |
zeilenweise Darstellung:
Bezugswort: Stücken
BelegNr. (ab Nr. + Anzahl) |
LLR | Partner | Häufigkeit | ||
---|---|---|---|---|---|
1 | + | 42 | 9458 | frei nachfolgen jung Frau | 42 |
43 | + | 1 | 9458 | frei jung Frau | 1 |
44 | + | 6 | 9458 | frei jung | 6 |
50 | + | 11 | 9458 | frei Frau | 11 |
61 | + | 18 | 9458 | frei verlassen | 18 |
79 | + | 24 | 9458 | frei ganz | 24 |
103 | + | 675 | 9458 | frei | 675 |
… | … | … | … |
Wortform nach LLR-/MI-Rang | log-likelihood-ratio | als Partner n. Stufe berücksichtigt bei Granularität = |
|||
---|---|---|---|---|---|
wRang(1, [z001-z999]) | z001' | sehr grob | grob | mittel | fein |
wRang(2, [z001-z999]) | z002' | ||||
wRang(3, [z001-z999]) | z003' | ||||
… | … | ||||
… | … | ignoriert | |||
… | … | ||||
… | … | ignoriert | |||
… | … | ||||
… | … | ignoriert | |||
… | … | ||||
… | … | ignoriert | |||
wRang(999, [z001-z999]) | z999' |
eindeutig | KWICs | mehrfach | ||
---|---|---|---|---|
Cluster: frei jung Frau nachfolgen | ← | satz1 (frei, jung, Frau, nachfolgen) satz2 (frei, jung, Frau, nachfolgen) satz3 (frei, jung, Frau, nachfolgen) satz4 (frei, jung, Frau) satz5 (frei, jung, Frau) |
→ | Cluster: frei jung Frau nachfolgen |
satz1 (frei, jung, Frau, nachfolgen) satz2 (frei, jung, Frau, nachfolgen) satz3 (frei, jung, Frau, nachfolgen) |
satz1 (frei, jung, Frau, nachfolgen) satz2 (frei, jung, Frau, nachfolgen) satz3 (frei, jung, Frau, nachfolgen) |
|||
Cluster: frei jung Frau | ← | → | Cluster: frei jung Frau | |
satz4 (frei, jung, Frau) satz5 (frei, jung, Frau) |
satz1 (frei, jung, Frau, nachfolgen) satz2 (frei, jung, Frau, nachfolgen) satz3 (frei, jung, Frau, nachfolgen) satz4 (frei, jung, Frau) satz5 (frei, jung, Frau) |
Grenze des Subkontextes links \ rechts |
r | … | y | … | 0 | … | … | … | l |
l | LLR[l,r] | … | LLR[l,y] | … | LLR[l,0] | … | … | … | LLR[l,l] |
… | … | … | … | … | … | … | … | … | |
x | LLR[x,r] | … | LLR[x,y] | … | LLR[x,0] | … | … | ||
… | … | … | … | … | … | … | |||
0 | LLR[0,r] | … | LLR[0,y] | … | LLR[0,0] | ||||
… | … | … | … | … | |||||
… | … | … | … | ||||||
… | … | … | |||||||
r | LLR[r,r] |
zeilenweise Darstellung:
Bezugswort: Stücken
BelegNr. (ab Nr. + Anzahl) |
Fokus | LLR | Partner | Häufigkeit | ||
---|---|---|---|---|---|---|
1 | + | 42 | [-1,-1] | 9458 | frei nachfolgen jung Frau | 42 |
43 | + | 1 | [-1,-1] | 9458 | frei jung Frau | 1 |
44 | + | 6 | [-1,-1] | 9458 | frei jung | 6 |
50 | + | 11 | [-1,-1] | 9458 | frei Frau | 11 |
61 | + | 18 | [-1,-1] | 9458 | frei verlassen | 18 |
79 | + | 24 | [-1,-1] | 9458 | frei ganz | 24 |
103 | + | 675 | [-1,-1] | 9458 | frei | 675 |
… | … | … | … | … |
wort1 | eine einzige Wf füllt Lücke |
wort0 wort1 | Folge von Wf füllt Lücke |
wortx | worty | verschiedene Wf füllen Lücke |
[ wortx ] | Lücke ist nicht immer vorhanden |
. . . | kein Füller tritt auffällig oft auf |
pattern | = | ( clusterElem | filler )+ |
filler | = | complexFiller |
complexFiller | = | complexFiller complexFiller |
| | complexFiller '|' complexFiller | |
| | '[' complexFiller ']' | |
| | simpleFiller | |
simpleFiller | = | '. . .' |
| | <wortform> | |
clusterElem | = | <wortform> |